libtool changes for HP-UX IA64 support

Steve Ellcey sje@cup.hp.com
Tue Jan 22 16:44:00 GMT 2002


Since it doesn't look like we will be able to update libtool in binutils
for the 2.12 release, I have created a patch for the libtool that is
checked in to binutils.  I am hoping someone can review it and check it
in.  I don't have write permission but I do have a copyright assignment
on file.  HP-UX IA64 support is already in the top-of-tree libtool so
there is no problem with that, these changes could also be put into the
GCC tree if desired but I am less concerned with that as GCC 3.1 won't
have full HP-UX IA64 support anyway and I am hoping that by the time GCC
3.2 is released libtool would have been updated to the latest sources.

Steve Ellcey
sje@cup.hp.com


2002-01-22  Steve Ellcey <sje@cup.hp.com>
	* libtool.m4 (HPUX_IA64_MODE): Set to 32 or 64 based on ABI.
	(lt_cv_deplibs_check_method, lt_cv_file_magic_cmd,
	lt_cv_file_magic_test_file): Set to appropriate values for HP-UX IA64.
	* ltcf-c.sh (archive_cmds, hardcode_*): Ditto.
	* ltconfig (shlibpath_*, dynamic_linker, library_names_spec,
	soname_spec, sys_lib_search_path_spec): Ditto.


*** src.orig/libtool.m4	Tue Jan 22 15:40:53 2002
--- src/libtool.m4	Tue Jan 22 15:40:28 2002
*************** case $host in
*** 159,164 ****
--- 159,180 ----
    rm -rf conftest*
    ;;
  
+ ia64-*-hpux*)
+   # Find out which ABI we are using.
+   echo 'int i;' > conftest.$ac_ext
+   if AC_TRY_EVAL(ac_compile); then
+     case "`/usr/bin/file conftest.o`" in
+     *ELF-32*)
+       HPUX_IA64_MODE="32"
+       ;;
+     *ELF-64*)
+       HPUX_IA64_MODE="64"
+       ;;
+     esac
+   fi
+   rm -rf conftest*
+   ;;
+ 
  *-*-sco3.2v5*)
    # On SCO OpenServer 5, we need -belf to get full-featured binaries.
    SAVE_CFLAGS="$CFLAGS"
*************** gnu*)
*** 568,576 ****
    ;;
  
  hpux10.20*|hpux11*)
!   lt_cv_deplibs_check_method=['file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library']
!   lt_cv_file_magic_cmd=/usr/bin/file
!   lt_cv_file_magic_test_file=/usr/lib/libc.sl
    ;;
  
  irix5* | irix6*)
--- 584,601 ----
    ;;
  
  hpux10.20*|hpux11*)
!   case $host_cpu in
!   hppa*)
!     [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library']
!     lt_cv_file_magic_cmd=/usr/bin/file
!     lt_cv_file_magic_test_file=/usr/lib/libc.sl
!     ;;
!   ia64*)
!     [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64']
!     lt_cv_file_magic_cmd=/usr/bin/file
!     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
!     ;;
!   esac
    ;;
  
  irix5* | irix6*)
*** src.orig/ltcf-c.sh	Tue Jan 22 15:41:03 2002
--- src/ltcf-c.sh	Tue Jan 22 15:40:39 2002
*************** else
*** 417,439 ****
      ;;
  
    hpux9* | hpux10* | hpux11*)
!     if test $with_gcc = yes; then
!       case "$host_os" in
!       hpux9*) archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
!       *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;;
!       esac
!     else
!       case $host_os in
!       hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
!       *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
!       esac
!     fi
!     hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
!     hardcode_libdir_separator=:
!     hardcode_direct=yes
!     hardcode_minus_L=yes # Not in the search PATH, but as the default
! 			 # location of the library.
      export_dynamic_flag_spec='${wl}-E'
      ;;
  
    irix5* | irix6*)
--- 417,448 ----
      ;;
  
    hpux9* | hpux10* | hpux11*)
!     case "$host_cpu" in
!     ia64*)
!       hardcode_direct=no
!       hardcode_shlibpath_var=no
!       archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
!       hardcode_libdir_flag_spec='-L$libdir' ;;
!     *)
!       if test $with_gcc = yes; then
!         case "$host_os" in
!         hpux9*) archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
!         *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;;
!         esac
!       else
!         case $host_os in
!         hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
!         *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
!         esac
!       fi
!       hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
!       hardcode_libdir_separator=:
!       hardcode_minus_L=yes # Not in the search PATH, but as the default
! 			   # location of the library.
!       ;;
!     esac
      export_dynamic_flag_spec='${wl}-E'
+     hardcode_direct=yes
      ;;
  
    irix5* | irix6*)
*** src.orig/ltconfig	Tue Jan 22 15:40:57 2002
--- src/ltconfig	Tue Jan 22 15:40:34 2002
*************** gnu*)
*** 1155,1168 ****
  hpux9* | hpux10* | hpux11*)
    # Give a soname corresponding to the major version so that dld.sl refuses to
    # link against other versions.
-   dynamic_linker="$host_os dld.sl"
    version_type=sunos
    need_lib_prefix=no
    need_version=no
!   shlibpath_var=SHLIB_PATH
!   shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
!   library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
!   soname_spec='${libname}${release}.sl$major'
    # HP-UX runs *really* slowly unless shared libraries are mode 555.
    postinstall_cmds='chmod 555 $lib'
    ;;
--- 1155,1186 ----
  hpux9* | hpux10* | hpux11*)
    # Give a soname corresponding to the major version so that dld.sl refuses to
    # link against other versions.
    version_type=sunos
    need_lib_prefix=no
    need_version=no
!   case "$host_cpu" in
!   ia64*)
!     dynamic_linker="$host_os dld.so"
!     shlibpath_var=LD_LIBRARY_PATH
!     library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
!     soname_spec='${libname}${release}.so$major'
!     shlibpath_var=LD_LIBRARY_PATH
!     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
!     if test "X$HPUX_IA64_MODE" = X32; then
!       sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32/usr/local/lib"
!     else
!       sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
!     fi
!     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
!     ;;
!   *)
!     dynamic_linker="$host_os dld.sl"
!     shlibpath_var=SHLIB_PATH
!     shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
!     library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
!     soname_spec='${libname}${release}.sl$major'
!     ;;
!   esac
    # HP-UX runs *really* slowly unless shared libraries are mode 555.
    postinstall_cmds='chmod 555 $lib'
    ;;



More information about the Binutils mailing list