Files
graphene/LibOS/glibc-no-pie.patch

85 lines
2.6 KiB
Diff

diff -ruNp glibc-2.19.old/config.make.in glibc-2.19/config.make.in
--- glibc-2.19.old/config.make.in 2018-08-24 13:30:14.939687483 -0700
+++ glibc-2.19/config.make.in 2018-08-24 13:57:37.098712466 -0700
@@ -83,6 +83,7 @@ nss-crypt = @libc_cv_nss_crypt@
# Configuration options.
build-shared = @shared@
build-pic-default= @libc_cv_pic_default@
+build-pie-default= @libc_cv_pie_default@
build-profile = @profile@
build-static-nss = @static_nss@
add-ons = @add_ons@
diff -ruNp glibc-2.19.old/configure glibc-2.19/configure
--- glibc-2.19.old/configure 2018-08-24 13:30:15.335684965 -0700
+++ glibc-2.19/configure 2018-08-24 14:09:29.444245054 -0700
@@ -577,6 +577,7 @@ DEFINES
static_nss
profile
libc_cv_pic_default
+libc_cv_pie_default
shared
static
ldd_rewrite_script
@@ -7475,7 +7476,24 @@ $as_echo "$libc_cv_pic_default" >&6; }
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -fPIE is default" >&5
+$as_echo_n "checking whether -fPIE is default... " >&6; }
+if ${libc_cv_pie_default+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ libc_cv_pie_default=yes
+cat > conftest.c <<EOF
+#if defined __PIE__ || defined __pie__ || defined PIE || defined pie
+# error PIE is default.
+#endif
+EOF
+if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then
+ libc_cv_pie_default=no
+fi
+rm -f conftest.*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_pie_default" >&5
+$as_echo "$libc_cv_pie_default" >&6; }
diff -ruNp glibc-2.19.old/configure.ac glibc-2.19/configure.ac
--- glibc-2.19.old/configure.ac 2018-08-24 13:30:14.939687483 -0700
+++ glibc-2.19/configure.ac 2018-08-24 14:01:45.041985550 -0700
@@ -2160,6 +2160,19 @@ fi
rm -f conftest.*])
AC_SUBST(libc_cv_pic_default)
+AC_CACHE_CHECK([whether -fPIE is default], libc_cv_pie_default,
+[libc_cv_pie_default=yes
+cat > conftest.c <<EOF
+#if defined __PIE__ || defined __pie__ || defined PIE || defined pie
+# error PIE is default.
+#endif
+EOF
+if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
+ libc_cv_pie_default=no
+fi
+rm -f conftest.*])
+AC_SUBST(libc_cv_pie_default)
+
AC_SUBST(profile)
AC_SUBST(static_nss)
diff -ruNp glibc-2.19.old/Makeconfig glibc-2.19/Makeconfig
--- glibc-2.19.old/Makeconfig 2018-08-24 13:30:15.331684992 -0700
+++ glibc-2.19/Makeconfig 2018-08-24 14:09:01.436358826 -0700
@@ -424,6 +424,9 @@ ifndef +link-static
endif
# Commands for linking programs with the C library.
ifndef +link
+ifeq (yes,$(build-pie-default))
+LDFLAGS += -no-pie
+endif
ifeq (yes,$(build-shared))
+link-before-libc = $(CC) -nostdlib -nostartfiles -o $@ \
$(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \