diff -u -r amanda-2.4.4p1.old/configure.in amanda-2.4.4p1/configure.in --- amanda-2.4.4p1.old/configure.in 2003-06-27 10:19:53.000000000 -0400 +++ amanda-2.4.4p1.pie/configure.in 2003-07-08 23:54:13.000000000 -0400 @@ -2469,6 +2469,52 @@ AC_REPLACE_FUNCS(strcasecmp) ICE_CHECK_DECL(strcasecmp,string.h strings.h) +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.4.4p1.orig/config/compile 1969-12-31 19:00:00.000000000 -0500 +++ amanda-2.4.4p1.pie/config/compile 2003-07-16 16:57:18.000000000 -0400 @@ -0,0 +1 @@ +# Dummy compile for configure --- amanda-2.5.0/server-src/Makefile.am.pie 2006-02-14 06:51:24.000000000 -0500 +++ amanda-2.5.0/server-src/Makefile.am 2006-04-07 15:27:09.000000000 -0400 @@ -12,11 +12,48 @@ 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 + +taper_CFLAGS = -fPIE $(AM_CFLAGS) +taper_LDFLAGS = -pie $(AM_LDFLAGS) +driver_CFLAGS = -fPIE $(AM_CFLAGS) +driver_LDFLAGS = -pie $(AM_LDFLAGS) +chunker_CFLAGS = -fPIE $(AM_CFLAGS) +chunker_LDFLAGS = -pie $(AM_LDFLAGS) +amtrmlog_CFLAGS = -fPIE $(AM_CFLAGS) +amtrmlog_LDFLAGS = -pie $(AM_LDFLAGS) +amtrmidx_CFLAGS = -fPIE $(AM_CFLAGS) +amtrmidx_LDFLAGS = -pie $(AM_LDFLAGS) +amlogroll_CFLAGS = -fPIE $(AM_CFLAGS) +amlogroll_LDFLAGS = -pie $(AM_LDFLAGS) +amcleanupdisk_CFLAGS = -fPIE $(AM_CFLAGS) +amcleanupdisk_LDFLAGS = -pie $(AM_LDFLAGS) +amindexd_CFLAGS = -fPIE $(AM_CFLAGS) +amindexd_LDFLAGS = -pie $(AM_LDFLAGS) +dumper_CFLAGS = -fPIE $(AM_CFLAGS) +dumper_LDFLAGS = -pie $(AM_LDFLAGS) +planner_CFLAGS = -fPIE $(AM_CFLAGS) +planner_LDFLAGS = -pie $(AM_LDFLAGS) + sbin_SCRIPTS = amcheckdb amcleanup amdump \ amoverview amrmtape amtoc \ amverify amverifyrun amstatus \ --- amanda-2.5.0/changer-src/Makefile.am.pie 2006-04-07 15:28:32.000000000 -0400 +++ amanda-2.5.0/changer-src/Makefile.am 2006-04-07 15:30:09.000000000 -0400 @@ -9,10 +9,14 @@ 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) --- amanda-2.5.0/client-src/Makefile.am.pie 2006-02-14 06:51:20.000000000 -0500 +++ amanda-2.5.0/client-src/Makefile.am 2006-04-07 15:33:17.000000000 -0400 @@ -8,6 +8,27 @@ libexec_PROGRAMS = amandad noop calcsize killpgrp rundump runtar selfcheck sendbackup sendsize versionsuffix +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) +amandad_CFLAGS = -fPIE $(AM_CFLAGS) +amandad_LDFLAGS = -pie $(AM_LDFLAGS) +noop_CFLAGS = -fPIE $(AM_CFLAGS) +noop_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.0/restore-src/Makefile.am.pie 2006-02-14 06:51:23.000000000 -0500 +++ amanda-2.5.0/restore-src/Makefile.am 2006-04-07 15:35:48.000000000 -0400 @@ -32,6 +32,13 @@ ../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.0/tape-src/Makefile.am.pie 2006-02-14 06:51:24.000000000 -0500 +++ amanda-2.5.0/tape-src/Makefile.am 2006-04-07 15:34:46.000000000 -0400 @@ -8,6 +8,13 @@ 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 \