Make PLT-reduction work with gcc4, and don't include everything in
2005-03-15 Matthias Clasen <mclasen@redhat.com> Make PLT-reduction work with gcc4, and don't include everything in gdkalias.h: * gdk/gdk.symbols: Group symbols by header and source file. * gdk/makegdkalias.pl: Protect definitions by the same preprocessor symbols used to guard the headers. Move the alias declarations to a separate file which is produced when calling makegdkalias.pl -def * gdk/Makefile.am (gdkaliasdef.c): Add a rule to generate this file. * gdk/*.c, gdk/x11/*.c: Include gdkalias.h after the other headers, include gdkaliasdef.c at the bottom.
This commit is contained in:
committed by
Matthias Clasen
parent
34bfd71279
commit
2a2d769d42
@ -1,5 +1,12 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
my $do_def = 0;
|
||||
|
||||
if (($#ARGV >= 0) && ($ARGV[0] eq "-def")) {
|
||||
shift;
|
||||
$do_def = 1;
|
||||
}
|
||||
|
||||
print <<EOF;
|
||||
/* Generated by makegdkalias.pl */
|
||||
|
||||
@ -9,39 +16,25 @@ print <<EOF;
|
||||
|
||||
#ifdef G_HAVE_GNUC_VISIBILITY
|
||||
|
||||
#ifdef GDK_ENABLE_BROKEN
|
||||
#define WAS_BROKEN
|
||||
#endif
|
||||
#define GDK_ENABLE_BROKEN
|
||||
EOF
|
||||
|
||||
#ifdef GDK_MULTIHEAD_SAFE
|
||||
#define WAS_MULTIHEAD
|
||||
#endif
|
||||
#undef GDK_MULTIHEAD_SAVE
|
||||
if ($do_def) {
|
||||
print <<EOF
|
||||
#undef IN_FILE
|
||||
#define IN_FILE defined
|
||||
|
||||
#ifdef GDK_DISABLE_DEPRECATED
|
||||
#define WAS_NO_DEPR
|
||||
#endif
|
||||
#undef GDK_DISABLE_DEPRECATED
|
||||
|
||||
#ifdef G_DISABLE_DEPRECATED
|
||||
#define WAS_NO_G_DEPR
|
||||
#endif
|
||||
#undef G_DISABLE_DEPRECATED
|
||||
|
||||
#include "gdk.h"
|
||||
|
||||
#ifdef GDK_WINDOWING_X11
|
||||
#include "x11/gdkx.h"
|
||||
#endif
|
||||
#ifdef GDK_WINDOWING_WIN32
|
||||
#include "win32/gdkwin32.h"
|
||||
#endif
|
||||
#ifdef GDK_WINDOWING_FB
|
||||
#include "linux-fb/gdkfb.h"
|
||||
#endif
|
||||
#undef IN_HEADER
|
||||
#define IN_HEADER(x) 1
|
||||
|
||||
EOF
|
||||
}
|
||||
else {
|
||||
print <<EOF
|
||||
#define IN_FILE(x) 1
|
||||
#define IN_HEADER defined
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
my $in_comment = 0;
|
||||
my $in_skipped_section = 0;
|
||||
@ -80,7 +73,7 @@ while (<>) {
|
||||
next;
|
||||
}
|
||||
|
||||
if ($_ =~ /^\#ifdef\s+INCLUDE_VARIABLES/)
|
||||
if ($_ =~ /^\#ifdef\s+(INCLUDE_VARIABLES|INCLUDE_INTERNAL_SYMBOLS|ALL_FILES)/)
|
||||
{
|
||||
$in_skipped_section = 1;
|
||||
}
|
||||
@ -90,7 +83,14 @@ while (<>) {
|
||||
next;
|
||||
}
|
||||
|
||||
if ($_ =~ /^\#ifdef\s+G/)
|
||||
if ($_ =~ /^\#ifn?def\s+G/)
|
||||
{
|
||||
print $_;
|
||||
|
||||
next;
|
||||
}
|
||||
|
||||
if ($_ =~ /^\#if.*(IN_FILE|IN_HEADER)/)
|
||||
{
|
||||
print $_;
|
||||
|
||||
@ -112,39 +112,25 @@ while (<>) {
|
||||
$attributes = "$attributes $word" unless $word eq "PRIVATE";
|
||||
}
|
||||
|
||||
print <<EOF
|
||||
if (!$do_def) {
|
||||
print <<EOF
|
||||
extern __typeof ($str) $alias __attribute((visibility("hidden")))$attributes;
|
||||
extern __typeof ($str) $str __attribute((alias("$alias"), visibility("default")));
|
||||
\#define $str $alias
|
||||
|
||||
EOF
|
||||
}
|
||||
else {
|
||||
print <<EOF
|
||||
\#undef $str
|
||||
extern __typeof ($str) $str __attribute((alias("$alias"), visibility("default")));
|
||||
|
||||
EOF
|
||||
}
|
||||
}
|
||||
|
||||
print <<EOF;
|
||||
|
||||
#ifndef WAS_BROKEN
|
||||
#undef GDK_ENABLE_BROKEN
|
||||
#else
|
||||
#undef WAS_BROKEN
|
||||
#endif
|
||||
|
||||
#ifdef WAS_MULTIHEAD
|
||||
#define GDK_MULTIHEAD_SAFE
|
||||
#undef WAS_MULTIHEAD
|
||||
#endif
|
||||
|
||||
#ifdef WAS_NO_DEPR
|
||||
#define GDK_DISABLE_DEPRECATED
|
||||
#undef WAS_NO_DEPR
|
||||
#endif
|
||||
|
||||
#ifdef WAS_NO_G_DEPR
|
||||
#define G_DISABLE_DEPRECATED
|
||||
#undef WAS_NO_G_DEPR
|
||||
#endif
|
||||
|
||||
#endif /* G_HAVE_GNUC_VISIBILITY */
|
||||
|
||||
#endif /* DISABLE_VISIBILITY */
|
||||
EOF
|
||||
|
||||
|
||||
Reference in New Issue
Block a user