summaryrefslogtreecommitdiffstats
path: root/t/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig
diff options
context:
space:
mode:
Diffstat (limited to 't/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig')
-rw-r--r--t/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig/Makefile23
-rw-r--r--t/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig/code.c10
-rwxr-xr-xt/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig/erase-pt-gnu-stack9
3 files changed, 42 insertions, 0 deletions
diff --git a/t/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig/Makefile b/t/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig/Makefile
new file mode 100644
index 0000000..8d357a8
--- /dev/null
+++ b/t/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig/Makefile
@@ -0,0 +1,23 @@
+CC=gcc
+CFLAGS+= -fPIC
+
+SONAMES:= libhallo.so.1
+LIBFILES:= $(patsubst %,%.0.1, $(SONAMES))
+
+all: $(LIBFILES)
+
+$(LIBFILES): code.o
+ $(CC) $(LDFLAGS) -fPIC -o $@ -shared -Wl,-soname,$(patsubst %.0.1,%,$@) $^ -lc
+ ./erase-pt-gnu-stack $@
+
+clean:
+ rm -f *.a *.o *.so*
+
+install: all
+ install -m 0755 -d $(DESTDIR)/usr/lib
+ install -m 0755 *.so* $(DESTDIR)/usr/lib
+ for FILE in $(SONAMES) ; do \
+ ln -s $${FILE}.0.1 $(DESTDIR)/usr/lib/$$FILE ; \
+ done
+
+.PHONY: install clean
diff --git a/t/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig/code.c b/t/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig/code.c
new file mode 100644
index 0000000..65887f3
--- /dev/null
+++ b/t/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig/code.c
@@ -0,0 +1,10 @@
+#include <stdlib.h>
+#include <math.h>
+
+double e(void (*f)(char *)){
+ char tmp[10];
+ double x;
+ f(tmp);
+ x = atof(tmp);
+ return exp(x);
+}
diff --git a/t/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig/erase-pt-gnu-stack b/t/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig/erase-pt-gnu-stack
new file mode 100755
index 0000000..d3b7e59
--- /dev/null
+++ b/t/recipes/checks/debian/shlibs/shared-libs-no-gnu-stack/build-spec/orig/erase-pt-gnu-stack
@@ -0,0 +1,9 @@
+#!/usr/bin/perl -pi
+
+use strict;
+use warnings;
+
+my $PT_GNU_STACK = 0x6474e551;
+my $be = pack('L>', $PT_GNU_STACK);
+my $le = pack('L<', $PT_GNU_STACK);
+s/\Q$be\E|\Q$le\E/\0\0\0\0/g;