summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/glibc/glibc/eglibc-install-pic-archives.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core/glibc/glibc/eglibc-install-pic-archives.patch')
-rw-r--r--meta/recipes-core/glibc/glibc/eglibc-install-pic-archives.patch109
1 files changed, 109 insertions, 0 deletions
diff --git a/meta/recipes-core/glibc/glibc/eglibc-install-pic-archives.patch b/meta/recipes-core/glibc/glibc/eglibc-install-pic-archives.patch
new file mode 100644
index 0000000000..9a31255b09
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/eglibc-install-pic-archives.patch
@@ -0,0 +1,109 @@
12008-02-07 Joseph Myers <joseph@codesourcery.com>
2
3 * Makerules (install-extras, install-map): New variables.
4 (installed-libcs): Add libc_pic.a.
5 (install-lib): Include _pic.a files for versioned shared
6 libraries.
7 (install-map-nosubdir, install-extras-nosubdir): Add rules for
8 installing extra files.
9 (install-no-libc.a-nosubdir): Depend on install-map-nosubdir and
10 install-extras-nosubdir.
11
12
132008-04-01 Maxim Kuvyrkov <maxim@codesourcery.com>
14
15 * Makerules (install-lib): Don't install libpthread_pic.a.
16 (install-map): Don't install libpthread_pic.map.
17
18Upstream-Status: Pending
19
20Index: git/Makerules
21===================================================================
22--- git.orig/Makerules 2014-08-27 18:49:22.552070587 +0000
23+++ git/Makerules 2014-08-27 18:49:27.308070587 +0000
24@@ -612,6 +631,9 @@
25 $(common-objpfx)libc.so: $(common-objpfx)libc.map
26 endif
27 common-generated += libc.so libc_pic.os
28+ifndef subdir
29+install-extras := soinit.o sofini.o
30+endif
31 ifdef libc.so-version
32 $(common-objpfx)libc.so$(libc.so-version): $(common-objpfx)libc.so
33 $(make-link)
34@@ -834,6 +856,7 @@
35 installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\
36 $(inst_libdir)/$(patsubst %,$(libtype$o),\
37 $(libprefix)$(libc-name)))
38+installed-libcs := $(installed-libcs) $(inst_libdir)/libc_pic.a
39 install: $(installed-libcs)
40 $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force)
41 $(make-target-directory)
42@@ -862,6 +885,22 @@
43 install-lib.so-versioned := $(filter $(versioned), $(install-lib.so))
44 install-lib.so-unversioned := $(filter-out $(versioned), $(install-lib.so))
45
46+# Install the _pic.a files for versioned libraries, and corresponding
47+# .map files.
48+# libpthread_pic.a breaks mklibs, so don't install it and its map.
49+install-lib := $(install-lib) $(install-lib.so-versioned:%.so=%_pic.a)
50+install-lib := $(filter-out libpthread_pic.a,$(install-lib))
51+# Despite having a soname libhurduser and libmachuser do not use symbol
52+# versioning, so don't install the corresponding .map files.
53+ifeq ($(build-shared),yes)
54+install-map := $(patsubst %.so,%.map,\
55+ $(foreach L,$(install-lib.so-versioned),$(notdir $L)))
56+install-map := $(filter-out libhurduser.map libmachuser.map libpthread.map,$(install-map))
57+ifndef subdir
58+install-map := $(install-map) libc.map
59+endif
60+endif
61+
62 # For versioned libraries, we install three files:
63 # $(inst_libdir)/libfoo.so -- for linking, symlink or ld script
64 # $(inst_slibdir)/libfoo.so.NN -- for loading by SONAME, symlink
65@@ -1103,9 +1142,22 @@
66 endif # headers-nonh
67 endif # headers
68
69+ifdef install-map
70+$(addprefix $(inst_libdir)/,$(patsubst lib%.map,lib%_pic.map,$(install-map))): \
71+ $(inst_libdir)/lib%_pic.map: $(common-objpfx)lib%.map $(+force)
72+ $(do-install)
73+endif
74+
75+ifdef install-extras
76+$(addprefix $(inst_libdir)/libc_pic/,$(install-extras)): \
77+ $(inst_libdir)/libc_pic/%.o: $(elfobjdir)/%.os $(+force)
78+ $(do-install)
79+endif
80+
81 .PHONY: install-bin-nosubdir install-bin-script-nosubdir \
82 install-rootsbin-nosubdir install-sbin-nosubdir install-lib-nosubdir \
83- install-data-nosubdir install-headers-nosubdir
84+ install-data-nosubdir install-headers-nosubdir install-map-nosubdir \
85+ install-extras-nosubdir
86 install-bin-nosubdir: $(addprefix $(inst_bindir)/,$(install-bin))
87 install-bin-script-nosubdir: $(addprefix $(inst_bindir)/,$(install-bin-script))
88 install-rootsbin-nosubdir: \
89@@ -1118,6 +1170,10 @@
90 install-headers-nosubdir: $(addprefix $(inst_includedir)/,$(headers))
91 install-others-nosubdir: $(install-others)
92 install-others-programs-nosubdir: $(install-others-programs)
93+install-map-nosubdir: $(addprefix $(inst_libdir)/,\
94+ $(patsubst lib%.map,lib%_pic.map,$(install-map)))
95+install-extras-nosubdir: $(addprefix $(inst_libdir)/libc_pic/,\
96+ $(install-extras))
97
98 # We need all the `-nosubdir' targets so that `install' in the parent
99 # doesn't depend on several things which each iterate over the subdirs.
100@@ -1127,7 +1183,8 @@
101
102 .PHONY: install install-no-libc.a-nosubdir
103 install-no-libc.a-nosubdir: install-headers-nosubdir install-data-nosubdir \
104- install-lib-nosubdir install-others-nosubdir
105+ install-lib-nosubdir install-others-nosubdir \
106+ install-map-nosubdir install-extras-nosubdir
107 ifeq ($(build-programs),yes)
108 install-no-libc.a-nosubdir: install-bin-nosubdir install-bin-script-nosubdir \
109 install-rootsbin-nosubdir install-sbin-nosubdir \