This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 00/19] Fix -Wundef warning in SHLIB_COMPAT


Hi,

Here's take 2.

This patchset replaces the various IS_IN_*, NOT_IN_* and IN_LIB macro
schemes with a single unified IS_IN() macro scheme.  All patches have
been tested on x86_64, and all but [05/19] result in no code change.

[05/19] fixes a subtle bug introduced when adding systemtap probes to
lowlevellock.  The latter resulted in inclusion of stap-probe.h in a
lot of places, including those where IN_LIB is used to test if the
header is included in a translation unit compiled as a versioned
library.  The problem is that stap-probe.h defines IN_LIB if it is not
defined, to trap some error conditions and that breaks the check for
headers such as errno.h.

Following Rolands suggestions, the module a translation unit is being
built into is set using the libof-* variable and if it is not set,
it's assumed to be in in libc.  Accordingly, an IN_MODULE macro is
defined exactly once in the build options.

The values for IN_MODULE have initially been hardcoded in
include/libc-modules.h and in a subsequent patch, that file has been
removed and auto-generated from soversions.i (which in turn is
generated from various shlib-versions files) and a new file called
build.list which merely has a module name per line.

[18/19] is optional in that it is just a cleanup to make the
conditions easier to read.  It does not change the generated code
again, so it ought to be safe.

Finally, I did some ad hoc cross-builds for powerpc64 (power6), s390x,
aarch64 and arm and the binaries did not seem to have any significant
changes in any of the architectures except in s390x, where libc.so
seems to have changed very slightly.  I am going to run some more
exhaustive build tests over the rest of the week and I'll post results
(and maybe additional patches if necessary) on this thread when I am
done.

Siddhesh

PS: Thanks Roland for packaging cross-kernel-headers for Fedora; it
has made my job of setting up cross builds much easier :)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]