This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [3.2/3.3/HEAD] shared libobjc not built
- From: "Timothy J. Wood" <tjw at omnigroup dot com>
- To: Nicola Pero <nicola at brainstorm dot co dot uk>
- Cc: gcc at gcc dot gnu dot org, Matthias Klose <doko at cs dot tu-berlin dot de>, "Andrea 'fwyzard' Bocci" <fwyzard at inwind dot it>, mingw-patches at lists dot sourceforge dot net
- Date: Fri, 3 Jan 2003 19:28:44 -0800
- Subject: Re: [3.2/3.3/HEAD] shared libobjc not built
On Thursday, January 2, 2003, at 07:54 PM, Nicola Pero wrote:
If you can get some time to get it working on MinGW, that would be
great
:-)
OK, I have it generating a dll file now. I still need to test if
ObjC *works* with the DLL, but I thought I'd run this diff out to see
if anyone spots any problems this might cause (I can't imagine what,
but...)
This patch is against the gcc-3.2.1-20021201-3 MinGW tarball, but I
wouldn't be surprised if it worked on the head too :)
--- ./ltcf-c.sh Fri Aug 31 17:47:19 2001
+++ ../../gcc-3.2.1-20021201-3/ltcf-c.sh Fri Jan 3 19:18:51 2003
@@ -102,7 +102,7 @@
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec='-L$libdir'
- allow_undefined_flag=unsupported
+ allow_undefined_flag=
always_export_symbols=yes
extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
@@ -160,9 +160,9 @@
_lt_hint=1;
cat $export_symbols | while read symbol; do
set dummy \$symbol;
- case \[$]# in
- 2) echo " \[$]2 @ \$_lt_hint ; " >>
$output_objdir/$soname-def;;
- *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >>
$output_objdir/$soname-def;;
+ case \$# in
+ 2) echo " \$2 @ \$_lt_hint ; " >>
$output_objdir/$soname-def;;
+ *) echo " \$2 @ \$_lt_hint \$3 ; " >>
$output_objdir/$soname-def;;
esac;
_lt_hint=`expr 1 + \$_lt_hint`;
done;
This turns off the setting of 'allow_undefined_flag=unsupported'
since the ObjC DLL doesn't *have* any undefined symbols, so there is no
need to allow them! Also, this changes the shell syntax to not bork
the defs file -- It could well be that /bin/sh is busted on Mac OS X
(from whence I'm cross compiling), but it is now bash:
% /bin/sh --version
GNU bash, version 2.05a.0(1)-release (powerpc-apple-darwin6.0)
Copyright 2001 Free Software Foundation, Inc.
... so I'd expect it to be reasonably close to what other folks have.
I'll let you all know if I can get the DLL actually working in a bit.
:)
-tim