Skip to content

Commit

Permalink
[BZ #715]
Browse files Browse the repository at this point in the history
	* Makefile (installed-stubs): New variable.
	Set to $(inst_includedir)/gnu/stubs.h if $(biarch) is no,
	or to $(inst_includedir)/gnu/stubs-$(biarch).h if otherwise.
	[$(biarch) != no] (install-others-nosubdir): Add $(installed-stubs).
	($(inst_includedir)/gnu/stubs.h): Use $(installed-stubs) for this
	rule's target.
	($(inst_includedir)/gnu/stubs.h): New target, install from ...
	* include/stubs-biarch.h: New file.

	* shlib-versions (i.86-.*-.*): Add WORDSIZE64 line mapping to x86_64.

	* Makeconfig ($(common-objpfx)soversions.mk): Depend on Makeconfig.
	Emit defn for variable `biarch'.

	* include/stub-tag.h: Update comment.
  • Loading branch information
Roland McGrath committed Feb 11, 2005
1 parent 9b38280 commit 3e1e123
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 7 deletions.
17 changes: 17 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
2005-02-11 Roland McGrath <roland@redhat.com>

[BZ #715]
* Makefile (installed-stubs): New variable.
Set to $(inst_includedir)/gnu/stubs.h if $(biarch) is no,
or to $(inst_includedir)/gnu/stubs-$(biarch).h if otherwise.
[$(biarch) != no] (install-others-nosubdir): Add $(installed-stubs).
($(inst_includedir)/gnu/stubs.h): Use $(installed-stubs) for this
rule's target.
($(inst_includedir)/gnu/stubs.h): New target, install from ...
* include/stubs-biarch.h: New file.

* shlib-versions (i.86-.*-.*): Add WORDSIZE64 line mapping to x86_64.

* Makeconfig ($(common-objpfx)soversions.mk): Depend on Makeconfig.
Emit defn for variable `biarch'.

* include/stub-tag.h: Update comment.

* scripts/soversions.awk: Fix default version set handling.

2005-02-10 Roland McGrath <roland@redhat.com>
Expand Down
12 changes: 10 additions & 2 deletions Makeconfig
Original file line number Diff line number Diff line change
Expand Up @@ -792,8 +792,10 @@ $(common-objpfx)soversions.i: $(..)scripts/soversions.awk \
-v os='$(config-os)' \
-f $^ > $@T
mv -f $@T $@
$(common-objpfx)soversions.mk: $(common-objpfx)soversions.i
(while read which lib number setname; do \
$(common-objpfx)soversions.mk: $(common-objpfx)soversions.i $(..)Makeconfig
(seen_DEFAULT=0; seen_WORDSIZE32=0; seen_WORDSIZE64=0; \
while read which lib number setname; do \
eval seen_$$which=1; \
test x"$$which" = xDEFAULT || continue; \
case $$number in \
[0-9]*) echo "$$lib.so-version=.$$number"; \
Expand All @@ -802,6 +804,12 @@ $(common-objpfx)soversions.mk: $(common-objpfx)soversions.i
echo "all-sonames+=$$lib=\$$($$lib.so-version)";;\
esac; \
done; \
case "$$seen_DEFAULT$$seen_WORDSIZE32$$seen_WORDSIZE64" in \
100) echo biarch = no;; \
101) echo biarch = 32;; \
?1?) echo biarch = 64;; \
*) echo >&2 BUG; exit 2;; \
esac; \
echo soversions.mk-done = t;) < $< > $@T; exit 0
mv -f $@T $@
endif
Expand Down
14 changes: 13 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -157,13 +157,25 @@ others: $(common-objpfx)testrun.sh

subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)$(dir)/stubs)

ifeq ($(biarch),no)
installed-stubs = $(inst_includedir)/gnu/stubs.h
else
installed-stubs = $(inst_includedir)/gnu/stubs-$(biarch).h

$(inst_includedir)/gnu/stubs.h: include/stubs-biarch.h $(+force)
$(INSTALL_DATA) $< $@

install-others-nosubdir: $(installed-stubs)
endif


# Since stubs.h is never needed when building the library, we simplify the
# hairy installation process by producing it in place only as the last part
# of the top-level `make install'. It depends on subdir_install, which
# iterates over all the subdirs; subdir_install in each subdir depends on
# the subdir's stubs file. Having more direct dependencies would result in
# extra iterations over the list for subdirs and many recursive makes.
$(inst_includedir)/gnu/stubs.h: include/stubs-prologue.h subdir_install
$(installed-stubs): include/stubs-prologue.h subdir_install
$(make-target-directory)
@rm -f $(objpfx)stubs.h
(sed '/^@/d' $<; LC_ALL=C sort $(subdir-stubs)) > $(objpfx)stubs.h
Expand Down
7 changes: 3 additions & 4 deletions include/stub-tag.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
/* This header is included into every file that declares a stub function.
* The build process looks for this header in .d files to decide whether
* or not it needs to scan the corresponding .c file for entries to add to
* <gnu/stubs.h>.
*/
It is obsolete now, but hasn't died to avoid removing all those
#include's. Every such file should use the `stub_warning' macro for
each of its functions, and that is sufficient. */
12 changes: 12 additions & 0 deletions include/stubs-biarch.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/* This file selects the right generated file of `__stub_FUNCTION' macros
based on the architecture being compiled for. */

#include <bits/wordsize.h>

#if __WORDSIZE == 32
# include <gnu/stubs-32.h>
#elif __WORDSIZE == 64
# include <gnu/stubs-64.h>
#else
# error "unexpected value for __WORDSIZE macro"
#endif
1 change: 1 addition & 0 deletions shlib-versions
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ powerpc64-.*-linux.* DEFAULT GLIBC_2.3
# Configuration WORDSIZE[32|64] Alternate configuration
# ------------- ---------- -----------------------
x86_64-.*-.* WORDSIZE32 i686-@VENDOR@-@OS@
i.86-.*-.* WORDSIZE64 x86_64-@VENDOR@-@OS@
s390x-.*-.* WORDSIZE32 s390-@VENDOR@-@OS@
s390-.*-.* WORDSIZE64 s390x-@VENDOR@-@OS@
powerpc64-.*-.* WORDSIZE32 powerpc-@VENDOR@-@OS@
Expand Down

0 comments on commit 3e1e123

Please sign in to comment.