glib2/glib2.patch

Tue, 29 Mar 2011 20:04:34 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 29 Mar 2011 20:04:34 +0200
changeset 334
4a34d7a82eab
permissions
-rw-r--r--

Rework package yet again, correcting and introducing new buildconf logic:
Conditionally disable bootstrap stage comparison correctly, correct
english grammar, better find system as(1) and ld(1), indotruce detailed
optimization option messages, more completely guess cpu types, allow
profiled bootstrapping without a preinstalled GCC because many other
compilers have long since implemented 64-bit arithmetic, instruct make
to build sequentially (not in sparallel) when building a profiled
bootstrap as GCC online documents recommend, and generally improve
comment blocks.

The single most important correction in this changeset relates to the
GCC changed optimization policy since at least GCC 4.5, in which -march
is always passed and not always correctly guessed. In the case of this
package, allowing GCC to guess the architecture leads to wild build
errors at various subcomponents (zlib, libgcc, libiberty...) and
bootstrap stages. It seems quite platform specific, and the safest
approach to correcting this seems to be explicitly always specifying the
-march argument when bootstrapping GCC. Because the best choice 'native'
is not available when bootstrapping using a foreign (non GCC) compiler,
a guess is made according to rpmmacros l_platform in that case.

It is questionable as to whether these recent optimization changes
on the part of GCC or this package are compatible with each other,
or if either are complete or correct at all. At least applying these
corrections allows this package to build again in most cases test.

michael@273 1 Index: configure
michael@273 2 --- configure.orig 2010-03-16 03:52:21.000000000 +0100
michael@273 3 +++ configure 2010-03-17 20:07:17.000000000 +0100
michael@273 4 @@ -25810,7 +25810,7 @@
michael@273 5 add_thread_lib="-l$thread_lib"
michael@273 6 IN=" in -l$thread_lib"
michael@273 7 fi
michael@273 8 - LIBS="$add_thread_lib $glib_save_LIBS"
michael@273 9 + LIBS="$add_thread_lib `echo x$glib_save_LIBS | sed -e 's;^x;;' -e 's;-lrt;;'`"
michael@273 10
michael@273 11 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_get_priority_min$IN" >&5
michael@273 12 $as_echo_n "checking for sched_get_priority_min$IN... " >&6; }
michael@273 13 Index: glib-2.0.pc.in
michael@273 14 --- glib-2.0.pc.in.orig 2009-04-01 01:04:20.000000000 +0200
michael@273 15 +++ glib-2.0.pc.in 2010-03-17 20:07:17.000000000 +0100
michael@273 16 @@ -9,6 +9,7 @@
michael@273 17
michael@273 18 Name: GLib
michael@273 19 Description: C Utility Library
michael@273 20 +Requires: libpcre
michael@273 21 Version: @VERSION@
michael@273 22 Libs: -L${libdir} -lglib-2.0 @INTLLIBS@
michael@273 23 Libs.private: @ICONV_LIBS@
michael@273 24 Index: gmodule/gmodule-dl.c
michael@273 25 --- gmodule/gmodule-dl.c.orig 2009-04-01 01:04:20.000000000 +0200
michael@273 26 +++ gmodule/gmodule-dl.c 2010-03-17 20:07:17.000000000 +0100
michael@273 27 @@ -107,6 +107,7 @@
michael@273 28 static gpointer
michael@273 29 _g_module_self (void)
michael@273 30 {
michael@273 31 +#ifndef __FreeBSD__
michael@273 32 gpointer handle;
michael@273 33
michael@273 34 /* to query symbols from the program itself, special link options
michael@273 35 @@ -118,6 +119,9 @@
michael@273 36 g_module_set_error (fetch_dlerror (TRUE));
michael@273 37
michael@273 38 return handle;
michael@273 39 +#else
michael@273 40 + return RTLD_DEFAULT;
michael@273 41 +#endif
michael@273 42 }
michael@273 43
michael@273 44 static void
michael@273 45 Index: tests/errorcheck-mutex-test.c
michael@273 46 --- tests/errorcheck-mutex-test.c.orig 2009-04-01 01:04:20.000000000 +0200
michael@273 47 +++ tests/errorcheck-mutex-test.c 2010-03-17 20:07:17.000000000 +0100
michael@273 48 @@ -1,3 +1,5 @@
michael@273 49 +#ifdef G_THREADS_ENABLED
michael@273 50 +
michael@273 51 #undef G_DISABLE_ASSERT
michael@273 52 #undef G_LOG_DOMAIN
michael@273 53 #define G_ERRORCHECK_MUTEXES
michael@273 54 @@ -102,9 +104,12 @@
michael@273 55 timed_wait_on_otherwise_locked_mutex}
michael@273 56 };
michael@273 57
michael@273 58 +#endif
michael@273 59 +
michael@273 60 int
michael@273 61 main (int argc, char* argv[])
michael@273 62 {
michael@273 63 +#ifdef G_THREADS_ENABLED
michael@273 64 int i;
michael@273 65
michael@273 66 if (argc == 2)
michael@273 67 @@ -126,6 +131,7 @@
michael@273 68 {
michael@273 69 fprintf (stderr, " %s\n", func_table[i].name);
michael@273 70 }
michael@273 71 +#endif
michael@273 72
michael@273 73 return 0;
michael@273 74 }

mercurial