public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Installing with GCC 3.0.x
@ 2002-03-27  1:14 Preston A. Elder
  2002-03-27 14:11 ` Spider
  2002-03-27 16:26 ` Dan Armak
  0 siblings, 2 replies; 3+ messages in thread
From: Preston A. Elder @ 2002-03-27  1:14 UTC (permalink / raw
  To: gentoo-user; +Cc: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 10392 bytes --]

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=`ifconfig $DEVICE | grep HWaddr | sed "s/.*HWaddr //"`
	if [ -z "$NEW_SCHEME" ]; then
	    ADDRESS="$SCHEME,$SOCKET,$INSTANCE,$HWADDR"
	else
	    ADDRESS="$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!=' 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="\"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 :)

-- 
PreZ
Systems Administrator
GOTH.NET

Goth Code '98:   tSKeba5qaSabsaaaGbaa75KAASWGuajmsvbieqcL4BaaLb3F4
                 nId5mefqmDjmmgm#haxthgzpj4GiysNkycSRGHabiabOkauNSW

GOTH.NET - http://www.goth.net
Free online resource for the gothic community.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-03-27 17:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-03-27  1:14 [gentoo-dev] Installing with GCC 3.0.x Preston A. Elder
2002-03-27 14:11 ` Spider
2002-03-27 16:26 ` Dan Armak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox