[Win32] Add code to remove the bug-compatibility entries (see #134813, and

2004-09-22  Tor Lillqvist  <tml@iki.fi>

	* Makefile.am (install-libtool-import-lib): [Win32] Add code to
	remove the bug-compatibility entries (see #134813, and related
	comments below) from the import library. The PRIVATE keyword in
	the .def file is supposed to mean that, but it isn't implemented
	yet by GNU ld.

	* makegobjectalias.pl: In case the symbol is followed by some
	stuff ("PRIVATE") that's intended for the .def file, use just the
	actual symbol.

	* gobject.symbols: For binary bug compatibility on Win32, add the
	g_slist_remove_all and g_unichar_validate symbols inside #ifdef
	INCLUDE_INTERNAL_SYMBOLS. (See #134813 and log entries from March
	below.)
This commit is contained in:
Tor Lillqvist 2004-09-22 22:41:02 +00:00 committed by Tor Lillqvist
parent b07e685c32
commit 4f89335660
4 changed files with 32 additions and 1 deletions

View File

@ -1,3 +1,20 @@
2004-09-22 Tor Lillqvist <tml@iki.fi>
* Makefile.am (install-libtool-import-lib): [Win32] Add code to
remove the bug-compatibility entries (see #134813, and related
comments below) from the import library. The PRIVATE keyword in
the .def file is supposed to mean that, but it isn't implemented
yet by GNU ld.
* makegobjectalias.pl: In case the symbol is followed by some
stuff ("PRIVATE") that's intended for the .def file, use just the
actual symbol.
* gobject.symbols: For binary bug compatibility on Win32, add the
g_slist_remove_all and g_unichar_validate symbols inside #ifdef
INCLUDE_INTERNAL_SYMBOLS. (See #134813 and log entries from March
below.)
2004-09-18 Matthias Clasen <mclasen@redhat.com>
* === Released 2.5.3 ===

View File

@ -49,6 +49,14 @@ if OS_WIN32
export_symbols = -export-symbols $(srcdir)/gobject.def
install-libtool-import-lib:
# Don't put the bug compatibility entries in the import lib!
# (Unfortunately the GNU linker doesn't yet understand the PRIVATE
# directive in .def files.)
#
for entry in `grep PRIVATE gobject.def | sed -e 's/PRIVATE//'`; do \
file=`nm -A .libs/libgobject-2.0.dll.a | grep -m 1 $$entry | cut -d: -f2`; \
ar d .libs/libgobject-2.0.dll.a $$file; \
done
$(INSTALL) .libs/libgobject-2.0.dll.a $(DESTDIR)$(libdir)
$(INSTALL) $(srcdir)/gobject.def $(DESTDIR)$(libdir)/gobject-2.0.def
@ -222,7 +230,7 @@ BUILT_EXTRA_DIST = \
gmarshal.h \
gmarshal.c \
stamp-gmarshal.h \
gobjectalias.h
gobjectalias.h
if OS_WIN32

View File

@ -319,3 +319,7 @@ g_value_unset
#ifdef INCLUDE_VARIABLES
g_param_spec_types
#endif
#ifdef INCLUDE_INTERNAL_SYMBOLS
g_slist_remove_all PRIVATE
g_unichar_validate PRIVATE
#endif

View File

@ -75,6 +75,8 @@ while (<>) {
my $str = $_;
chomp($str);
# Drop any Win32 specific .def file syntax
$str = (split (/ /, $str))[0];
my $alias = "IA__".$str;
print <<EOF