Commit dafdffd7 authored by Matthias Clasen's avatar Matthias Clasen Committed by Matthias Clasen
Browse files

Implement the same PLT reduction technique used in GTK+:

Thu Sep 16 02:03:15 2004  Matthias Clasen  <maclas@gmx.de>

	Implement the same PLT reduction technique used in GTK+:
parent e0811a5e
Thu Sep 16 02:03:15 2004 Matthias Clasen <maclas@gmx.de>
Implement the same PLT reduction technique used in GTK+:
* glib/glib.symbols: Master list of symbols
* glib/makegalias.pl: Perl script which creates galias.h
* glib/abicheck.sh: Compares actual exports against glib.symbols
* glib/glib.def: Removed. This file is now generated from
glib.symbols
* glib/Makefile.am: Add rules to generate galias.h and glib.def,
and add abicheck.sh to TESTS. Don't export _-prefixed symbols.
* configure.in: Add --disable-visibility to suppress the
use of ELF visibility attributes.
* glib/*.c: Include galias.h
2004-09-15 Tor Lillqvist <tml@iki.fi>
* glib/gwin32.c (g_win32_error_message): Convert message to
......
Thu Sep 16 02:03:15 2004 Matthias Clasen <maclas@gmx.de>
Implement the same PLT reduction technique used in GTK+:
* glib/glib.symbols: Master list of symbols
* glib/makegalias.pl: Perl script which creates galias.h
* glib/abicheck.sh: Compares actual exports against glib.symbols
* glib/glib.def: Removed. This file is now generated from
glib.symbols
* glib/Makefile.am: Add rules to generate galias.h and glib.def,
and add abicheck.sh to TESTS. Don't export _-prefixed symbols.
* configure.in: Add --disable-visibility to suppress the
use of ELF visibility attributes.
* glib/*.c: Include galias.h
2004-09-15 Tor Lillqvist <tml@iki.fi>
* glib/gwin32.c (g_win32_error_message): Convert message to
......
Thu Sep 16 02:03:15 2004 Matthias Clasen <maclas@gmx.de>
Implement the same PLT reduction technique used in GTK+:
* glib/glib.symbols: Master list of symbols
* glib/makegalias.pl: Perl script which creates galias.h
* glib/abicheck.sh: Compares actual exports against glib.symbols
* glib/glib.def: Removed. This file is now generated from
glib.symbols
* glib/Makefile.am: Add rules to generate galias.h and glib.def,
and add abicheck.sh to TESTS. Don't export _-prefixed symbols.
* configure.in: Add --disable-visibility to suppress the
use of ELF visibility attributes.
* glib/*.c: Include galias.h
2004-09-15 Tor Lillqvist <tml@iki.fi>
* glib/gwin32.c (g_win32_error_message): Convert message to
......
Thu Sep 16 02:03:15 2004 Matthias Clasen <maclas@gmx.de>
Implement the same PLT reduction technique used in GTK+:
* glib/glib.symbols: Master list of symbols
* glib/makegalias.pl: Perl script which creates galias.h
* glib/abicheck.sh: Compares actual exports against glib.symbols
* glib/glib.def: Removed. This file is now generated from
glib.symbols
* glib/Makefile.am: Add rules to generate galias.h and glib.def,
and add abicheck.sh to TESTS. Don't export _-prefixed symbols.
* configure.in: Add --disable-visibility to suppress the
use of ELF visibility attributes.
* glib/*.c: Include galias.h
2004-09-15 Tor Lillqvist <tml@iki.fi>
* glib/gwin32.c (g_win32_error_message): Convert message to
......
Thu Sep 16 02:03:15 2004 Matthias Clasen <maclas@gmx.de>
Implement the same PLT reduction technique used in GTK+:
* glib/glib.symbols: Master list of symbols
* glib/makegalias.pl: Perl script which creates galias.h
* glib/abicheck.sh: Compares actual exports against glib.symbols
* glib/glib.def: Removed. This file is now generated from
glib.symbols
* glib/Makefile.am: Add rules to generate galias.h and glib.def,
and add abicheck.sh to TESTS. Don't export _-prefixed symbols.
* configure.in: Add --disable-visibility to suppress the
use of ELF visibility attributes.
* glib/*.c: Include galias.h
2004-09-15 Tor Lillqvist <tml@iki.fi>
* glib/gwin32.c (g_win32_error_message): Convert message to
......
......@@ -149,6 +149,7 @@ case "$host" in
esac
AC_MSG_RESULT([$glib_native_win32])
AM_CONDITIONAL(OS_WIN32, [test "$glib_native_win32" = "yes"])
AM_CONDITIONAL(OS_UNIX, [test "$glib_native_win32" != "yes"])
AC_SUBST(G_LIB_WIN32_RESOURCE)
AC_SUBST(G_MODULE_WIN32_RESOURCE)
AC_SUBST(G_OBJECT_WIN32_RESOURCE)
......@@ -164,6 +165,16 @@ if test "$glib_native_win32" = "yes"; then
fi
AM_CONDITIONAL(MS_LIB_AVAILABLE, [test x$ms_librarian = xyes])
if test "$glib_native_win32" != yes; then
# libtool option to control which symbols are exported
# right now, symbols starting with _ are not exported
LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
else
# We currently use .def files on Windows
LIBTOOL_EXPORT_OPTIONS=
fi
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
dnl declare --enable-* args and collect ac_help strings
AC_ARG_ENABLE(debug,
AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
......@@ -191,6 +202,10 @@ AC_ARG_ENABLE(rebuilds,
[AC_HELP_STRING([--disable-rebuilds],
[disable all source autogeneration rules])],,
[enable_rebuilds=yes])
AC_ARG_ENABLE(visibility,
[AC_HELP_STRING([--disable-visibility],
[don't use ELF visibility attributes])],,
[enable_visibility=yes])
if test "x$enable_threads" != "xyes"; then
enable_threads=no
......@@ -275,6 +290,10 @@ else
fi
fi
if test "x$enable_visibility" = "xno"; then
GLIB_DEBUG_FLAGS="$GLIB_DEBUG_FLAGS -DDISABLE_VISIBILITY"
fi
# Ensure MSVC-compatible struct packing convention is used when
# compiling for Win32 with gcc.
# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
......
......@@ -13,16 +13,31 @@ DIST_SUBDIRS = libcharset gnulib
INCLUDES = -I$(top_srcdir) -DG_LOG_DOMAIN=\"GLib\" \
$(GLIB_DEBUG_FLAGS) -DG_DISABLE_DEPRECATED -DGLIB_COMPILATION
glib.def: glib.symbols
(echo -e EXPORTS; cpp -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 $(srcdir)/glib.symbols | sed -e '/^$$/d' -e 's/^/\t/') > glib.def
galias.h: glib.symbols
./makegalias.pl < $(srcdir)/glib.symbols > galias.h
if OS_UNIX
TESTS = abicheck.sh
endif
BUILT_SOURCES = galias.h
EXTRA_DIST = \
makefile.msc.in \
glib.rc.in \
gen-unicode-tables.pl \
glib.def
makegalias.pl \
glib.symbols
# These may be in the builddir too
BUILT_EXTRA_DIST = \
makefile.msc \
glib.rc
glib.rc \
glib.def \
galias.h
lib_LTLIBRARIES = libglib-2.0.la
......@@ -184,6 +199,8 @@ uninstall-libtool-import-lib:
else
install-libtool-import-lib:
uninstall-libtool-import-lib:
export_symbols = $(LIBTOOL_EXPORT_OPTIONS)
endif
libglib_2_0_la_LIBADD = libcharset/libcharset.la $(printf_la) @GIO@ @GSPAWN@ @PLATFORMDEP@ @G_LIB_WIN32_RESOURCE@ @ICONV_LIBS@ @G_LIBS_EXTRA@
......
#! /bin/sh
cpp -P -DG_OS_UNIX -DINCLUDE_INTERNAL_SYMBOLS ${srcdir:-.}/glib.symbols | sed -e '/^$/d' | sort > expected-abi
nm -D .libs/libglib-2.0.so | grep " T " | cut -c12- | sort > actual-abi
diff -u expected-abi actual-abi && rm expected-abi actual-abi
......@@ -32,6 +32,7 @@
#include <string.h>
#include <stdlib.h>
#include "galias.h"
#include "glib.h"
......
......@@ -26,6 +26,7 @@
#include "config.h"
#include "galias.h"
#include "glib.h"
......
......@@ -22,6 +22,7 @@
#include "config.h"
#include "galias.h"
#include "glib.h"
#include "gthreadinit.h"
......
......@@ -35,6 +35,7 @@
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include "galias.h"
#include "glib.h"
#include "gprintfint.h"
......
......@@ -30,6 +30,7 @@
#include "config.h"
#include "galias.h"
#include "glib.h"
......
......@@ -32,6 +32,7 @@
#include <string.h>
#include "galias.h"
#include "glib.h"
......
......@@ -28,6 +28,7 @@
#include <string.h>
#include <stdlib.h>
#include "galias.h"
#include "glib.h"
#include "gprintfint.h"
#include "gthreadinit.h"
......
......@@ -34,7 +34,7 @@
#include "config.h"
#include <string.h>
#include "galias.h"
#include "glib.h"
......
......@@ -35,6 +35,7 @@
/* #define DEBUG_MSG(args) g_message args ; */
#endif
#include "galias.h"
#include "glib.h"
#include <time.h>
......
......@@ -31,6 +31,7 @@
#include <dirent.h>
#endif
#include "galias.h"
#include "glib.h"
#include "gdir.h"
......
......@@ -26,6 +26,7 @@
#include "config.h"
#include "galias.h"
#include "glib.h"
......
......@@ -20,6 +20,7 @@
#include "config.h"
#include "galias.h"
#include "glib.h"
#include <sys/stat.h>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment