libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Add hppa*64* support to libtool (HEAD branch)


From: ross . alexander
Subject: Re: Add hppa*64* support to libtool (HEAD branch)
Date: Thu, 19 Dec 2002 10:40:30 +0000

Albert, David, Robert et al,

My apologies for the lack of response from myself.  I was waiting for the
copyright assignment stuff to get sorted out.  I have got the latest
version
of libtool.m4 (HEAD) from CVSweb (1.281) and applied my patch to that
and then reformatted it.  Hopefully this is correct.  If not please notify
me
and I will mend my ways.  I have included the patch both as text and as
an attachment.

Cheers,

Ross


2002-12-19  Ross Alexander  <address@hidden>

      * Add hppa*64* support to AC_LIBTOOL_SYS_DYNAMIC_LINKER.
      The 64bit HPUX environment is ELF based so is very similar to
      both Linux and IA64 HPUX.  It is however, quite different from
      the 32bit SOM environment.
      * Add hppa*64* support to AC_DEPLIBS_CHECK_METHOD.
      * Split hpux9* into seperate case in AC_LIBTOOL_LANG_CXX_CONFIG.
      As hpux9 is no longer maintained by HP moving it to its own case
      considerably simplifies maintaining hpux11.
      * Add hppa*64* and GNU ld support to AC_LIBTOOL_LANG_CXX_CONFIG.
      * Split hpux9* into seperate case in AC_LIBTOOL_PROG_LD_SHLIBS.
      * Add hppa*64* and GNU ld support to AC_LIBTOOL_PROG_LD_SHLIBS.
      The GNU ld supports PA64 and is recommended for use with GCC.


--- libtool.m4-head-1.281     2002-12-19 10:01:32.000000000 +0000
+++ libtool.m4    2002-12-19 10:25:26.000000000 +0000
@@ -1284,7 +1284,8 @@
   version_type=sunos
   need_lib_prefix=no
   need_version=no
-  if test "$host_cpu" = ia64; then
+  case "$host_cpu" in
+  ia64*)
     hardcode_into_libs=yes
     dynamic_linker="$host_os dld.so"
     shlibpath_var=LD_LIBRARY_PATH
@@ -1297,13 +1298,27 @@
       sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
     fi
     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-  else
+    ;;
+  hppa*64*)
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}.sl$versuffix ${libname}
${release}.sl$major $libname.sl'
+    soname_spec='${libname}${release}.sl$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    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'
-  fi
+    sys_lib_search_path_spec="/lib /usr/lib /usr/ccs/lib"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  esac
   # HP-UX runs *really* slowly unless shared libraries are mode 555.
   postinstall_cmds='chmod 555 $lib'
   ;;
@@ -2036,13 +2051,20 @@

 hpux10.20* | hpux11*)
   lt_cv_file_magic_cmd=/usr/bin/file
-  if test "$host_cpu" = ia64; then
+  case "$host_cpu" in
+  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_test_file=/usr/lib/hpux32/libc.so
-  else
+    ;;
+  hppa*64*)
+    lt_cv_deplibs_check_method='file_magic ELF-64 shared object file -
PA-RISC [[0-9]].[[0-9]]'
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
     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_test_file=/usr/lib/libc.sl
-  fi
+    ;;
+  esac
   ;;

 irix5* | irix6* | nonstopux*)
@@ -2745,25 +2767,67 @@
     ;;
   gnu*)
     ;;
-  hpux*)
+  hpux9*)
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+                                 # but as the default
+                                 # location of the library.
+
+    case $cc_basename in
+      CC)
+     # FIXME: insert proper C++ library support
+     _LT_AC_TAGVAR(ld_shlibs, $1)=no
+     ;;
+      aCC)
+     _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b
${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects
$libobjs $deplibs $postdep_objects $compiler_flags~test
$output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+     # Commands to make compiler produce verbose output that lists
+     # what "hidden" libraries, object files and flags are used when
+     # linking a shared library.
+     #
+     # There doesn't appear to be a way to prevent this compiler from
+     # explicitly linking system object files so we need to strip them
+     # from the output so that they don't get included in the library
+     # dependencies.
+     output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v
conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case
$z in
conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac;
done; echo $list'
+     ;;
+      *)
+     if test "$GXX" = yes; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC
-shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o
$output_objdir/$soname
 $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test
