From 85b9cb53032bd6547eb30b6e2ee75ad4de632056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Jacke?= Date: Wed, 12 May 2010 18:17:30 +0200 Subject: [PATCH 1/2] s3: major overhaul of compiler and linker flags for HP-UX builds this will fix a number of things like shared library builds. That in turn will probably trigger some other build bugs... picked from: 8e069e245bdda1303e9c2bd3b9e30be98f9d8680 79ec886aa4e8398cd45d9821030a1b87a17950f8 --- source3/configure.in | 38 +++++++++++++++++++++++++++++--------- 1 files changed, 29 insertions(+), 9 deletions(-) diff --git a/source3/configure.in b/source3/configure.in index 3dc9da7..ab15de5 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -1605,25 +1605,45 @@ DSO_EXPORTS="" AC_DEFINE(BROKEN_STRNDUP,1,[Does strndup work correctly]) ;; *hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX]) - # Use special PIC flags for the native HP-UX compiler. - BLDSHARED="true" - SHLD="cc" - LDSHFLAGS="-b -Wl,-B,symbolic,-b,-z" - SONAMEFLAG="-Wl,+h " - PICFLAG="+z" + # ia64: 64bit build using gcc with CFLAGS="-mpl64" + # 64bit build using HP's cc with CFLAGS="+DD64" + # hppa: 64bit build unsupported by gcc + # 64bit build using HP's cc with CFLAGS="+DA2.0w" + # HP-UX 11.00 ld needs PHSS_33034 + BLDSHARED="true" if test "${GCC}" = "yes"; then PICFLAG="-fPIC" + LDSHFLAGS="-shared" else - PICFLAG="+z +ESnolit" + PICFLAG="+z" + LDSHFLAGS="-b" + # "Uses depth-first symbol resolution" + LDSHFLAGS="$LDSHFLAGS -Wl,-B,symbolic,-b" + if test "$host_cpu" != "ia64"; then + # "don't store literals in read-only memory" (?): + PICFLAG="$PICFLAG +ESnolit" + fi fi if test "$host_cpu" = "ia64"; then SHLIBEXT="so" - PICFLAG="+z" - DYNEXP="-Wl,-E,+b/usr/local/lib/hpux32:/usr/lib/hpux32" + # TODO: does the linker find the right 32/64 bit version of the libs? : + DYNEXP="-Wl,-E,+b/usr/local/lib/hpux32:/usr/lib/hpux32:/usr/local/lib/hpux64:/usr/lib/hpux64" else SHLIBEXT="sl" DYNEXP="-Wl,-E,+b/usr/local/lib:/usr/lib" fi + if test "$ac_cv_prog_gnu_ld" = "yes"; then + SONAMEFLAG="-Wl,-soname=" + else + SONAMEFLAG="-Wl,+h," + fi + # PIE/PIC flags at link time are required on HP-UX because + # linking requires a temporary source file, which is being + # compiled with the indicated flags - which need to contain + # PIC flags when we don't support PIE flags: + if test "$PIE_LDFLAGS" = "" ; then + PIE_LDFLAGS=\${PICFLAG} + fi AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block]) AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element]) ;; -- 1.7.1 From a6621a688e3d51b9de765e5018368ec600014557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Jacke?= Date: Mon, 31 May 2010 14:33:51 +0200 Subject: [PATCH 2/2] s3:configre: work around shell problem on HP-UX in AC macro (cherry-pick from a950c6c60097af750d4348cb096fdacb342e9e71) --- source3/configure.in | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/source3/configure.in b/source3/configure.in index ab15de5..2e53660 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -1818,7 +1818,9 @@ AC_CACHE_CHECK([whether building shared libraries actually works], # variables so they need to be eval'ed. if AC_TRY_COMMAND([$CC $CPPFLAGS $CFLAGS $PICFLAG -c -o shlib.o ${srcdir-.}/../tests/shlib.c 1>&AS_MESSAGE_LOG_FD]) then - if AC_TRY_COMMAND([`eval echo "$SHLD $LDSHFLAGS $PICFLAG"` -o "shlib.$SHLIBEXT" shlib.o 1>&AS_MESSAGE_LOG_FD]) + TESTCMD="`eval echo \"$SHLD $LDSHFLAGS $PICFLAG\"`" + TESTCMD="$TESTCMD -o \"shlib.$SHLIBEXT\" shlib.o" + if AC_TRY_COMMAND([$TESTCMD 1>&AS_MESSAGE_LOG_FD 2>&1]) then ac_cv_shlib_works=yes fi -- 1.7.1