1 |
Hi François,
|
2 |
|
3 |
Thank you for this detailed report of ppc64 Prefix. The profile of
|
4 |
ppc64 is not there because we know we donot have support for it. Your
|
5 |
diagnosis is crucial for us to get ready for it. However, I dont have
|
6 |
access to ppc64, therefore I will only comment on general issues.
|
7 |
|
8 |
Are you interested in joining our Gentoo Prefix team to support ppc64?
|
9 |
Your past contributions to Gentoo Science and Prefix are well recognized
|
10 |
and received. If you would like step up I will be happy to support you
|
11 |
through the process.
|
12 |
|
13 |
> 1) baselayout-prefix still doesn't have a suitable ppc64 keyword. This |
14 |
> hits fairly early on in stage 2 I think. Vague memories from my |
15 |
> previous experience suggested that it wasn't necessary. So I snipped |
16 |
> it from the list in bootstrap-rap.sh. Which seemed to be fine until |
17 |
> much later, after solving other issues it came back to bite in stage 3 |
18 |
> (after I fixed point 3). stage 3 tried to emerge baselayout and it |
19 |
> failed. Both variant of baselayout prepare the system for multilib. If |
20 |
> installed early enough it will move files around and link {,usr/}lib |
21 |
> to {,usr/}lib64 and so on. But it will fail miserably if there is |
22 |
> stuff it doesn't know about in {,usr/}lib. Which, at the stage 3 |
23 |
> level, is pretty much the case. I manually fixed things and baselayout |
24 |
> merged successfully. Should rap use baselayout directly in stage 2? |
25 |
> That would solve the keyword problem and match what happens in stage |
26 |
> 3. |
27 |
|
28 |
baselayout-prefix is for prefix-rpath. For prefix-standalone aka. RAP,
|
29 |
baselayout is used.
|
30 |
|
31 |
Our profiles are no-multilib, which in Gentoo means lib is a symlink to
|
32 |
lib64. stage 3 baselayout fails if lib already exists and the creation
|
33 |
of symlink fails. This happens if some package, like gentoo-functions,
|
34 |
installs into EPREFIX/lib.
|
35 |
|
36 |
The solution is install baselayout in stage3 as early as possible,
|
37 |
before gentoo-functions.
|
38 |
|
39 |
https://gitweb.gentoo.org/repo/proj/prefix.git/tree/scripts/bootstrap-prefix.sh#n1614
|
40 |
|
41 |
|
42 |
> 2) gcc 6.4.0 and 5.4.0 failed to bootstrap. Two issues: |
43 |
> a) I needed to export LIBRARY_PATH=${EPREFIX}/usr/lib64 |
44 |
> (I wonder if it was related to baselayout but I haven't checked) |
45 |
|
46 |
This does not look good. The logic should have been covered by
|
47 |
|
48 |
export LDFLAGS="-L${ROOT}/usr/$(get_libdir)"
|
49 |
|
50 |
in stage3,
|
51 |
|
52 |
https://gitweb.gentoo.org/repo/proj/prefix.git/tree/scripts/bootstrap-prefix.sh#n1568
|
53 |
|
54 |
> b) the formula to insert the prefix to the location ld64.so was |
55 |
> defeated again by new peculiarity in the gcc/config/rs6000/linux64.h |
56 |
> code. I ended up adding the following formula in my own |
57 |
> ${EPREFIX}/etc/portage/profile/profile.bashrc |
58 |
|
59 |
> if [[ ${CATEGORY}/${PN} == sys-devel/gcc && ${EBUILD_PHASE} == |
60 |
> configure ]]; then |
61 |
> cd "${S}" |
62 |
> sed -i |
63 |
> "s:%(dynamic_linker_prefix)/lib64/ld64:${EPREFIX}/lib64/ld64:g" \ |
64 |
> gcc/config/rs6000/linux64.h |
65 |
|
66 |
> fi |
67 |
|
68 |
Yes, this should be fixed. We'd better reuse the DYNAMIC_LINKER_PREFIX
|
69 |
logic inside rs6000. It was introduced for IBM advanced toolchain.
|
70 |
|
71 |
> 3) glibc issues. This is detailed in |
72 |
> https://archives.gentoo.org/gentoo-alt/message/1efbc07a12332306715cfaebf38c8897 |
73 |
|
74 |
I am not sure. Probably glibc has a different set of kernel version
|
75 |
requirements on ppc64.
|
76 |
|
77 |
> The additional issue is that I need also this on ppc: |
78 |
> https://patchwork.ozlabs.org/patch/686205/ |
79 |
|
80 |
> 4) acl/attr not really a prefix issue but I guess it is most likely |
81 |
> to show up in that kind of environment. I am sure I complained about |
82 |
> other packages doing the same thing before. Those two are a pair because |
83 |
> they share the build system. Both identify the primary group with |
84 |
> id -g -n |
85 |
> which gives you the name of the group instead of the numeric ID. |
86 |
> Problem is my group on that system, which is loosely linked to AD is |
87 |
> domain users |
88 |
> This value is passed to the install command which in turn passes it to |
89 |
> the "cp" command which doesn't know what to do with "users". |
90 |
> The cure is to use the numeric group ID, either by patching configure |
91 |
> (not true autoconf as far as I can tell) to use "id -g" or setting a |
92 |
> variable (INSTALL_GROUP I think it was) to that value. |
93 |
|
94 |
Sorry I don't fully understand why cp fails if supplied with a group
|
95 |
name.
|
96 |
|
97 |
Yours,
|
98 |
Benda |