MD5 72e240fcd006ff512fa354491c0ed637 files/Makefile-portable 7373
RMD160 44309d63d083a166587861d4a7c8d891fe8dd68a files/Makefile-portable 7373
SHA256 7a033aa44bcea376a0ff4fa267d13920d951b0a9d3eda14b1f531c7143c27303 files/Makefile-portable 7373
+AUX Makefile.psm5 6157 RMD160 5f71e78ee5adcc2e072548fa11ec554480004d66 SHA1 22a13a91e2eb06896fc1019efc0dbc94b5047b11 SHA256 a0909073b620b48556139c5aa6fa311d2144fde93cd3bc64d172c1dfd00021f9
+MD5 aee53f87e2e4a403d1cb6f9ed20249c8 files/Makefile.psm5 6157
+RMD160 5f71e78ee5adcc2e072548fa11ec554480004d66 files/Makefile.psm5 6157
+SHA256 a0909073b620b48556139c5aa6fa311d2144fde93cd3bc64d172c1dfd00021f9 files/Makefile.psm5 6157
AUX paxtest-0.9.5-use-fPIE.patch 813 RMD160 86f9d9456dbedde81853302f28bbe212aa8418ea SHA1 78e16661716988899cb2a1ba3b697a1fc07d099f SHA256 585f2d34cd438a3b9b3f05868f8a6e7a72af009c35e74feed4e33294a13fd2c6
MD5 30e5dbdc3446194bf75504fe4c83d5d9 files/paxtest-0.9.5-use-fPIE.patch 813
RMD160 86f9d9456dbedde81853302f28bbe212aa8418ea files/paxtest-0.9.5-use-fPIE.patch 813
SHA256 9b9ccde9603017be034d6ee3b63daa2ff7b2af5ba3b789429a58948bedf20a95 files/paxtest-0.9.5.1.diff 2369
DIST paxtest-0.9.5.tar.gz 26961
DIST paxtest-0.9.6.tar.gz 35747 RMD160 a19ef178bf11d2e3a007e6958f4e371ce941b97c SHA1 591065b15431d5b34a98a2e8946ff3cd09bbd0ff SHA256 d79bed06edbb28e3c69bba653a216cea3ed3f1704aeefe1565eddcbae8cd49b5
+DIST paxtest-0.9.7-pre4.tar.gz 34552 RMD160 dab85b408f0efc7c3de39563fda852be23771427 SHA1 edd55c07fbdbff862e531caa003fe8661425d0c9 SHA256 033c60eeed8e7ddf877b60e239f5b79c76874f53c3b656c16ed0e02893d014b5
EBUILD paxtest-0.9.5-r1.ebuild 1089 RMD160 c1c6a4e3657fcfc81588806bfe3884bd3788178c SHA1 971002267a1199b58d6289219b3e099f6c0f7b63 SHA256 9e854eeea4b2efb43fea78c9d156e39168feb2c7614584fc5d679e62698c5556
MD5 45b4d7ef46e496dc198373339532418b paxtest-0.9.5-r1.ebuild 1089
RMD160 c1c6a4e3657fcfc81588806bfe3884bd3788178c paxtest-0.9.5-r1.ebuild 1089
MD5 dfdc97397c033f91abfd4003963171fb paxtest-0.9.6.ebuild 950
RMD160 e946906a483c79871a43b687738810e177294c02 paxtest-0.9.6.ebuild 950
SHA256 512175f795e85eb367a3822fd65b157459a4ff168598c7223566854d7eb79045 paxtest-0.9.6.ebuild 950
-MISC ChangeLog 3411 RMD160 d6de4c047839be59a9ad42dc955b5cb77de5ebee SHA1 038b7abd03972768c29b12013d75d023e3ba03c2 SHA256 e3b67cf2d2935b74c5574725841717093a0e382384f7c562d6eb8295c4cc2ba9
-MD5 91933baaa3289c5a234a512ebcd2bcae ChangeLog 3411
-RMD160 d6de4c047839be59a9ad42dc955b5cb77de5ebee ChangeLog 3411
-SHA256 e3b67cf2d2935b74c5574725841717093a0e382384f7c562d6eb8295c4cc2ba9 ChangeLog 3411
+EBUILD paxtest-0.9.7_pre4.ebuild 1115 RMD160 f31a976e19e834b6a11d23d0d1e7470140d3f0c2 SHA1 998120cfbbaeadb93c99063c8b67269f914c42db SHA256 a5ec665ad1bd16846f3c8ecbf0bdb8176bcd8b2ebec4dccf5905ba324934e665
+MD5 c347d4096f93cc50b2d81d114f8defd7 paxtest-0.9.7_pre4.ebuild 1115
+RMD160 f31a976e19e834b6a11d23d0d1e7470140d3f0c2 paxtest-0.9.7_pre4.ebuild 1115
+SHA256 a5ec665ad1bd16846f3c8ecbf0bdb8176bcd8b2ebec4dccf5905ba324934e665 paxtest-0.9.7_pre4.ebuild 1115
+MISC ChangeLog 3611 RMD160 9b0db6b035815b3c0f4edffb359ba842cfc6206c SHA1 5706fb05e10a7d573ecfd37c79083a943649eda4 SHA256 1c7f323c2ddd7dc81cb9baba8e67825508bdd9eae33d2c60f8ab1e3180c3b195
+MD5 ae85ad32f9bcf98af666190528264e87 ChangeLog 3611
+RMD160 9b0db6b035815b3c0f4edffb359ba842cfc6206c ChangeLog 3611
+SHA256 1c7f323c2ddd7dc81cb9baba8e67825508bdd9eae33d2c60f8ab1e3180c3b195 ChangeLog 3611
MISC metadata.xml 1075 RMD160 8e3cfd11e2a8fa1334390dd6503ba82a32a08fb8 SHA1 b12c5c2530c840f69ce3b3a1d267bd195a107b35 SHA256 92a9af0326aa50db1957e3a9088da6c416a26e82f1208ff2c8f94be40ed41f46
MD5 9c3ac1379620120fbd744ce753b30ab5 metadata.xml 1075
RMD160 8e3cfd11e2a8fa1334390dd6503ba82a32a08fb8 metadata.xml 1075
MD5 b90ffd285c0b772790b4904be8bfb3e6 files/digest-paxtest-0.9.6 238
RMD160 70ba45b44146c7c68cc25c4568c5ef13c39cdf4d files/digest-paxtest-0.9.6 238
SHA256 39b65995aa7b3af9ea9b874bf86962aebbda2a3a66937c959cb7de611ce3d58e files/digest-paxtest-0.9.6 238
+MD5 7dae504403d219baf7d71da16abd1a49 files/digest-paxtest-0.9.7_pre4 253
+RMD160 41d6e40250f654b2ff4ddf2e9917db5b8b2d7f34 files/digest-paxtest-0.9.7_pre4 253
+SHA256 b1c6a365c14777cae56200dedd1f3f37f4aa6fd9181fd96fe96d8e76eb7e3645 files/digest-paxtest-0.9.7_pre4 253
--- /dev/null
+#!/usr/bin/make
+
+# tested with make-3.79.1/gcc-2.96 (shared) and make-3.80/gcc-3.3.2/3 (pie)
+# make-3.79.1 does not support $$@ as target requirement (works for make-3.80)
+
+# preliminaries:
+# Gentoo modifies the specs adding pie/nopie to enable/disable ET_DYN binaries
+
+CC := gcc
+LD := ld
+CC_PIC := -fPIC
+GCC_SPCS := $(shell $(CC) -print-file-name=${GCC_SPECS:-specs})
+
+check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; \
+ then echo "$(1)"; else echo "$(2)"; fi)
+
+check_as = $(shell if $(CC) -Wa,$(1) -Wa,-Z -c -o /dev/null -xassembler /dev/null > /dev/null 2>&1; \
+ then echo "-Wa,$(1)"; fi)
+
+# stack protector has to be disabled for some tests
+CC_SSP := $(call check_gcc,-fno-stack-protector,)
+CC_SSP += $(call check_gcc,-fno-stack-protector-all,)
+
+ASFLAGS := $(call check_as,--noexecstack)
+
+CC_PIE := $(call check_gcc,-fPIE,-fPIC)
+
+SCRT_FILE = $(shell if test -r /usr/lib/Scrt1.o ; then echo "/usr/lib/Scrt1.o"; fi)
+
+ifneq ($(SCRT_FILE),)
+LD_PIE = $(shell $(LD) --help | grep -q pie && echo "-Wl,-pie")
+ifneq ($(LD_PIE),)
+# Gentoo (hardened specs enabled)
+CC_ETEXEC = $(shell grep -q "\!nopie" $(GCC_SPCS) && echo "-nopie")
+LD_ETEXEC = $(CC_ETEXEC)
+endif
+else
+# generic, local version
+SCRT_FILE = crt1S.o
+endif
+
+ifeq ($(LD_PIE),)
+LD_PIE = -shared
+PAX_DEP = $(SCRT_FILE) interp.o
+endif
+
+# check for installed binaries
+CHPAXBIN := $(shell if which chpax >/dev/null 2>&1 ; then echo chpax; fi)
+PAXCTLBIN := $(shell if which paxctl >/dev/null 2>&1 ; then echo paxctl; fi)
+# should somehow use this to see if we really need paxctl
+# list=`paxctl -qQv /sbin/paxctl 2>/dev/null`; if echo $list | grep -q "PaX flags" ; then echo paxctl; fi
+# instead we use both markings to have paxtest running correctly on all platforms
+
+ifneq ($(PAXCTLBIN),)
+DUMMY := $(shell echo '${PAXCTLBIN} $$*' > paxbin)
+endif
+
+# for some reason the .c files need it, else GNU_STACK=RWE
+OPT_FLAGS := -O2 $(ASFLAGS)
+PTHREAD := -lpthread
+# define stripping of binaries/libs here, or set these on make's commandline,
+# else you'll loose the chpax flags!
+LDFLAGS :=
+SHLDFLAGS :=
+ifndef RUNDIR
+RUNDIR := .
+endif
+
+# The Hardened GCC compiler has stack protector on by default, this
+# could interfere with the results of this test.
+
+CFLAGS := $(OPT_FLAGS) -DRUNDIR=\"${RUNDIR}\" $(CC_SSP)
+
+EXEC_TESTS = anonmap execbss execdata execheap execstack
+MPROT_TESTS = mprotanon mprotbss mprotdata mprotheap mprotstack
+MPROTSH_TESTS = mprotshbss mprotshdata writetext
+RAND_TESTS = randamap randheap1 randheap2 randmain1 randmain2 randshlib randstack1 randstack2
+RET_TESTS = rettofunc1 rettofunc2
+RETX_TESTS = rettofunc1x rettofunc2x
+SHLIB_TESTS = shlibbss shlibdata
+
+TESTS = $(EXEC_TESTS) $(MPROT_TESTS) $(MPROTSH_TESTS) $(RAND_TESTS) $(RET_TESTS) $(RETX_TESTS) $(SHLIB_TESTS)
+
+UTILS= getamap getheap1 getheap2 getmain1 getmain2 getshlib getstack1 getstack2
+
+SHLIBS= shlibtest.so shlibtest2.so
+
+ifeq ($(CHPAXBIN),)
+CHPAXVER := 0.7
+CHPAX := chpax-$(CHPAXVER)
+CHPAXSRC := $(CHPAX)/aout.c $(CHPAX)/chpax.c $(CHPAX)/elf32.c $(CHPAX)/elf64.c $(CHPAX)/flags.c $(CHPAX)/io.c
+CHPAXBIN := ./chpax
+all: chpax $(SHLIBS) $(TESTS) $(UTILS) paxtest
+else
+all: $(SHLIBS) $(TESTS) $(UTILS) paxtest
+endif
+
+# we need the failure handling, for kernels not supporting EI_PAX
+DUMMY := $(shell echo '${CHPAXBIN} $$* 2>/dev/null ||:' >> paxbin; chmod +x paxbin)
+
+PAXBIN := ./paxbin
+DL := -ldl
+
+clean:
+ -rm -f *.o *.s *~ core
+ -rm -f $(TESTS) $(UTILS) $(SHLIBS)
+ -rm -f paxtest paxtest.log a.out dumpspecs paxbin
+
+ifdef DESTDIR
+ifdef BINDIR
+ifdef RUNDIR
+install: all
+ mkdir -p $(DESTDIR)/$(RUNDIR)
+ cp $(SHLIBS) $(TESTS) $(UTILS) $(DESTDIR)/$(RUNDIR)
+ mkdir -p $(DESTDIR)/$(BINDIR)
+ cp paxtest $(DESTDIR)/$(BINDIR)
+ chmod 755 $(DESTDIR)/$(BINDIR)/paxtest
+endif
+endif
+endif
+
+chpax: $(CHPAXSRC:.c=.o)
+ $(CC) $(LDFLAGS) -o $@ $^
+
+paxtest: $(TESTS) genpaxtest
+ sh genpaxtest $(TESTS)
+
+.S.o:
+ $(CC) $(CFLAGS) $(CC_PIE) $(ASFLAGS) -o $@ -c $<
+.c.o:
+ $(CC) $(CFLAGS) -o $@ -c $<
+
+$(EXEC_TESTS) $(MPROT_TESTS): body.o
+ $(CC) $(CFLAGS) -o $@.o -c $@.c
+ $(CC) $(LDFLAGS) $(PTHREAD) -o $@ $< $@.o
+
+$(RAND_TESTS): randbody.o
+ $(CC) $(CFLAGS) -o $@.o -c $@.c
+ $(CC) $(LDFLAGS) -o $@ $< $@.o
+
+getamap: getamap.o
+ $(CC) $(LDFLAGS) -o $@ $@.o
+
+# get heap1/main1 are built w/o PIC
+get%1.o: get%.c
+ $(CC) $(CFLAGS) $(CC_ETEXEC) -o $@ -c $<
+
+# get heap2/main2 are built w/ PIC
+get%2.o: get%.c
+ $(CC) $(CFLAGS) $(CC_PIE) -o $@ -c $<
+
+# Adamantix uses the PIC version (getheap2.o), not necessary for ET_EXEC
+# build as ET_EXEC (not in Adamantix's Makefile)
+getheap1: getheap1.o
+ $(CC) $(LDFLAGS) $(LD_ETEXEC) -o $@ $<
+
+getmain1: getmain1.o
+ $(CC) $(LDFLAGS) $(LD_ETEXEC) -o $@ $<
+ $(PAXBIN) -SPRXM $@
+
+getheap2 getmain2: $(PAX_DEP) getheap2.o getmain2.o
+ $(CC) $(LDFLAGS) $(LD_PIE) -o $@ $(PAX_DEP) $@.o || (echo -e "#!/bin/sh\necho $@ pie not implemented" > $@; chmod +x $@)
+
+getshlib: getshlib.o
+ $(CC) $(LDFLAGS) -o $@ $< $(DL)
+
+# ET_EXEC and usage of "m" is not confirmed (as in Gentoo patch)
+# Adamantix does not use it
+# Pax Team does not want "m" for getstack1/2
+getstack1: getstack.o
+ $(CC) $(LDFLAGS) -o $@ $<
+ $(PAXBIN) -SRp $@
+
+getstack2: getstack.o
+ $(CC) $(LDFLAGS) -o $@ $<
+ # disable segmexec, kernel else overrides pageexec
+ $(PAXBIN) -PRs $@
+
+$(MPROTSH_TESTS): body.o shlibtest.so
+ $(CC) $(CFLAGS) -o $@.o -c $@.c
+ $(CC) $(LDFLAGS) $(PTHREAD) -o $@ $@.o $^
+
+# used for RANDEXEC'd binaries
+retbody.o: body.c
+ $(CC) $(CFLAGS) $(CC_ETEXEC) -o $@ -c $<
+
+# build as ET_EXEC (recommended by PaX Team, not really a requirement)
+$(RET_TESTS): retbody.o
+ $(CC) $(CFLAGS) $(CC_ETEXEC) -o $@.o -c $@.c
+ $(CC) $(LDFLAGS) $(LD_ETEXEC) $(PTHREAD) -o $@ $< $@.o
+
+# build as ET_EXEC (not in Adamantix's Makefile)
+$(RETX_TESTS): retbody.o
+ $(CC) $(CFLAGS) $(CC_ETEXEC) -o $@.o -c $@.c
+ $(CC) $(LDFLAGS) $(LD_ETEXEC) $(PTHREAD) -o $@ $< $@.o
+ $(PAXBIN) -SPXM $@
+
+# should also shlibbss.o and shlibdata.o be built w/ PIC?
+# if yes, remove tes from target and dependency
+shlibtes%.o: shlibtes%.c
+ $(CC) $(CFLAGS) $(CC_PIC) -o $@ -c $<
+
+shlib%.so: shlib%.o
+ $(CC) $(SHLDFLAGS) -shared -o $@ $<
+
+$(SHLIB_TESTS): body.o $(SHLIBS) shlibbss.o shlibdata.o
+ $(CC) $(LDFLAGS) $(PTHREAD) -o $@ body.o $@.o $(SHLIBS) $(DL)