Web lists-archives.com

[PATCH] Improving HP-UX support




Hi folks,

please find a patch attached to properly compile and link Git 2.21.0 on HP-UX IA64.

The patch includes basically two changes:

* Detection of big endian on HP-UX otherwise SHA1 calc is broken
* Detection of linking style with HP aCC

export PREFIX=/opt/ports
export LIBDIR=$PREFIX/lib/hpux32
export CC=/opt/aCC/bin/aCC
export CXX=/opt/aCC/bin/aCC
export CONFIGURE="./configure --prefix=$PREFIX --libdir=$LIBDIR"
export CPPFLAGS="-I$PREFIX/include"
export LDFLAGS="-L$LIBDIR"
autoreconf -fi
$CONFIGURE --with-editor=vim --with-zlib=$PREFIX --with-perl=/usr/bin/perl --with-iconv=$PREFIX \
  --with-libpcre=$PREFIX --with-gitconfig=$PREFIX/etc/gitconfig --with-gitattributes=$PREFIX/etc/gitattributes \
  --without-tcltk --disable-pthreads --with-lib=lib/hpux32
gmake INSTALL=$INSTALL_SH install

Note: I am not subscribed to this list.

Regards,

Michael
diff -ur configure.ac configure.ac
--- configure.ac	2019-02-24 16:55:19 +0000
+++ configure.ac	2019-05-08 11:31:42 +0000
@@ -475,8 +475,18 @@
       if test "$git_cv_ld_rpath" = "yes"; then
          CC_LD_DYNPATH=-rpath
       else
-         CC_LD_DYNPATH=
-         AC_MSG_WARN([linker does not support runtime path to dynamic libraries])
+         AC_CACHE_CHECK([if linker supports -Wl,+b,], git_cv_ld_wl_b, [
+            SAVE_LDFLAGS="${LDFLAGS}"
+            LDFLAGS="${SAVE_LDFLAGS} -Wl,+b,/"
+            AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [git_cv_ld_wl_b=yes], [git_cv_ld_wl_b=no])
+            LDFLAGS="${SAVE_LDFLAGS}"
+         ])
+         if test "$git_cv_ld_wl_b" = "yes"; then
+            CC_LD_DYNPATH=-Wl,+b,
+          else
+             CC_LD_DYNPATH=
+             AC_MSG_WARN([linker does not support runtime path to dynamic libraries])
+          fi
       fi
    fi
 fi
diff -ur sha1dc/sha1.c sha1dc/sha1.c
--- sha1dc/sha1.c	2019-02-24 16:55:19 +0000
+++ sha1dc/sha1.c	2019-05-04 01:26:22 +0000
@@ -93,7 +93,7 @@
 #define SHA1DC_BIGENDIAN
 
 /* Not under GCC-alike or glibc or *BSD or newlib or <processor whitelist> */
-#elif (defined(_AIX))
+#elif (defined(_AIX) || defined(__hpux))
 
 /*
  * Defines Big Endian on a whitelist of OSs that are known to be Big