From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <prez@goth.net> X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-14) on finch.gentoo.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=DMARC_REJECT, MAILING_LIST_MULTI autolearn=no autolearn_force=no version=4.0.0 Received: from haven.srealm.net.au (franco.netops.com [207.17.13.6]) by chiba.3jane.net (Postfix) with ESMTP id 4716E20EC991; Tue, 26 Mar 2002 19:18:37 -0600 (CST) Received: by haven.srealm.net.au (Postfix, from userid 100) id 833C61F64F; Tue, 26 Mar 2002 20:14:20 -0500 (EST) From: "Preston A. Elder" <prez@goth.net> To: gentoo-user@gentoo.org Cc: gentoo-dev@gentoo.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Ckf6C6qgEAMP/IyHJZNa" X-Mailer: Evolution/1.0.2- Date: 26 Mar 2002 20:14:20 -0500 Message-Id: <1017191660.26792.50.camel@haven> Mime-Version: 1.0 Subject: [gentoo-dev] Installing with GCC 3.0.x Sender: gentoo-dev-admin@gentoo.org Errors-To: gentoo-dev-admin@gentoo.org X-BeenThere: gentoo-dev@gentoo.org X-Mailman-Version: 2.0.6 Precedence: bulk Reply-To: gentoo-dev@gentoo.org List-Help: <mailto:gentoo-dev-request@gentoo.org?subject=help> List-Post: <mailto:gentoo-dev@gentoo.org> List-Subscribe: <http://lists.gentoo.org/mailman/listinfo/gentoo-dev>, <mailto:gentoo-dev-request@gentoo.org?subject=subscribe> List-Id: Gentoo Linux developer list <gentoo-dev.gentoo.org> List-Unsubscribe: <http://lists.gentoo.org/mailman/listinfo/gentoo-dev>, <mailto:gentoo-dev-request@gentoo.org?subject=unsubscribe> List-Archive: <http://lists.gentoo.org/pipermail/gentoo-dev/> X-Archives-Salt: 7308906f-0f79-4bcb-912e-8c48763c6447 X-Archives-Hash: 16ad6ff08080ff9c9b2d7bdad2537139 --=-Ckf6C6qgEAMP/IyHJZNa Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Before I start this, I'll introduce myself. I'm a professional programmer, working in C, C++, Java, Perl, TCL and shell. I'm qualified to be a professional systems administrator (tho I do not work in that field right now, just dabble with my 9 systems at home). I write Magick IRC Services (http://www.magick.tm), and run GOTH.NET (http://www.goth.net). I also have a few other side-projects. I've been using GCC 3.0.x since they first came out, and had fairly good luck with it, however this is the first time I've tried to build most of my system with it. The way I went about this was to boostrap gentoo as usual, and then emerge system as usual, however, after I did the emerge system, the first thing I did was install gcc 3.0.4, so anything on top of the default system (including any upgrades that may have come out since install) are built with 3.0.4. My 2 attempts to base the entire system (including all the stuff done in the initial bootstrap and the system build after this) off glibc 2.2.5, and gcc 3.0.4 failed miserably, I gave up on that. So I've stuck to the base of 2.2.4, and building anything AFTER the initial system install with gcc 3.0.4. If you plan to try to do the same thing as I have, I recommend you DO NOT use the -funroll-loops optimization. This will break MANY things, and is extremely hard to debug if you have to attempt. I ran into problems with this optimization with gnome-libs, mozilla, evolution, and openssl. More than likely, it has more problems than that. I've listed below a list of packages I had problems with during the compile or installation phase compiling them with gcc 3.0.4, for your reference if you want to attempt this. These should probably be turned into bugs by one of the developers (I'm registered in the bug database, but I think someone would take exception to me raising so many bugs, and I dont know much history on the whole system, so I dont know the policy on bugs, or whats already raised, etc). Most of this document speaks in programmer terms. XFree86 4.2.0 (r8) - lib/GLU in one of the .cc's, creates a profile for a static void swap(char *[], int, int) - then when its used, it puts another profile in the function its used in, and then the actual function definition is not static. It all ends up looking something like this: static void swap(char *[], int, int); ... void somefunc() { void swap(char *[], int, int); } ... void swap(char *[], int, int) { } The profile should be removed from the function, and the actual definition of the function should beccome static. - programs/XServer doesnt link, because the -lXau is too early in the linking process, it needs to be moved to later on (this is a makefile change). pilot-link 0.9.6 (r3) - A bunch of .hxx files that just have friend <class> instead of friend class <class>, which GCC 3.0.x complains about. groff 1.17.2 (r1) - When using the original groff (compiled in the system build), it will complain about the library libstdc++-6.2-2.so.3 missing after gcc 3.0.x is installed. When groff is recompiled with gcc 3.0.4, troff coredumps - however groff still works (evident with 'man'). pcmcia-cs 3.1.33 (r2) - Wireless support totally broken. The /etc/pcmcia/wireless script is never invoked, and even if you invoke it, the network script never sources /etc/pcmcia/shared. To fix this problem, I've added to the top of the /etc/pcmcia/network script: . /etc/pcmcia/shared $* get_info $DEVICE HWADDR=3D`ifconfig $DEVICE | grep HWaddr | sed "s/.*HWaddr //"` if [ -z "$NEW_SCHEME" ]; then ADDRESS=3D"$SCHEME,$SOCKET,$INSTANCE,$HWADDR" else ADDRESS=3D"$NEW_SCHEME,$SOCKET,$INSTANCE,$HWADDR" fi if [ -f /proc/net/wireless ]; then if [ -n "`awk '{print $1}' /proc/net/wireless |\ cut -f1 -d: | grep "^$DEVICE$"`" ]; then . /etc/pcmcia/wireless $* fi fi perl 5.6.1 (r3) - Perl is not compiled with POSIX threads support, which retards packages such as PDL and expat, both of which tell you that perl lacks POSIX threads support. openjade 1.3 (r2) - ugly (non-3.0.4 ready) syntax on line 217 of CmdLineApp.cxx - spgrove/GroveBuilder.cxx also is not 3.0.4 ready, PiChunk should inherit CharsChunk as protected, not private. - style/LangObj.cxx line 27 redefines strdup? not needed. - nsgmls/RastEventHandler.h, class RastEventHandler inherits messenger private, should be protected. util-linux 2.11l - No encryption support. Either cryptoapi or the international kernel patch needs to be installed. And util-linux needs to be patched with the patch from the cryptoapi. Please check out http://cryptoapi.sourceforge.net for where to get both cryptoapi or the linux international kernel patch. I personally installed cryptoapi, and then applied the patch for util-linux contained within that package to util-linux, and then re-compiled util-linux. This is the only way to get real crypto algorithms like blowfish, 3des, etc into losetup (so you can have encrypted loopback filesystems). Please note, that if you go this route, the patch in cryptoapi for util-linux fails in 2 places, neither of these is important. If you wish for me to create an ebuild for cryptoapi, and create a better patch for util-linux (that can be put into the files directory for the util-linux package), please let me know. evolution 1.0.2 (r1) - Need to apply my IMAP patch, see bug 1355 (patch included) lame 3.91 - rtp.h has #ifdef 0, not #if 0 xzgv - No such package, should be added, see bug 1354. screen - doesnt exist (I will create an ebuild file for it in the near future if noone else does). xmms-shn 2.2.4 - flexio.c looks for ulaw_outward, which doesnt exist, I dont know how to resolve this. avi-xmms 1.2.2 (r2) - No dependancy on SDL in the ebuild file, even though the configure script for the package requires it. - The dependancy in the ebuild file is broken (there is no such version 0.52.anything, so it chucks a fit). - Needs updating to new avifile library, since only the 0.60 version is now in the portage tree, this software needs to compile with it. This or the 0.52 avifile ebuild should be re-added. smpeg-xmms 0.3.4 (r1) - The package's configure script needs to use C++ for its tests. - Configure's test programs are generated with the code: #ifdef __cplusplus extern "C" void exit(int); #endif which 3.0.4 rejects because it doesnt match the definition in system headers (which throws exceptions). - Each library the configure script looks for, it creates an internal variable called library_CFLAGS (where library is replaced with the library its looking for). However it does NOT create a library_CXXFLAGS variable, so when it does its compile test to see if the libraries check out (after making the configure script use c++ for its test), it fails. - The code needs to be re-written to support gcc 3.0.4 gtkmm-addons (0.5.3) - Configure's test programs are generated with the code: #ifdef __cplusplus extern "C" void exit(int); #endif which 3.0.4 rejects because it doesnt match the definition in system headers (which throws exceptions). - TCList.h and TCList_ct.h need the following changes: 'using namespace std' needs to be added to the top of the file. 'friend iterator' need to change to 'friend class iterator' The function 'static inline bool operator!=3D' needs to be completely removed. - TCListRow_ct.cc (line 44) need explicit casting of lr.item to Gtk::CTree::Row - Gtk2TeX.h needs 'using namespace std' added to the top. - Most of the test cases also need 'using namespace std'. sslwrap 2.0.5 (r1) - For some reason, they pass -DOPENSSL=3D"\"openssl/\"" to the make command, and then inside the .c files use something like #include OPENSSL"ssl.h" They are trying to rying to convert it to "openssl/""ssl.h", however GCC 3.0.4 doesnt like this construct on an #include line. I searched/replaced OPENSSL" with "openssl/ in all .c files. snort 1.8.3 (r1) - Had to add a header check for sys/types.h to the configure.in file (and then re-autoconf) so it would find u_int(8|16|32)_t typedef's (as it was not finding them). nautilus 1.0.6 (r6) - in components/mozilla/nautilus-mozilla-embed-extensions.cpp, removed the #include <std/bastring.h> and the typedef basic_string<char> string, and just added #include <string> and 'using namespace std'. sun-jdk 1.4.0 (r1) - Requires manual intervention to install (ie. manually downloading the file from sun, running their .bin file, and then moving the resulting .tar into the distfiles directory). - The plugin file gives invalid symbols when mozilla is trying to load it. I also tried the blackdown java (1.3.1) plugin, same problem. Note that the sun jdk has no problems RUNNING. I get the feeling I'm going to have to create an ebuild file for the sun jdk source distribution (1.3.1), so I can get the plugin. jikes 1.15 - Changed entry in enum called NAN to L_NAN (and all usages of it), NAN is a macro in the system headers for 3.0.4. battery_applet - For some reason, this starts and ends, without doing anything (no compile errors for gnome_applets). No idea why, however power applet works ok in its stead. If you have any questions, comments, or need more detail about anything I've mentioned above, please let me know. I hope this is helpful. I'm not finished, theres still a few loose ends to tie up, however I'm getting there. MOST of my system is up and running :) --=20 PreZ Systems Administrator GOTH.NET Goth Code '98: tSKeba5qaSabsaaaGbaa75KAASWGuajmsvbieqcL4BaaLb3F4 nId5mefqmDjmmgm#haxthgzpj4GiysNkycSRGHabiabOkauNSW GOTH.NET - http://www.goth.net Free online resource for the gothic community. --=-Ckf6C6qgEAMP/IyHJZNa Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQA8oRzruULtzKdGMboRAlLiAJ4/9VlzDpkgzaPJLpIZPwyf1+3GXQCgmUCW TuWEcsCJoyAvUH9ZkkumDko= =QK4X -----END PGP SIGNATURE----- --=-Ckf6C6qgEAMP/IyHJZNa--