yann@1136
|
1 |
On 20090111.1151+0100, Thomas Jourdan <tjourdan@neuf.fr> wrote:
|
yann@1136
|
2 |
|
yann@1136
|
3 |
I'm still working on the solaris port an I have the same issue here.
|
yann@1136
|
4 |
While trying to build the i686-nptl-linux-gnu toolchain under
|
yann@1136
|
5 |
OpenSolaris, the problems appears during the make install rule of the
|
yann@1136
|
6 |
libc function.
|
yann@1136
|
7 |
|
yann@1136
|
8 |
The problem is that solaris tries to execute ld-linux.so.2, which is an
|
yann@1136
|
9 |
elf 32 bits dyn lib, and it fails with a memory fault, not a "cannot
|
yann@1136
|
10 |
execute binary file". Hence the build stops on this error.
|
yann@1136
|
11 |
|
yann@1136
|
12 |
And on 20090111.1339+0100, he replied with:
|
yann@1136
|
13 |
|
yann@1136
|
14 |
After digging a little, the problem comes from the
|
yann@1136
|
15 |
glibc-2.6.1/posix/Makefile. It has been solved starting from glibc 2.7
|
yann@1136
|
16 |
so I extracted a patch for glibc 2.6.1.
|
yann@1136
|
17 |
|
yann@1136
|
18 |
--- glibc-2.6.1/posix/Makefile 2007-04-04 01:28:20.000000000 +0200
|
yann@1136
|
19 |
+++ glibc-2.7/posix/Makefile 2007-09-12 01:57:22.000000000 +0200
|
yann@1136
|
20 |
@@ -98,7 +98,7 @@
|
yann@1136
|
21 |
endif
|
yann@1136
|
22 |
others := getconf
|
yann@1136
|
23 |
install-bin := getconf
|
yann@1136
|
24 |
-install-others := $(inst_libexecdir)/getconf
|
yann@1136
|
25 |
+install-others-programs := $(inst_libexecdir)/getconf
|
yann@1136
|
26 |
|
yann@1136
|
27 |
before-compile := testcases.h ptestcases.h
|
yann@1136
|
28 |
|
yann@1136
|
29 |
@@ -110,7 +110,7 @@
|
yann@1136
|
30 |
tst-rxspencer-mem tst-rxspencer.mtrace tst-getconf.out \
|
yann@1136
|
31 |
tst-pcre-mem tst-pcre.mtrace tst-boost-mem tst-boost.mtrace \
|
yann@1136
|
32 |
bug-ga2.mtrace bug-ga2-mem bug-glob2.mtrace bug-glob2-mem \
|
yann@1136
|
33 |
- tst-vfork3-mem tst-vfork3.mtrace
|
yann@1136
|
34 |
+ tst-vfork3-mem tst-vfork3.mtrace getconf.speclist
|
yann@1136
|
35 |
|
yann@1136
|
36 |
include ../Rules
|
yann@1136
|
37 |
|
yann@1136
|
38 |
@@ -291,12 +291,20 @@
|
yann@1136
|
39 |
$(objpfx)bug-glob2-mem: $(objpfx)bug-glob2.out
|
yann@1136
|
40 |
$(common-objpfx)malloc/mtrace $(objpfx)bug-glob2.mtrace > $@
|
yann@1136
|
41 |
|
yann@1136
|
42 |
-$(inst_libexecdir)/getconf: $(objpfx)getconf FORCE
|
yann@1136
|
43 |
+$(inst_libexecdir)/getconf: $(inst_bindir)/getconf \
|
yann@1136
|
44 |
+ $(objpfx)getconf.speclist FORCE
|
yann@1136
|
45 |
$(addprefix $(..)./scripts/mkinstalldirs ,\
|
yann@1136
|
46 |
$(filter-out $(wildcard $@),$@))
|
yann@1136
|
47 |
- for spec in `LC_ALL=C GETCONF_DIR=/dev/null \
|
yann@1136
|
48 |
- $(run-program-prefix) $< \
|
yann@1136
|
49 |
- _POSIX_V6_WIDTH_RESTRICTED_ENVS`; do \
|
yann@1136
|
50 |
- $(INSTALL_PROGRAM) $< $@/$$spec.new; \
|
yann@1136
|
51 |
- mv -f $@/$$spec.new $@/$$spec; \
|
yann@1136
|
52 |
- done
|
yann@1136
|
53 |
+ while read spec; do \
|
yann@1136
|
54 |
+ ln -f $< $@/$$spec.new || $(INSTALL_PROGRAM) $< $@/$$spec.new; \
|
yann@1136
|
55 |
+ mv -f $@/$$spec.new $@/$$spec; \
|
yann@1136
|
56 |
+ done < $(objpfx)getconf.speclist
|
yann@1136
|
57 |
+
|
yann@1136
|
58 |
+$(objpfx)getconf.speclist: $(objpfx)getconf
|
yann@1136
|
59 |
+ifeq (no,$(cross-compiling))
|
yann@1136
|
60 |
+ LC_ALL=C GETCONF_DIR=/dev/null \
|
yann@1136
|
61 |
+ $(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS > $@.new
|
yann@1136
|
62 |
+else
|
yann@1136
|
63 |
+ > $@.new
|
yann@1136
|
64 |
+endif
|
yann@1136
|
65 |
+ mv -f $@.new $@
|