$output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+     else
+       # FIXME: insert proper C++ library support
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
+     fi
+     ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
     if test $with_gnu_ld = no; then
-      if test "$host_cpu" = ia64; then
-     _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      else
-     _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-     _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-     _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      fi
-    fi
-    if test "$host_cpu" = ia64; then
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    else
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    fi
+      case "$host_cpu" in
+        ia64*|hppa*64*)
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+       ;;
+        *)
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+          ;;
+      esac
+    case "$host_cpu" in
+      ia64*|hppa*64*)
+     _LT_AC_TAGVAR(hardcode_direct, $1)=no
+     _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+     ;;
+      *)
+     _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+     ;;
+    esac
     _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
                                  # but as the default
                                  # location of the library.
+    fi

     case $cc_basename in
       CC)
@@ -4256,10 +4320,13 @@
       fi
       ;;
     hpux*)
-      # PIC is the default for IA64 HP-UX, but not for PA HP-UX.
-      if test "$host_cpu" != ia64; then
+      # PIC is the default for IA64 and PA64 HP-UX, but not for PA HP-UX
SOM.
+      case "$host_cpu" in
+      ia64*|hppa*64*)
+        ;;
+      *)
      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      fi
+      esac
       ;;
     *)
       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
@@ -4505,9 +4572,13 @@

     hpux*)
       # PIC is the default for IA64 HP-UX, but not for PA HP-UX.
-      if test "$host_cpu" != ia64; then
-     _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      fi
+      case "$host_cpu" in
+     ia64*|hppa*64*)
+       ;;
+     *)
+       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       ;;
+      esac
       ;;

     *)
@@ -4535,9 +4606,13 @@

     hpux9* | hpux10* | hpux11*)
       _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" != ia64; then
-     _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-      fi
+      case "$host_cpu" in
+     ia64*|hppa*64*)
+     ;;
+     *)
+       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+       ;;
+      esac
       # Is there a better lt_prog_compiler_static that works with the
bundled CC?
       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
       ;;
@@ -5055,47 +5130,60 @@
       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;

-    hpux9* | hpux10* | hpux11*)
+     hpux9*)
       if test "$GCC" = yes; then
-     case $host_os in
-       hpux9*)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$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'
+     _LT_AC_TAGVAR(archive_cmds, $1)='$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'
+      else
+     _LT_AC_TAGVAR(archive_cmds, $1)='$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'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+     hpux10* | hpux11*)
+      if test "$GCC" = "yes" -a "$with_gnu_ld" = "no"; then
+     case "$host_cpu" in
+       ia64*|hppa*64*)
+         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname
-o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         if test "$host_cpu" = ia64; then
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h
${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-         else
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h
${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs
$compiler_flags'
-         fi
+         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h
${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs
$compiler_flags'
          ;;
-     esac
+      esac
       else
-     case $host_os in
-       hpux9*)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$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'
+     case "$host_cpu" in
+       ia64*|hppa*64*)
+         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib
$libobjs $deplibs $linker_flags'
          ;;
        *)
-         if test "$host_cpu" = ia64; then
-           _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib
$libobjs $deplibs $linker_flags'
-         else
-           _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b
$install_libdir -o $lib $libobjs $deplibs $linker_flags'
-         fi
+         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b
$install_libdir -o $lib $libobjs $deplibs $linker_flags'
          ;;
      esac
       fi
-      if test "$host_cpu" = ia64; then
-     _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-     _LT_AC_TAGVAR(hardcode_direct, $1)=no
-     _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      else
-     _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-     _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-     _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      if test "$with_gnu_ld" = "no"; then
+     case "$host_cpu" in
+       ia64*|hppa*64*)
+         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+         _LT_AC_TAGVAR(hardcode_direct, $1)=no
+         _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+         ;;
+       *)
+         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b
${wl}$libdir'
+         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+         _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+            ;;
+     esac
+     # hardcode_minus_L: Not really in the search PATH,
+     # but as the default location of the library.
+     _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+     _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
       fi
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
       ;;

     irix5* | irix6* | nonstopux*)


(See attached file: libtool.m4.diff)

---------------------------------------------------------------------------------


Ross Alexander                           "We demand clearly defined
MIS - NEC Europe Limited            boundaries of uncertainty and
Work ph: +44 20 8752 3394         doubt."

(See attached file: libtool.m4.diff)

Attachment: libtool.m4.diff
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]