[Top][All Lists]
[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