Gentoo Archives: gentoo-dev

From: "Preston A. Elder" <prez@××××.net>
To: gentoo-user@g.o
Cc: gentoo-dev@g.o
Subject: [gentoo-dev] Installing with GCC 3.0.x
Date: Tue, 26 Mar 2002 19:18:37
Message-Id: 1017191660.26792.50.camel@haven
1 Before I start this, I'll introduce myself.
2
3 I'm a professional programmer, working in C, C++, Java, Perl, TCL and
4 shell. I'm qualified to be a professional systems administrator (tho I
5 do not work in that field right now, just dabble with my 9 systems at
6 home). I write Magick IRC Services (http://www.magick.tm), and run
7 GOTH.NET (http://www.goth.net). I also have a few other side-projects.
8
9 I've been using GCC 3.0.x since they first came out, and had fairly
10 good luck with it, however this is the first time I've tried to build
11 most of my system with it. The way I went about this was to boostrap
12 gentoo as usual, and then emerge system as usual, however, after I did
13 the emerge system, the first thing I did was install gcc 3.0.4, so
14 anything on top of the default system (including any upgrades that may
15 have come out since install) are built with 3.0.4.
16
17 My 2 attempts to base the entire system (including all the stuff done in
18 the initial bootstrap and the system build after this) off glibc 2.2.5,
19 and gcc 3.0.4 failed miserably, I gave up on that. So I've stuck to the
20 base of 2.2.4, and building anything AFTER the initial system install
21 with gcc 3.0.4.
22
23 If you plan to try to do the same thing as I have, I recommend you DO
24 NOT use the -funroll-loops optimization. This will break MANY things,
25 and is extremely hard to debug if you have to attempt. I ran into
26 problems with this optimization with gnome-libs, mozilla, evolution, and
27 openssl. More than likely, it has more problems than that.
28
29 I've listed below a list of packages I had problems with during the
30 compile or installation phase compiling them with gcc 3.0.4, for your
31 reference if you want to attempt this. These should probably be turned
32 into bugs by one of the developers (I'm registered in the bug database,
33 but I think someone would take exception to me raising so many bugs, and
34 I dont know much history on the whole system, so I dont know the policy
35 on bugs, or whats already raised, etc).
36
37 Most of this document speaks in programmer terms.
38
39 XFree86 4.2.0 (r8)
40 - lib/GLU in one of the .cc's, creates a profile for a static
41 void swap(char *[], int, int) - then when its used, it puts
42 another profile in the function its used in, and then the
43 actual function definition is not static. It all ends up
44 looking something like this:
45 static void swap(char *[], int, int);
46 ...
47 void somefunc() {
48 void swap(char *[], int, int);
49 }
50 ...
51 void swap(char *[], int, int) {
52 }
53 The profile should be removed from the function, and the
54 actual definition of the function should beccome static.
55
56 - programs/XServer doesnt link, because the -lXau is too early
57 in the linking process, it needs to be moved to later on (this
58 is a makefile change).
59
60 pilot-link 0.9.6 (r3)
61 - A bunch of .hxx files that just have friend <class> instead of
62 friend class <class>, which GCC 3.0.x complains about.
63
64 groff 1.17.2 (r1)
65 - When using the original groff (compiled in the system build), it
66 will complain about the library libstdc++-6.2-2.so.3 missing after
67 gcc 3.0.x is installed. When groff is recompiled with gcc 3.0.4,
68 troff coredumps - however groff still works (evident with 'man').
69
70 pcmcia-cs 3.1.33 (r2)
71 - Wireless support totally broken. The /etc/pcmcia/wireless script
72 is never invoked, and even if you invoke it, the network script
73 never sources /etc/pcmcia/shared. To fix this problem, I've added
74 to the top of the /etc/pcmcia/network script:
75 . /etc/pcmcia/shared $*
76 get_info $DEVICE
77 HWADDR=`ifconfig $DEVICE | grep HWaddr | sed "s/.*HWaddr //"`
78 if [ -z "$NEW_SCHEME" ]; then
79 ADDRESS="$SCHEME,$SOCKET,$INSTANCE,$HWADDR"
80 else
81 ADDRESS="$NEW_SCHEME,$SOCKET,$INSTANCE,$HWADDR"
82 fi
83
84 if [ -f /proc/net/wireless ]; then
85 if [ -n "`awk '{print $1}' /proc/net/wireless |\
86 cut -f1 -d: | grep "^$DEVICE$"`" ]; then
87 . /etc/pcmcia/wireless $*
88 fi
89 fi
90
91 perl 5.6.1 (r3)
92 - Perl is not compiled with POSIX threads support, which retards
93 packages such as PDL and expat, both of which tell you that perl
94 lacks POSIX threads support.
95
96 openjade 1.3 (r2)
97 - ugly (non-3.0.4 ready) syntax on line 217 of CmdLineApp.cxx
98 - spgrove/GroveBuilder.cxx also is not 3.0.4 ready, PiChunk should
99 inherit CharsChunk as protected, not private.
100 - style/LangObj.cxx line 27 redefines strdup? not needed.
101 - nsgmls/RastEventHandler.h, class RastEventHandler inherits
102 messenger private, should be protected.
103
104 util-linux 2.11l
105 - No encryption support. Either cryptoapi or the international
106 kernel patch needs to be installed. And util-linux needs to
107 be patched with the patch from the cryptoapi. Please check out
108 http://cryptoapi.sourceforge.net for where to get both cryptoapi
109 or the linux international kernel patch.
110 I personally installed cryptoapi, and then applied the patch for
111 util-linux contained within that package to util-linux, and then
112 re-compiled util-linux. This is the only way to get real crypto
113 algorithms like blowfish, 3des, etc into losetup (so you can have
114 encrypted loopback filesystems).
115 Please note, that if you go this route, the patch in cryptoapi
116 for util-linux fails in 2 places, neither of these is important.
117 If you wish for me to create an ebuild for cryptoapi, and create
118 a better patch for util-linux (that can be put into the files
119 directory for the util-linux package), please let me know.
120
121 evolution 1.0.2 (r1)
122 - Need to apply my IMAP patch, see bug 1355 (patch included)
123
124 lame 3.91
125 - rtp.h has #ifdef 0, not #if 0
126
127 xzgv
128 - No such package, should be added, see bug 1354.
129
130 screen
131 - doesnt exist (I will create an ebuild file for it in the near
132 future if noone else does).
133
134 xmms-shn 2.2.4
135 - flexio.c looks for ulaw_outward, which doesnt exist, I dont know
136 how to resolve this.
137
138 avi-xmms 1.2.2 (r2)
139 - No dependancy on SDL in the ebuild file, even though the
140 configure script for the package requires it.
141 - The dependancy in the ebuild file is broken (there is no such
142 version 0.52.anything, so it chucks a fit).
143 - Needs updating to new avifile library, since only the 0.60 version
144 is now in the portage tree, this software needs to compile with
145 it. This or the 0.52 avifile ebuild should be re-added.
146
147 smpeg-xmms 0.3.4 (r1)
148 - The package's configure script needs to use C++ for its tests.
149 - Configure's test programs are generated with the code:
150 #ifdef __cplusplus
151 extern "C" void exit(int);
152 #endif
153 which 3.0.4 rejects because it doesnt match the definition
154 in system headers (which throws exceptions).
155 - Each library the configure script looks for, it creates an
156 internal variable called library_CFLAGS (where library is
157 replaced with the library its looking for). However it does
158 NOT create a library_CXXFLAGS variable, so when it does its
159 compile test to see if the libraries check out (after making
160 the configure script use c++ for its test), it fails.
161 - The code needs to be re-written to support gcc 3.0.4
162
163 gtkmm-addons (0.5.3)
164 - Configure's test programs are generated with the code:
165 #ifdef __cplusplus
166 extern "C" void exit(int);
167 #endif
168 which 3.0.4 rejects because it doesnt match the definition
169 in system headers (which throws exceptions).
170 - TCList.h and TCList_ct.h need the following changes:
171 'using namespace std' needs to be added to the top of the file.
172 'friend iterator' need to change to 'friend class iterator'
173 The function 'static inline bool operator!=' needs to be
174 completely removed.
175 - TCListRow_ct.cc (line 44) need explicit casting of lr.item
176 to Gtk::CTree::Row
177 - Gtk2TeX.h needs 'using namespace std' added to the top.
178 - Most of the test cases also need 'using namespace std'.
179
180 sslwrap 2.0.5 (r1)
181 - For some reason, they pass -DOPENSSL="\"openssl/\"" to the make
182 command, and then inside the .c files use something like
183 #include OPENSSL"ssl.h"
184 They are trying to rying to convert it to "openssl/""ssl.h",
185 however GCC 3.0.4 doesnt like this construct on an #include line.
186 I searched/replaced OPENSSL" with "openssl/ in all .c files.
187
188 snort 1.8.3 (r1)
189 - Had to add a header check for sys/types.h to the configure.in
190 file (and then re-autoconf) so it would find u_int(8|16|32)_t
191 typedef's (as it was not finding them).
192
193 nautilus 1.0.6 (r6)
194 - in components/mozilla/nautilus-mozilla-embed-extensions.cpp,
195 removed the #include <std/bastring.h> and the
196 typedef basic_string<char> string, and just added
197 #include <string> and 'using namespace std'.
198
199 sun-jdk 1.4.0 (r1)
200 - Requires manual intervention to install (ie. manually downloading
201 the file from sun, running their .bin file, and then moving the
202 resulting .tar into the distfiles directory).
203 - The plugin file gives invalid symbols when mozilla is trying to
204 load it. I also tried the blackdown java (1.3.1) plugin, same
205 problem. Note that the sun jdk has no problems RUNNING. I get
206 the feeling I'm going to have to create an ebuild file for the
207 sun jdk source distribution (1.3.1), so I can get the plugin.
208
209 jikes 1.15
210 - Changed entry in enum called NAN to L_NAN (and all usages of it),
211 NAN is a macro in the system headers for 3.0.4.
212
213 battery_applet
214 - For some reason, this starts and ends, without doing anything (no
215 compile errors for gnome_applets). No idea why, however power
216 applet works ok in its stead.
217
218 If you have any questions, comments, or need more detail about anything
219 I've mentioned above, please let me know. I hope this is helpful. I'm
220 not finished, theres still a few loose ends to tie up, however I'm
221 getting there. MOST of my system is up and running :)
222
223 --
224 PreZ
225 Systems Administrator
226 GOTH.NET
227
228 Goth Code '98: tSKeba5qaSabsaaaGbaa75KAASWGuajmsvbieqcL4BaaLb3F4
229 nId5mefqmDjmmgm#haxthgzpj4GiysNkycSRGHabiabOkauNSW
230
231 GOTH.NET - http://www.goth.net
232 Free online resource for the gothic community.

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
Re: [gentoo-dev] Installing with GCC 3.0.x Spider <spider@g.o>
Re: [gentoo-dev] Installing with GCC 3.0.x Dan Armak <danarmak@g.o>