--- amanda-2.5.2p1/client-src/Makefile.am.pie 2007-05-04 13:39:05.000000000 +0200 +++ amanda-2.5.2p1/client-src/Makefile.am 2007-06-22 13:50:23.000000000 +0200 @@ -13,6 +13,25 @@ LIB_EXTENSION = la libexec_PROGRAMS = noop calcsize killpgrp rundump runtar selfcheck sendbackup sendsize versionsuffix +noop_CFLAGS = -fPIE $(AM_CFLAGS) +noop_LDFLAGS = -pie $(AM_LDFLAGS) +calcsize_CFLAGS = -fPIE $(AM_CFLAGS) +calcsize_LDFLAGS = -pie $(AM_LDFLAGS) +killpgrp_CFLAGS = -fPIE $(AM_CFLAGS) +killpgrp_LDFLAGS = -pie $(AM_LDFLAGS) +rundump_CFLAGS = -fPIE $(AM_CFLAGS) +rundump_LDFLAGS = -pie $(AM_LDFLAGS) +runtar_CFLAGS = -fPIE $(AM_CFLAGS) +runtar_LDFLAGS = -pie $(AM_LDFLAGS) +selfcheck_CFLAGS = -fPIE $(AM_CFLAGS) +selfcheck_LDFLAGS = -pie $(AM_LDFLAGS) +sendbackup_CFLAGS = -fPIE $(AM_CFLAGS) +sendbackup_LDFLAGS = -pie $(AM_LDFLAGS) +sendsize_CFLAGS = -fPIE $(AM_CFLAGS) +sendsize_LDFLAGS = -pie $(AM_LDFLAGS) +versionsuffix_CFLAGS = -fPIE $(AM_CFLAGS) +versionsuffix_LDFLAGS = -pie $(AM_LDFLAGS) + sbin_SCRIPTS = @CLIENT_SCRIPTS_OPT@ libexec_SCRIPTS = patch-system --- amanda-2.5.2p1/restore-src/Makefile.am.pie 2007-05-04 13:39:06.000000000 +0200 +++ amanda-2.5.2p1/restore-src/Makefile.am 2007-06-22 13:42:42.000000000 +0200 @@ -43,6 +43,13 @@ librestore_la_LIBADD = ../common-src/lib ../tape-src/libamtape.$(LIB_EXTENSION) \ ../server-src/libamserver.$(LIB_EXTENSION) +amidxtaped_CFLAGS = -fPIE $(AM_CFLAGS) +amidxtaped_LDFLAGS = -pie $(AM_LDFLAGS) +amrestore_CFLAGS = -fPIE $(AM_CFLAGS) +amrestore_LDFLAGS = -pie $(AM_LDFLAGS) +amfetchdump_CFLAGS = -fPIE $(AM_CFLAGS) +amfetchdump_LDFLAGS = -pie $(AM_LDFLAGS) + noinst_HEADERS = restore.h install-exec-hook: --- amanda-2.5.2p1/amandad-src/Makefile.am.pie 2007-05-04 13:39:06.000000000 +0200 +++ amanda-2.5.2p1/amandad-src/Makefile.am 2007-06-22 14:01:31.000000000 +0200 @@ -12,6 +12,9 @@ LIB_EXTENSION = la libexec_PROGRAMS = amandad +amandad_CFLAGS = -fPIE $(AM_CFLAGS) +amandad_LDFLAGS = -pie $(AM_LDFLAGS) + if WANT_RUNTIME_PSEUDO_RELOC AM_LDFLAGS = -Wl,-enable-runtime-pseudo-reloc endif --- amanda-2.5.2p1/tape-src/Makefile.am.pie 2007-05-04 13:39:08.000000000 +0200 +++ amanda-2.5.2p1/tape-src/Makefile.am 2007-06-22 13:42:42.000000000 +0200 @@ -12,6 +12,13 @@ LIB_EXTENSION = la sbin_PROGRAMS= ammt amdd amtapetype +amdd_CFLAGS = -fPIE $(AM_CFLAGS) +amdd_LDFLAGS = -pie $(AM_LDFLAGS) +ammt_CFLAGS = -fPIE $(AM_CFLAGS) +ammt_LDFLAGS = -pie $(AM_LDFLAGS) +amtapetype_CFLAGS = -fPIE $(AM_CFLAGS) +amtapetype_LDFLAGS = -pie $(AM_LDFLAGS) + libamtape_la_SOURCES = output-file.c \ output-null.c \ output-rait.c \ --- amanda-2.5.2p1/changer-src/Makefile.am.pie 2007-05-04 13:39:04.000000000 +0200 +++ amanda-2.5.2p1/changer-src/Makefile.am 2007-06-22 13:42:42.000000000 +0200 @@ -13,10 +13,14 @@ LIB_EXTENSION = la if WANT_CHIO_SCSI CHIO_SCSI = chg-scsi-chio +chg_scsi_chio_CFLAGS = -fPIE $(AM_CFLAGS) +chg_scsi_chio_LDFLAGS = -pie $(AM_LDFLAGS) endif if WANT_CHG_SCSI CHG_SCSI = chg-scsi +chg_scsi_CFLAGS = -fPIE $(AM_CFLAGS) +chg_scsi_LDFLAGS = -pie $(AM_LDFLAGS) endif libexec_PROGRAMS = $(CHG_SCSI) --- /dev/null 2007-06-20 09:13:44.480310269 +0200 +++ amanda-2.5.2p1/config/compile 2007-06-22 13:42:42.000000000 +0200 @@ -0,0 +1 @@ +# Dummy compile for configure --- amanda-2.5.2p1/configure.in.pie 2007-06-07 01:22:24.000000000 +0200 +++ amanda-2.5.2p1/configure.in 2007-06-22 13:42:42.000000000 +0200 @@ -2920,6 +2920,52 @@ ICE_CHECK_DECL(strcasecmp,string.h strin AC_CHECK_FUNCS(fnmatch) +AC_MSG_CHECKING([for Position Independent Executable support]) +save_CFLAGS="$CFLAGS" +save_LDFLAGS="$LDFLAGS" +CFLAGS="$CFLAGS -fpie" +LDFLAGS="$LDFLAGS -pie" +AC_TRY_RUN( + [ +int foo () __attribute__((visibility ("hidden"))); +int foo () { return 0; } +int main () { return foo (); } + ], + [ + ac_cv_pie_support=yes + ], + [ + ac_cv_pie_support=no + ], + [ + ac_cv_pie_support=no + ] +) +CFLAGS="$save_CFLAGS" +LDFLAGS="$save_LDFLAGS" +AC_MSG_RESULT($ac_cv_pie_support) +if test $ac_cv_pie_support = no; then + AC_DEFINE(hidden,, + [Define as `__attribute__((visibility ("hidden")))' if the C compiler supports it, + or to nothing if it is not supported.]) + PIE_LDFLAGS= + PIE_SED_CMD= + COMPILE_PIE= + EXIT0_IF_NO_PIE='exit 0' +else + AC_DEFINE_UNQUOTED(hidden, __attribute__((visibility ("hidden")))) + PIE_LDFLAGS="-pie -L.pie/ -Lopenbsd-compat/.pie/" +changequote(<<, >>)dnl + PIE_SED_CMD='s_[ ]\([^ ]\)_ .pie/\1_g' +changequote([, ])dnl + COMPILE_PIE=' && mkdir -p .pie && $(COMPILE) -c -fpie -o .pie/$@ \`test -f '"'"'$<'"'"' || echo '"'"'$(srcdir)/'"'"'\`$<' + EXIT0_IF_NO_PIE=: +fi +AC_SUBST(PIE_LDFLAGS) +AC_SUBST(PIE_SED_CMD) +AC_SUBST(COMPILE_PIE) +AC_SUBST(EXIT0_IF_NO_PIE) + dnl disk device prefixes AC_MSG_CHECKING(disk device prefixes) dnl Use df to find the mount point for the root filesystem. Use --- amanda-2.5.2p1/server-src/Makefile.am.pie 2007-05-04 13:39:04.000000000 +0200 +++ amanda-2.5.2p1/server-src/Makefile.am 2007-06-22 13:52:15.000000000 +0200 @@ -17,11 +17,48 @@ sbin_PROGRAMS = amadmin amcheck amflu amgetconf amlabel amtape \ amreport +amadmin_CFLAGS = -fPIE $(AM_CFLAGS) +amadmin_LDFLAGS = -pie $(AM_LDFLAGS) +amcheck_CFLAGS = -fPIE $(AM_CFLAGS) +amcheck_LDFLAGS = -pie $(AM_LDFLAGS) +amflush_CFLAGS = -fPIE $(AM_CFLAGS) +amflush_LDFLAGS = -pie $(AM_LDFLAGS) +amgetconf_CFLAGS = -fPIE $(AM_CFLAGS) +amgetconf_LDFLAGS = -pie $(AM_LDFLAGS) +amlabel_CFLAGS = -fPIE $(AM_CFLAGS) +amlabel_LDFLAGS = -pie $(AM_LDFLAGS) +amreport_CFLAGS = -fPIE $(AM_CFLAGS) +amreport_LDFLAGS = -pie $(AM_LDFLAGS) +amtape_CFLAGS = -fPIE $(AM_CFLAGS) +amtape_LDFLAGS = -pie $(AM_LDFLAGS) + libexec_PROGRAMS = amindexd amlogroll amtrmidx \ amtrmlog driver dumper \ planner taper amcleanupdisk \ chunker + +amindexd_CFLAGS = -fPIE $(AM_CFLAGS) +amindexd_LDFLAGS = -pie $(AM_LDFLAGS) +amlogroll_CFLAGS = -fPIE $(AM_CFLAGS) +amlogroll_LDFLAGS = -pie $(AM_LDFLAGS) +amtrmidx_CFLAGS = -fPIE $(AM_CFLAGS) +amtrmidx_LDFLAGS = -pie $(AM_LDFLAGS) +amtrmlog_CFLAGS = -fPIE $(AM_CFLAGS) +amtrmlog_LDFLAGS = -pie $(AM_LDFLAGS) +driver_CFLAGS = -fPIE $(AM_CFLAGS) +driver_LDFLAGS = -pie $(AM_LDFLAGS) +dumper_CFLAGS = -fPIE $(AM_CFLAGS) +dumper_LDFLAGS = -pie $(AM_LDFLAGS) +planner_CFLAGS = -fPIE $(AM_CFLAGS) +planner_LDFLAGS = -pie $(AM_LDFLAGS) +taper_CFLAGS = -fPIE $(AM_CFLAGS) +taper_LDFLAGS = -pie $(AM_LDFLAGS) +chunker_CFLAGS = -fPIE $(AM_CFLAGS) +chunker_LDFLAGS = -pie $(AM_LDFLAGS) +amcleanupdisk_CFLAGS = -fPIE $(AM_CFLAGS) +amcleanupdisk_LDFLAGS = -pie $(AM_LDFLAGS) + sbin_SCRIPTS = amcheckdb amcleanup amdump \ amoverview amrmtape amtoc \ amverify amverifyrun amstatus \