(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
This commit is contained in:
Damien Miller 2019-11-29 12:32:23 +11:00
parent 0dedb703ad
commit b218055e59
3 changed files with 22 additions and 2 deletions

View File

@ -43,7 +43,9 @@ PATHS= -DSSHDIR=\"$(sysconfdir)\" \
CC=@CC@ CC=@CC@
LD=@LD@ LD=@LD@
CFLAGS=@CFLAGS@ CFLAGS=@CFLAGS@
CFLAGS_NOPIE=@CFLAGS_NOPIE@
CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@ CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@
PICFLAG=@PICFLAG@
LIBS=@LIBS@ LIBS=@LIBS@
K5LIBS=@K5LIBS@ K5LIBS=@K5LIBS@
GSSLIBS=@GSSLIBS@ GSSLIBS=@GSSLIBS@
@ -601,7 +603,7 @@ SK_DUMMY_OBJS=\
ed25519.lo hash.lo ge25519.lo fe25519.lo sc25519.lo verify.lo ed25519.lo hash.lo ge25519.lo fe25519.lo sc25519.lo verify.lo
.c.lo: Makefile.in config.h .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) regress/misc/sk-dummy/sk-dummy.so: $(SK_DUMMY_OBJS)
$(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -shared -o $@ $(SK_DUMMY_OBJS) \ $(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -shared -o $@ $(SK_DUMMY_OBJS) \

View File

@ -1725,6 +1725,18 @@ if test "x$use_pie" != "xno"; then
fi fi
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 dnl Checks for library functions. Please keep in alphabetical order
AC_CHECK_FUNCS([ \ AC_CHECK_FUNCS([ \
Blowfish_initstate \ Blowfish_initstate \
@ -5301,6 +5313,10 @@ AC_SUBST([DEPEND], [$(cat $srcdir/.depend)])
CFLAGS="${CFLAGS} ${CFLAGS_AFTER}" CFLAGS="${CFLAGS} ${CFLAGS_AFTER}"
LDFLAGS="${LDFLAGS} ${LDFLAGS_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_EXEEXT
AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openssh.xml \ AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openssh.xml \
openbsd-compat/Makefile openbsd-compat/regress/Makefile \ openbsd-compat/Makefile openbsd-compat/regress/Makefile \

View File

@ -7,7 +7,9 @@ VPATH=@srcdir@
CC=@CC@ CC=@CC@
LD=@LD@ LD=@LD@
CFLAGS=@CFLAGS@ CFLAGS=@CFLAGS@
CFLAGS_NOPIE=@CFLAGS_NOPIE@
CPPFLAGS=-I. -I.. -I$(srcdir) -I$(srcdir)/.. @CPPFLAGS@ @DEFS@ CPPFLAGS=-I. -I.. -I$(srcdir) -I$(srcdir)/.. @CPPFLAGS@ @DEFS@
PICFLAG=@PICFLAG@
LIBS=@LIBS@ LIBS=@LIBS@
AR=@AR@ AR=@AR@
RANLIB=@RANLIB@ RANLIB=@RANLIB@
@ -97,7 +99,7 @@ PORTS= port-aix.o \
port-uw.o port-uw.o
.c.o: .c.o:
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< $(CC) $(CFLAGS_NOPIE) $(PICFLAG) $(CPPFLAGS) -c $<
all: libopenbsd-compat.a all: libopenbsd-compat.a