aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2011-10-20 15:03:08 -0400
committerAnthony G. Basile <blueness@gentoo.org>2011-10-20 15:03:08 -0400
commitbcf0f80a9365e40b31109ca01462d5a2a3a5eae7 (patch)
tree856fb12bcf7bb9bc0398424ae7281f2da8b7109c
parentsrc/paxctl-ng.c: clean up error handling (diff)
downloadelfix-bcf0f80a9365e40b31109ca01462d5a2a3a5eae7.tar.gz
elfix-bcf0f80a9365e40b31109ca01462d5a2a3a5eae7.tar.bz2
elfix-bcf0f80a9365e40b31109ca01462d5a2a3a5eae7.zip
Update build system
-rw-r--r--configure.ac22
-rwxr-xr-xscripts/setup.py2
-rw-r--r--src/Makefile.am2
-rw-r--r--src/paxctl-ng.c4
4 files changed, 11 insertions, 19 deletions
diff --git a/configure.ac b/configure.ac
index fa669ec..592d346 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,28 +27,24 @@ AM_CONDITIONAL([TEST],[test "x$has_yasm" = "xyes"])
# Checks for programs.
AC_PROG_CC
-AC_CHECK_FUNCS([strerror])
+AC_CHECK_FUNCS([memset strerror])
AC_FUNC_MMAP
# Checks for libraries.
AC_CHECK_LIB([elf], [elf_begin])
+AC_CHECK_LIB([attr], [fgetxattr])
# Checks for header files.
-AC_CHECK_HEADERS([errno.h])
-AC_CHECK_HEADERS([error.h])
-AC_CHECK_HEADERS([fcntl.h])
-AC_CHECK_HEADERS([gelf.h])
-AC_CHECK_HEADERS([libgen.h])
-AC_CHECK_HEADERS([stdio.h])
-AC_CHECK_HEADERS([stdlib.h])
-AC_CHECK_HEADERS([string.h])
-AC_CHECK_HEADERS([sys/mman.h])
-AC_CHECK_HEADERS([sys/stat.h])
-AC_CHECK_HEADERS([sys/types.h])
-AC_CHECK_HEADERS([unistd.h])
+
+AC_CHECK_HEADERS([attr/xattr.h errno.h error.h fcntl.h gelf.h libgen.h stdio.h \
+ stdlib.h string.h sys/mman.h sys/stat.h sys/types.h unistd.h
+],
+[], [AC_MSG_ERROR(["Missing necessary header"])])
# Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_SIZE_T
+AC_TYPE_UINT8_T
+AC_TYPE_UINT16_T
# Checks for library functions.
AC_FUNC_ERROR_AT_LINE
diff --git a/scripts/setup.py b/scripts/setup.py
index 77854f1..3170930 100755
--- a/scripts/setup.py
+++ b/scripts/setup.py
@@ -5,7 +5,7 @@ from distutils.core import setup, Extension
module1 = Extension(
name='pax',
sources = ['paxmodule.c'],
- libraries = ['elf'],
+ libraries = ['elf', 'attr'],
)
setup(
diff --git a/src/Makefile.am b/src/Makefile.am
index cc46fe2..de2d157 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,5 +1,3 @@
sbin_PROGRAMS = fix-gnustack paxctl-ng
fix_gnustack_SOURCES = fix-gnustack.c
-fix_gnustack_LDADD = -lelf
paxctl_ng_SOURCES = paxctl-ng.c
-paxctl_ng_LDADD = -lelf
diff --git a/src/paxctl-ng.c b/src/paxctl-ng.c
index 8d9bf55..dccd8ac 100644
--- a/src/paxctl-ng.c
+++ b/src/paxctl-ng.c
@@ -205,10 +205,8 @@ get_xt_flags(int fd)
{
if(errno == ERANGE )
printf("XT_PAX: corrupted\n");
-
if( errno == ENOATTR)
printf("XT_PAX: not present\n");
-
if(errno == ENOTSUP)
printf("XT_PAX: not supported\n");
}
@@ -390,7 +388,7 @@ set_pt_flags(int fd, uint16_t pt_flags)
if((elf = elf_begin(fd, ELF_C_RDWR_MMAP, NULL)) == NULL)
error(EXIT_FAILURE, 0, "elf_begin() fail: %s", elf_errmsg(elf_errno()));
- }
+
if(elf_kind(elf) != ELF_K_ELF)
{
elf_end(elf);