7 Apr 2002 12:40
Re: Gcc 3.0.4 installed system
Preston A. Elder <prez <at> goth.net>
2002-04-07 10:40:19 GMT
2002-04-07 10:40:19 GMT
I'm sure it does ... But unless I'm missing something here, changing the profile does NOTHING to change the utilities (read: tar, bzip2, cp, mv, ls, etc) that are installed WITH the system. Read my email again carefully. I manually made my own 'default-1.0-gcc3' profile by changing the packages file to use gcc3 instead of 2.95 and then bootstrapped with it -- and it worked fine right up until it installed glibc. Just incase your not a coder. GLIBC supplies both C and C++ libraries and symbols for other programs to use. All C++ symbols are 'mangled', which is a method the compiler uses to differentiate different functions with the same name but different types (read up on C++ function overloading and name mangling). 3.0 changed the mangling scheme used to mangle C++ names from what was used with 2.x -- which means, quite simply, if you have an application thats been compiled against libraries built with gcc 2.x, and then you compile the libraries with 3.x, the application will cease to work, because it will not be able to find the symbols it needs to run. Usually, this will result in a core dump. This only affects programs written in C++. This is exactly what happens with utilities such as tar, which is written in C++ (which surprised me). Which is why, your default-1.0-gcc3 profile will *NOT* enable someone to bootstrap with gcc 3.0, unless you happen to have a stage1 ISO that has statically linked binaries in it (theoretically, if you have statically linked binaries on(Continue reading)
RSS Feed