1 |
Bootstrap gives you baselayout, binutils, gcc, glibc and gettext |
2 |
compiled with gcc3. Everything (including these utilities you talk |
3 |
about) else is compiled again when you do 'emerge system'. The only |
4 |
thing I did afterwards is 'ebuild |
5 |
/var/db/pkg/sys-devel/gcc-2.95.3-r5/gcc-2.95.3-r5.ebuild unmerge' to |
6 |
ensure that it's not present at all on the system anymore. |
7 |
The system I have running has no libraries of gcc 2.95.3 installed and |
8 |
everything is running fine and has been compiled with gcc3. Remember |
9 |
that is what stage1 -> stage2 -> stage3 really is for. |
10 |
Sure a stage1 that has been prepared with gcc3 would be cleaner and it's |
11 |
not that difficult to do. However as long as gcc3 isn't the default |
12 |
gentoo compiler, I don't see much use for it. |
13 |
|
14 |
On Sun, 2002-04-07 at 12:40, Preston A. Elder wrote: |
15 |
> I'm sure it does ... |
16 |
> |
17 |
> But unless I'm missing something here, changing the profile does NOTHING |
18 |
> to change the utilities (read: tar, bzip2, cp, mv, ls, etc) that are |
19 |
> installed WITH the system. |
20 |
> |
21 |
> Read my email again carefully. I manually made my own |
22 |
> 'default-1.0-gcc3' profile by changing the packages file to use gcc3 |
23 |
> instead of 2.95 and then bootstrapped with it -- and it worked fine |
24 |
> right up until it installed glibc. |
25 |
> |
26 |
> Just incase your not a coder. GLIBC supplies both C and C++ libraries |
27 |
> and symbols for other programs to use. All C++ symbols are 'mangled', |
28 |
> which is a method the compiler uses to differentiate different functions |
29 |
> with the same name but different types (read up on C++ function |
30 |
> overloading and name mangling). |
31 |
> |
32 |
> 3.0 changed the mangling scheme used to mangle C++ names from what was |
33 |
> used with 2.x -- which means, quite simply, if you have an application |
34 |
> thats been compiled against libraries built with gcc 2.x, and then you |
35 |
> compile the libraries with 3.x, the application will cease to work, |
36 |
> because it will not be able to find the symbols it needs to run. |
37 |
> Usually, this will result in a core dump. This only affects programs |
38 |
> written in C++. |
39 |
> |
40 |
> This is exactly what happens with utilities such as tar, which is |
41 |
> written in C++ (which surprised me). Which is why, your |
42 |
> default-1.0-gcc3 profile will *NOT* enable someone to bootstrap with gcc |
43 |
> 3.0, unless you happen to have a stage1 ISO that has statically linked |
44 |
> binaries in it (theoretically, if you have statically linked binaries on |
45 |
> the whole system, you dont even NEED a /lib or /usr/lib directory, |
46 |
> because its all statically linked). |
47 |
> |
48 |
> This was the point I was trying to make. Dont get me wrong, I'm glad |
49 |
> the gcc3 profile is there, and I'm using it, because I use gcc3 |
50 |
> exclusively -- however gcc3 (for now), is only available as a |
51 |
> POST-bootstrap (ie. stage2) compilation, until we get a 1.0 ISO with |
52 |
> statically linked binaries -- or binaries that are still dynamically |
53 |
> linked, but all compiled with gcc3.0 against a glibc compiled with |
54 |
> gcc3.0. Which brings in the chicken and the egg problem. |
55 |
> |
56 |
> This is also why you will have to lock people into a specific glibc |
57 |
> version in your gcc3 profile (which I've noticed you dont do right |
58 |
> now). Say someone bootstraps as normal, then installs gcc3, then |
59 |
> switches to your gcc3 profile, and continues to build the system. If, |
60 |
> at some later point, a new revision or version of glibc comes out, and |
61 |
> is put into the portage tree, and the user then does a world upgrade, |
62 |
> they will attempt to re-compile glibc. It will compile, but as soon as |
63 |
> it installs, a good proportion of the rest of their system will stop |
64 |
> working for exactly the reason I described. I've manually locked my |
65 |
> glibc version because of this fact, because I know I cant re-compile it |
66 |
> with gcc3 without breaking my system. |
67 |
> |
68 |
> If I get time, I'll sit down and think about how to actually create a |
69 |
> stage1 (the thing you tar -xvbjf onto your hard disk) system that is |
70 |
> totally gcc3 based, or see if I can create a stage1 with all statically |
71 |
> linked binaries in it. For now, thats not high on my priority list. |
72 |
> |
73 |
> On Sun, 2002-04-07 at 06:14, Geert Bevin wrote: |
74 |
> > Changing the profile in /etc/make.profile to default-1.0-gcc3 should |
75 |
> > make you bootstrap against gcc3 instead. |
76 |
> > |
77 |
> > On Sun, 2002-04-07 at 05:29, Preston A. Elder wrote: |
78 |
> > > Personally, I'd be very interested to know how you did this 'from |
79 |
> > > scratch'. |
80 |
> > > |
81 |
> > > I myself have done this from the post-bootstrap (but pre emerge system) |
82 |
> > > stage on, but I cant bootstrap with 3.0.x, why? |
83 |
> > > |
84 |
> > > Well, the image the ISO installs has many applications on it, not linked |
85 |
> > > statically (eg. tar, etc) -- compiling gcc3.0.4 works fine, but as soon |
86 |
> > > as it then compiles glibc 2.2.5 and installs it, nothing else works. |
87 |
> > > |
88 |
> > > The utilities on the install image look for glibc 2.2.5 compiled with |
89 |
> > > gcc 2.95.x. So until there is an install image that has statically |
90 |
> > > linked binaries on it, I dont see how a bootstrap can be achieved using |
91 |
> > > 3.0.x compilers. |
92 |
> > > |
93 |
> > > I too, however, have installed a 3.0.x based system. I did the |
94 |
> > > bootstrap on 2.95.3, then first thing after bootstrap, I merged gcc |
95 |
> > > 3.0.4, and then did my emerge system. As Geert said, a few problems |
96 |
> > > along the way, but not many. I too made patches for all the problems I |
97 |
> > > found, I submitted them to Geert. The patches I made are ALL backward |
98 |
> > > compatable to 2.95.3 (I believe, I've not tested this). But then, I |
99 |
> > > could also have compiled a different package set than he did. |
100 |
> > > |
101 |
> > > |
102 |
> > > On Sat, 2002-04-06 at 07:01, Geert Bevin wrote: |
103 |
> > > > Hi all, |
104 |
> > > > |
105 |
> > > > I finally installed 1.0 from scratch and decided to try it out with gcc |
106 |
> > > > 3.0.4 instead of 2.95.3. Along the way I encountered some problems, but |
107 |
> > > > surprisingly little. I've fixed everything that needed fixing and sadly |
108 |
> > > > some packages are backwards incompatible. For that reason and for the |
109 |
> > > > ease of maintenance I've created a dedicated gcc 3 profile. |
110 |
> > > > |
111 |
> > > > So, for those that want to try this out, just link the default-1.0-gcc3 |
112 |
> > > > profile instead of default-1.0 to /etc/make.profile. Note that this will |
113 |
> > > > only work for installations from scratch and not for updates since |
114 |
> > > > applications that link against libstdc++ v2 require the libraries of gcc |
115 |
> > > > v2 and not gcc v3. |
116 |
> > > > |
117 |
> > > > There are still some packages that don't compile such as galeon and |
118 |
> > > > openjade, but these will be fixed in a matter of time since I need them |
119 |
> > > > ;-) Feel free to submit fixes too. |
120 |
> > > > |
121 |
> > > > Best regards, |
122 |
> > > > |
123 |
> > > > Geert Bevin |
124 |
> > > > -- |
125 |
> > > > Geert Bevin Uwyn |
126 |
> > > > "Use what you need" Lambermontlaan 148 |
127 |
> > > > http://www.uwyn.com 1030 Brussels |
128 |
> > > > gbevin@××××.com Tel & Fax +32 2 245 41 06 |
129 |
> > > > |
130 |
> > > > _______________________________________________ |
131 |
> > > > gentoo-dev mailing list |
132 |
> > > > gentoo-dev@g.o |
133 |
> > > > http://lists.gentoo.org/mailman/listinfo/gentoo-dev |
134 |
> > > |
135 |
> > > Thanks, |
136 |
> > > |
137 |
> > > -- |
138 |
> > > PreZ |
139 |
> > > Systems Administrator |
140 |
> > > GOTH.NET |
141 |
> > > |
142 |
> > > Goth Code '98: tSKeba5qaSabsaaaGbaa75KAASWGuajmsvbieqcL4BaaLb3F4 |
143 |
> > > nId5mefqmDjmmgm#haxthgzpj4GiysNkycSRGHabiabOkauNSW |
144 |
> > > |
145 |
> > > GOTH.NET - http://www.goth.net |
146 |
> > > Free online resource for the gothic community. |
147 |
> > -- |
148 |
> > Geert Bevin Uwyn |
149 |
> > "Use what you need" Lambermontlaan 148 |
150 |
> > http://www.uwyn.com 1030 Brussels |
151 |
> > gbevin@××××.com Tel & Fax +32 2 245 41 06 |
152 |
> > |
153 |
> > _______________________________________________ |
154 |
> > gentoo-dev mailing list |
155 |
> > gentoo-dev@g.o |
156 |
> > http://lists.gentoo.org/mailman/listinfo/gentoo-dev |
157 |
> -- |
158 |
> PreZ |
159 |
> Systems Administrator |
160 |
> GOTH.NET |
161 |
> |
162 |
> Goth Code '98: tSKeba5qaSabsaaaGbaa75KAASWGuajmsvbieqcL4BaaLb3F4 |
163 |
> nId5mefqmDjmmgm#haxthgzpj4GiysNkycSRGHabiabOkauNSW |
164 |
> |
165 |
> GOTH.NET - http://www.goth.net |
166 |
> Free online resource for the gothic community. |
167 |
-- |
168 |
Geert Bevin Uwyn |
169 |
"Use what you need" Lambermontlaan 148 |
170 |
http://www.uwyn.com 1030 Brussels |
171 |
gbevin@××××.com Tel & Fax +32 2 245 41 06 |