bug-libtool
[Top][All Lists]
Advanced

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

Re: [patch #6416] AmigaOS4 support in libtool


From: Ralf Wildenhues
Subject: Re: [patch #6416] AmigaOS4 support in libtool
Date: Wed, 12 Mar 2008 20:48:24 +0100
User-agent: Mutt/1.5.17+20080114 (2008-01-14)

Hello Henning,

I have applied your patch now, including a NEWS entry, as below, and put
you in THANKS.  Please check that I did not make any errors, thanks.

Gathering from the testsuite failure, the shared library support has
some work ahead yet.

Cheers,
Ralf

2008-03-12  Henning Nielsen Lund  <address@hidden>

        * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER)
        (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) [amigaos]: Port to
        AmigaOS4 shared libraries on powerpc.
        * libltdl/m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS) [amigaos]:
        Likewise.
        * THANKS, NEWS: Update.

Index: NEWS
===================================================================
RCS file: /cvsroot/libtool/libtool/NEWS,v
retrieving revision 1.222
diff -u -r1.222 NEWS
--- NEWS        4 Mar 2008 22:31:33 -0000       1.222
+++ NEWS        12 Mar 2008 19:47:00 -0000
@@ -2,6 +2,10 @@
 
 New in 2.3b: 2008-??-??: CVS version 2.3a, Libtool team:
 
+* Changes in supported systems or compilers:
+
+  - Initial shared library support for AmigaOS4 on powerpc.
+
 * Bug fixes:
 
   - Fix 2.2 regression in libltdl that causes memory corruption upon
Index: libltdl/m4/libtool.m4
===================================================================
RCS file: /cvsroot/libtool/libtool/libltdl/m4/libtool.m4,v
retrieving revision 1.142
diff -u -r1.142 libtool.m4
--- libltdl/m4/libtool.m4       8 Mar 2008 12:14:15 -0000       1.142
+++ libltdl/m4/libtool.m4       12 Mar 2008 19:47:04 -0000
@@ -2150,13 +2150,18 @@
   ;;
 
 amigaos*)
-  if test "$host_cpu" = m68k; then
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the 
compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix 
${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
     finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do 
libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; 
test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib 
${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || 
exit 1; done'
-  else
-    dynamic_linker=no
-  fi
+    ;;
+  esac
   ;;
 
 beos*)
@@ -3524,14 +3529,22 @@
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       fi
       ;;
+
     amigaos*)
-      if test "$host_cpu" = m68k; then
-        # FIXME: we need at least 68020 code to build shared libraries, but
-        # adding the `-m68020' flag to GCC prevents building anything better,
-        # like `-m68040'.
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 
-malways-restore-a4'
-      fi
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything 
better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 
-malways-restore-a4'
+        ;;
+      esac
       ;;
+
     beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
@@ -3816,12 +3829,18 @@
       ;;
 
     amigaos*)
-      if test "$host_cpu" = m68k; then
-        # FIXME: we need at least 68020 code to build shared libraries, but
-        # adding the `-m68020' flag to GCC prevents building anything better,
-        # like `-m68040'.
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 
-malways-restore-a4'
-      fi
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything 
better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 
-malways-restore-a4'
+        ;;
+      esac
       ;;
 
     beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
@@ -4228,19 +4247,18 @@
       ;;
 
     amigaos*)
-      if test "$host_cpu" = m68k; then
-        _LT_TAGVAR(archive_cmds, $1)='$RM 
$output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > 
$output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> 
$output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> 
$output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> 
$output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd 
$output_objdir && a2ixlibrary -32)'
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      fi
-
-      # Samuel A. Falvo II <address@hidden> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      _LT_TAGVAR(ld_shlibs, $1)=no
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs 
$compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM 
$output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > 
$output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> 
$output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> 
$output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> 
$output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd 
$output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
       ;;
 
     beos*)
@@ -4587,13 +4605,18 @@
       ;;
 
     amigaos*)
-      if test "$host_cpu" = m68k; then
-        _LT_TAGVAR(archive_cmds, $1)='$RM 
$output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > 
$output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> 
$output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> 
$output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> 
$output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd 
$output_objdir && a2ixlibrary -32)'
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      fi
-      # see comment about different semantics on the GNU ld section
-      _LT_TAGVAR(ld_shlibs, $1)=no
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs 
$compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM 
$output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > 
$output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> 
$output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> 
$output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> 
$output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd 
$output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
       ;;
 
     bsdi[[45]]*)
Index: libltdl/m4/ltdl.m4
===================================================================
RCS file: /cvsroot/libtool/libtool/libltdl/m4/ltdl.m4,v
retrieving revision 1.43
diff -u -r1.43 ltdl.m4
--- libltdl/m4/ltdl.m4  31 Jan 2008 16:17:06 -0000      1.43
+++ libltdl/m4/ltdl.m4  12 Mar 2008 19:47:05 -0000
@@ -472,6 +472,13 @@
   aix[[4-9]]*)
     lt_cv_sys_dlopen_deplibs=yes
     ;;
+  amigaos*)
+    case $host_cpu in
+    powerpc)
+      lt_cv_sys_dlopen_deplibs=no
+      ;;
+    esac
+    ;;
   darwin*)
     # Assuming the user has installed a libdl from somewhere, this is true
     # If you are looking for one http://www.opendarwin.org/projects/dlcompat




reply via email to

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