diff options
author | Damien Miller <djm@mindrot.org> | 2019-11-29 12:32:23 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2019-11-29 12:32:23 +1100 |
commit | b218055e59a7c1a1816f7a55ca18e3f3c05d63a4 (patch) | |
tree | 10bc1600b9dca94071750cba7cc637158450cba7 | |
parent | 0dedb703adcd98d0dbc4479f5f312a2bd3df2850 (diff) |
(yet) another x-platform fix for sk-dummy.so
Check for -fPIC support from compiler
Compile libopenbsd-compat -fPIC
Don't mix -fPIE and -fPIC when compiling
-rw-r--r-- | Makefile.in | 4 | ||||
-rw-r--r-- | configure.ac | 16 | ||||
-rw-r--r-- | openbsd-compat/Makefile.in | 4 |
3 files changed, 22 insertions, 2 deletions
diff --git a/Makefile.in b/Makefile.in index 692b00732..a37605625 100644 --- a/Makefile.in +++ b/Makefile.in | |||
@@ -43,7 +43,9 @@ PATHS= -DSSHDIR=\"$(sysconfdir)\" \ | |||
43 | CC=@CC@ | 43 | CC=@CC@ |
44 | LD=@LD@ | 44 | LD=@LD@ |
45 | CFLAGS=@CFLAGS@ | 45 | CFLAGS=@CFLAGS@ |
46 | CFLAGS_NOPIE=@CFLAGS_NOPIE@ | ||
46 | CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@ | 47 | CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@ |
48 | PICFLAG=@PICFLAG@ | ||
47 | LIBS=@LIBS@ | 49 | LIBS=@LIBS@ |
48 | K5LIBS=@K5LIBS@ | 50 | K5LIBS=@K5LIBS@ |
49 | GSSLIBS=@GSSLIBS@ | 51 | GSSLIBS=@GSSLIBS@ |
@@ -601,7 +603,7 @@ SK_DUMMY_OBJS=\ | |||
601 | ed25519.lo hash.lo ge25519.lo fe25519.lo sc25519.lo verify.lo | 603 | ed25519.lo hash.lo ge25519.lo fe25519.lo sc25519.lo verify.lo |
602 | 604 | ||
603 | .c.lo: Makefile.in config.h | 605 | .c.lo: Makefile.in config.h |
604 | $(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c $< -o $@ | 606 | $(CC) $(CFLAGS_NOPIE) $(PICFLAG) $(CPPFLAGS) -c $< -o $@ |
605 | 607 | ||
606 | regress/misc/sk-dummy/sk-dummy.so: $(SK_DUMMY_OBJS) | 608 | regress/misc/sk-dummy/sk-dummy.so: $(SK_DUMMY_OBJS) |
607 | $(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -shared -o $@ $(SK_DUMMY_OBJS) \ | 609 | $(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -shared -o $@ $(SK_DUMMY_OBJS) \ |
diff --git a/configure.ac b/configure.ac index 1749b2903..c57b2401f 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -1725,6 +1725,18 @@ if test "x$use_pie" != "xno"; then | |||
1725 | fi | 1725 | fi |
1726 | fi | 1726 | fi |
1727 | 1727 | ||
1728 | AC_MSG_CHECKING([whether -fPIC is accepted]) | ||
1729 | SAVED_CFLAGS="$CFLAGS" | ||
1730 | CFLAGS="$CFLAGS -fPIC" | ||
1731 | AC_COMPILE_IFELSE( | ||
1732 | [AC_LANG_PROGRAM( [[ #include <stdlib.h> ]], [[ exit(0); ]] )], | ||
1733 | [AC_MSG_RESULT([yes]) | ||
1734 | PICFLAG="-fPIC"; ], | ||
1735 | [AC_MSG_RESULT([no]) | ||
1736 | PICFLAG=""; ]) | ||
1737 | CFLAGS="$SAVED_CFLAGS" | ||
1738 | AC_SUBST([PICFLAG]) | ||
1739 | |||
1728 | dnl Checks for library functions. Please keep in alphabetical order | 1740 | dnl Checks for library functions. Please keep in alphabetical order |
1729 | AC_CHECK_FUNCS([ \ | 1741 | AC_CHECK_FUNCS([ \ |
1730 | Blowfish_initstate \ | 1742 | Blowfish_initstate \ |
@@ -5301,6 +5313,10 @@ AC_SUBST([DEPEND], [$(cat $srcdir/.depend)]) | |||
5301 | CFLAGS="${CFLAGS} ${CFLAGS_AFTER}" | 5313 | CFLAGS="${CFLAGS} ${CFLAGS_AFTER}" |
5302 | LDFLAGS="${LDFLAGS} ${LDFLAGS_AFTER}" | 5314 | LDFLAGS="${LDFLAGS} ${LDFLAGS_AFTER}" |
5303 | 5315 | ||
5316 | # Make a copy of CFLAGS without -fpie | ||
5317 | CFLAGS_NOPIE=`echo "$CFLAGS" | sed 's/ -fPIE//'` | ||
5318 | AC_SUBST([CFLAGS_NOPIE]) | ||
5319 | |||
5304 | AC_EXEEXT | 5320 | AC_EXEEXT |
5305 | AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openssh.xml \ | 5321 | AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openssh.xml \ |
5306 | openbsd-compat/Makefile openbsd-compat/regress/Makefile \ | 5322 | openbsd-compat/Makefile openbsd-compat/regress/Makefile \ |
diff --git a/openbsd-compat/Makefile.in b/openbsd-compat/Makefile.in index 94fb0a55e..c2423324e 100644 --- a/openbsd-compat/Makefile.in +++ b/openbsd-compat/Makefile.in | |||
@@ -7,7 +7,9 @@ VPATH=@srcdir@ | |||
7 | CC=@CC@ | 7 | CC=@CC@ |
8 | LD=@LD@ | 8 | LD=@LD@ |
9 | CFLAGS=@CFLAGS@ | 9 | CFLAGS=@CFLAGS@ |
10 | CFLAGS_NOPIE=@CFLAGS_NOPIE@ | ||
10 | CPPFLAGS=-I. -I.. -I$(srcdir) -I$(srcdir)/.. @CPPFLAGS@ @DEFS@ | 11 | CPPFLAGS=-I. -I.. -I$(srcdir) -I$(srcdir)/.. @CPPFLAGS@ @DEFS@ |
12 | PICFLAG=@PICFLAG@ | ||
11 | LIBS=@LIBS@ | 13 | LIBS=@LIBS@ |
12 | AR=@AR@ | 14 | AR=@AR@ |
13 | RANLIB=@RANLIB@ | 15 | RANLIB=@RANLIB@ |
@@ -97,7 +99,7 @@ PORTS= port-aix.o \ | |||
97 | port-uw.o | 99 | port-uw.o |
98 | 100 | ||
99 | .c.o: | 101 | .c.o: |
100 | $(CC) $(CFLAGS) $(CPPFLAGS) -c $< | 102 | $(CC) $(CFLAGS_NOPIE) $(PICFLAG) $(CPPFLAGS) -c $< |
101 | 103 | ||
102 | all: libopenbsd-compat.a | 104 | all: libopenbsd-compat.a |
103 | 105 | ||