[SuSE Linux] Compiler for kernel and C++ Development w. Exceptions!
Hi, I keep screewing things up on my SuSE 5.2 and now I'm loosing patience. i) Apparently compiling the kernel 2.0.3x with compiler above 2.7.2.x is not supported. ii) The 2.7.2.x compiler does have experimental implementations of exceptions. iii) Building C++ applications requires solid exception handling. So if I want to be able to build my kernel I need a 2.7.2.x compiler and to be able to develop solid c++ applications I need at least 2.8.1.x (I have egcs-1.0.3a). How do I have two compilers installed, to accomplish my two requiredments, without any interference? I read in the GCC FAQ/HOWTO that using the "--prefix=/not/the/same/as/gcc" instead of "-V version" was recommended, but no other links were mentioned. I find the GCC-HOWTO which I have quite old (It covers 2.7.2). I have been able to build and successfully boot kernels built with both 2.8.1 and egcs-1.0.3a (gcc version egcs-2.90.29). What does it mean that those builds are not supported? (besides very few answers when asking in newsgroups/mailing lists). No I'm not finished :) I've installed the glib 2 (libc6) (hey everybody seems to be going with glib 2). I tried to install the libg++ 2.7.2 to use with gcc 2.7.2.3, but the build-process failed because of the "./libio/libio.h" did NOT contain some "_IO_cookie_..." struct definition which was defined in "/usr/include/libio.h" I then built and installed the egcs-1.0.3a but when I try to build a very simple HelloWorld program i c++ I get the error: /usr/local/lib/libstdc++.so: undefined reference to 'filebuf virtual table' collect2: ld returned 1 exit status Can anyone tell me why? I did not declare and define any virtual functions in my simple class. Neither did it help to do so. The libstdc++.so is a link to libstdc++.so.2.8.0, I believe installed by the egcs-release. I know some of the questions above do not really belong to SuSE but I was hoping that some kind reader would feel pity for me and answer them anyhow. Just for fun I can tell that for some years now I usually have more than 3 c++ compilers installed on my NT Workstation and Server machines. Symantec has been my favorite but I'm forced to use MS Dev Studio 97 nowdays. Borland C++ is also an old friend which I miss in linux. I've just started to play with CodeWarrior C++ compiler. I do not find it difficult to have so many compilers installed at once on NT. There are (almost) no interferences between them. I downloaded and burned 3 CD's with Debian GNU/Linux. The have gcc 2.8.x and egcs in their release. I have still not decided if I should abandon SuSE but maybe I'll be forced to do so because of their packaging of the C++ compilers i'm intressted in and their debian-package-manager. Still today I prefer SuSE and I'll certainly stay SuSE if I get this working. Yes I bought SuSE 5.2. If I could sell my problems right now I would get rich like Bill, atleast that's how he got rich. Maybee the packaging is the key... Best regards - Ingvaldur Sigurjonsson - To get out of this list, please send email to majordomo@suse.com with this text in its body: unsubscribe suse-linux-e
Ingvaldur Sigurjonsson wrote:
I too need two different compiler versions - some things I build need egcs releases whereas others need snapshots & will not work with releases. I use the inelegant approach but one which works none-the-less. I install what seems to be the most stable version in /usr/bin (you could just leave the 2.7.blah that comes with SuSE in there where it goes by default) & install the other version in /usr/local/bin which is where the source distribution puts itself by default. If I'm in the mood I alter my Makefiles to reflect my choice of compiler, otherwise I just temporarily add /usr/local/bin to the front of $PATH. Installing the compilers like this leaves them totally independant as far as I have seen. The only hassle is waiting for the egcs source to download and build. I would be interested to know if there is a better way but, like I said, this works for me. Brian. - To get out of this list, please send email to majordomo@suse.com with this text in its body: unsubscribe suse-linux-e
Try checking out the appropriate lists. Most of your questions aren't really about S.u.S.E. but issues with compilers and glibc. I think PROBABLY most people on here were sane enough to wait for the S.u.S.E. people to upgrade to glibc, and for those of us using more than one compiler, we kept the original gcc on board for the obvious reasons. S.u.S.E. will go glibc in 6.0, can't you be patient till then? I mean it is, like, their job, and they know what they are doing. It definately seems to be a better option than screwing up your system and then sending multiple mails to the lists with subtle threats about 'abandoning S.u.S.E.' just because you decided to flame ahead into areas you aren't experienced with (obviously) and managed to possibly damage or cripple some things on your system in the process of making totally unsupported changes. It's kind of assumed that if you're gonna do stuff like this that you are 1) doing it at your own risk or and 2) are in enough command of what you are doing that you can fix your own problems as they come along. <grin> I think you might find SOME help on the kernel and compiler lists. I responded a little bit below: On Tue, 25 Aug 1998, Ingvaldur Sigurjonsson wrote:
I keep screewing things up on my SuSE 5.2 and now I'm loosing patience.
That's not S.u.S.E.'s fault. Alot of the changes you've made weren't made in the distribution for reasons already mentioned. Glibc is coming at the end of the year. You are taking some real chances with some of this...
i) Apparently compiling the kernel 2.0.3x with compiler above 2.7.2.x is not supported.
There are known bugs. If you are going to experiment with compilers be aware of the issues. Egcs, and kernel have lists you might want to check out to find out what those issues are. It's already been stated on this list the issues compiling with the more recent gcc and egcs with 2.0* series kernels. If you intend to precede then you kind of do it at your own risk and you should make sure you know what you're doing. If you want to find out more about what these issues are I recomend you read the appropriate lists...
Well there's an egcs faq as well. I have a copy. If you like I'll send it and you can scan it to see if it's any use to you or if there's anything you might have missed. There _is_ a step of symlinking involved after 'configure --prefix=BLAHBLAHBLAH' that is included in the installing process so it's really not 100% true to say that all it says is to run configure. That's just plain inaccurate. Maybe you missed it.
Which lists are you on? Maybe it's the wrong lists. Not supported means there are issues. If you want to details I already told you where you can find them. I also know that just cause something builds and APPEARS o.k. that doesn't always mean all is well.. you know what to do.You should probably be checking out the compiler lists and archives for this not complaining to S.u.S.E.
I've installed the glib 2 (libc6) (hey everybody seems to be going with glib 2).
Go through your build process again and reread the instructions to see if there is something you missed? I, and I know others have built sucessfully testlibraries with glibc. I wasn't crazy enough to totally wipe out my libc5 though. Advice: if you haven't done something before and are the least bit unsure, TEST TEST TEST. Don't just start deleting and overwriting things if you don't know what you're doing cause you can really screw things up. I think it would make more sense to build a test suite first and check things out, that way you still have your regular system to fall back on. Reread your documentation.
These problems are not the fault of S.u.S.E. It just seems you are playing very toxic games with your system, and these changes---like upgrading from libc to glibc without ( apparently ) really knowing what you are doing, can have consequences if you screw it up. Remember you do this stuff at your own risk. This kind of upgrade is not a minor change, so you have to be careful. Threatening to 'abandon S.u.S.E.' if you don't get help isn't the solution to your problem. You would probably have had the same problem regardless of the distribution I think because maybe you weren't really equipped yet ability-wise to make the changes you made and subsequently screwed alot of stuff up. -M One is most dishonest towards one's God; he is not _permitted_ to sin. mail: mjohnson@pop3.aebc.com - To get out of this list, please send email to majordomo@suse.com with this text in its body: unsubscribe suse-linux-e
participants (3)
-
brian.jones3@virgin.net
-
hekate@intergate.bc.ca
-
ingi@elit.se