Define GEN_AS_CONST_HEADERS when generating header files [BZ #22792]
commitf5d1f629c693bc30ccc8ff1246cb37986c1adb1c
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 23 Feb 2018 19:29:27 +0000 (23 11:29 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 23 Feb 2018 19:29:39 +0000 (23 11:29 -0800)
tree7ab5aa175267326f4e8aeeb600034a52e3aaafbb
parent54412d20618b7b93f136a168e788573575f8a7a6
Define GEN_AS_CONST_HEADERS when generating header files [BZ #22792]

Glibc build generates header files to define constants from special .sym
files.  If a .sym file includes the same header file which it generates,
it leads to circular dependency which may lead to build hang on a
many-core machine.  Define GEN_AS_CONST_HEADERS when generating header
files to avoid circular dependency.

<tcb-offsets.h> is needed for i686 and it isn't needed for x86-64 at
least since glibc 2.23.

Tested on i686 and x86-64.

[BZ #22792]
* Makerules ($(common-objpfx)%.h): Pass -DGEN_AS_CONST_HEADERS
to $(CC).
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Include
<tcb-offsets.h> only if GEN_AS_CONST_HEADERS isn't defined.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't include
<tcb-offsets.h>.
ChangeLog
Makerules
sysdeps/unix/sysv/linux/i386/lowlevellock.h
sysdeps/unix/sysv/linux/x86_64/lowlevellock.h