]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
(yet) another x-platform fix for sk-dummy.so
authorDamien Miller <djm@mindrot.org>
Fri, 29 Nov 2019 01:32:23 +0000 (12:32 +1100)
committerDamien Miller <djm@mindrot.org>
Fri, 29 Nov 2019 01:32:23 +0000 (12:32 +1100)
Check for -fPIC support from compiler

Compile libopenbsd-compat -fPIC

Don't mix -fPIE and -fPIC when compiling

Makefile.in
configure.ac
openbsd-compat/Makefile.in

index 692b007321536d04d67bf38b86a07bad09985060..a37605625712b510e0384e17f0ccce2ab7aad86e 100644 (file)
@@ -43,7 +43,9 @@ PATHS= -DSSHDIR=\"$(sysconfdir)\" \
 CC=@CC@
 LD=@LD@
 CFLAGS=@CFLAGS@
+CFLAGS_NOPIE=@CFLAGS_NOPIE@
 CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@
+PICFLAG=@PICFLAG@
 LIBS=@LIBS@
 K5LIBS=@K5LIBS@
 GSSLIBS=@GSSLIBS@
@@ -601,7 +603,7 @@ SK_DUMMY_OBJS=\
        ed25519.lo hash.lo ge25519.lo fe25519.lo sc25519.lo verify.lo
 
 .c.lo: Makefile.in config.h
-       $(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c $< -o $@
+       $(CC) $(CFLAGS_NOPIE) $(PICFLAG) $(CPPFLAGS) -c $< -o $@
 
 regress/misc/sk-dummy/sk-dummy.so: $(SK_DUMMY_OBJS)
        $(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -shared -o $@ $(SK_DUMMY_OBJS) \
index 1749b2903c67e027d88afc9084df31d5ae5237b6..c57b2401f97edcb91cd50d2a4219f3c5e2ff8048 100644 (file)
@@ -1725,6 +1725,18 @@ if test "x$use_pie" != "xno"; then
        fi
 fi
 
+AC_MSG_CHECKING([whether -fPIC is accepted])
+SAVED_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -fPIC"
+AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM( [[ #include <stdlib.h> ]], [[ exit(0); ]] )],
+   [AC_MSG_RESULT([yes])
+    PICFLAG="-fPIC"; ],
+   [AC_MSG_RESULT([no])
+    PICFLAG=""; ])
+CFLAGS="$SAVED_CFLAGS"
+AC_SUBST([PICFLAG])
+
 dnl    Checks for library functions. Please keep in alphabetical order
 AC_CHECK_FUNCS([ \
        Blowfish_initstate \
@@ -5301,6 +5313,10 @@ AC_SUBST([DEPEND], [$(cat $srcdir/.depend)])
 CFLAGS="${CFLAGS} ${CFLAGS_AFTER}"
 LDFLAGS="${LDFLAGS} ${LDFLAGS_AFTER}"
 
+# Make a copy of CFLAGS without -fpie
+CFLAGS_NOPIE=`echo "$CFLAGS" | sed 's/ -fPIE//'`
+AC_SUBST([CFLAGS_NOPIE])
+
 AC_EXEEXT
 AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openssh.xml \
        openbsd-compat/Makefile openbsd-compat/regress/Makefile \
index 94fb0a55e61655d17c515d4c97ea9ebf11aea801..c2423324e004fa113f5adac7de07ddc0e2d2c6a6 100644 (file)
@@ -7,7 +7,9 @@ VPATH=@srcdir@
 CC=@CC@
 LD=@LD@
 CFLAGS=@CFLAGS@
+CFLAGS_NOPIE=@CFLAGS_NOPIE@
 CPPFLAGS=-I. -I.. -I$(srcdir) -I$(srcdir)/.. @CPPFLAGS@ @DEFS@
+PICFLAG=@PICFLAG@
 LIBS=@LIBS@
 AR=@AR@
 RANLIB=@RANLIB@
@@ -97,7 +99,7 @@ PORTS=        port-aix.o \
        port-uw.o
 
 .c.o:
-       $(CC) $(CFLAGS) $(CPPFLAGS) -c $<
+       $(CC) $(CFLAGS_NOPIE) $(PICFLAG) $(CPPFLAGS) -c $<
 
 all: libopenbsd-compat.a