PDA

View Full Version : gcc3.2 and the new ABI


Trumpcard
10-28-2002, 03:13 AM
Hey, I got to looking at changing the code last night to compile with gcc 3.2. The main issue is that the new ABI has changed to make it multi-vendor portable, and conform to the new ISO C++ standards. Older gcc's let you get away with alot, the new one doesnt. Before I start doing anything, I want to know a couple of things.

1) Can I count on a developer to roll these changes into the code baseline once I get them in and test them against both the windows and linux versions? If no one will step up to the plate and say yes to this, Im not going to bother doing anything, I dont want to have to recreate it with every release.

2) If anyone knows anything about the way the new ABI expects the templates to be created, mostly it appears to be template/namespace issues with the 3.2 compiles. A gcc2.9x to 3.2 porting manual would be great, I'm not sure what the new standards are yet.

3) If anyone else has started working on it, then I can coordinate with someone else on the fixes.

Trumpcard
10-30-2002, 04:35 AM
ok, nevermind then...

flipper
10-30-2002, 05:09 AM
Ugh. Looks like Linux gets no love (other than Trumpcard) in this forum. <curses himself for jumping over to Gentoo 1.4 so early>

btuch
10-30-2002, 05:30 AM
hey! I be givin a lotta luvs to Linux ;)

Trumpcard
10-30-2002, 05:41 AM
The problem is the last time I did it, I got it fixed for 3.04 compiles, and I couldnt get anyone to check in the changes. If they were changes that broke compatibility for anyone, I would understand, but the last round of changes I tested compiled fine for 2.9x, 3.x, and windows, so the only thing it did was fix the compile for a newer gcc version. This one is going to be alot more involved, so I'm not going to spend alot of time doing throwaway work, especially with a new version being released every week or two.

flipper
10-30-2002, 06:27 AM
Trump,

We could setup a new project on sourceforge called LinuxEQemu or something like that. The only issue I see with this is that someone would need to repeatedly merge the changes from here onto the Linux version of it. It would probably be tedious.

TheClaus
10-30-2002, 07:03 AM
What ever happen to the person that was willing to give out a shell account with GCC 3.2. One of the devs said he would work on it. Did that go anywhere or get pushed aside.

Not that it matters too much for me considering I really trashed my gentoo box last night. Going to have to reformat and start over.

*Mental Note: If you are going to use the ~x86 in your make.conf to install beta apps remember NOT to update world in the process. Bad TheClaus BAD BAD BAD.

flipper
10-30-2002, 07:42 AM
My Linux server is up 24/7 and I'm willing to give the devs an account on it. It's Gentoo 1.4_rc1, so it's gcc-3.2 only. I have disabled telnet, so they would need to ssh in. Let me know if there are any suckers.. errr takers.

It's an XP1800+ with 512MB RAM and is very up to date (emerge rsync and emerge -u world almost daily).

Trumpcard
10-30-2002, 08:22 AM
Same here... 24/7 gentoo box with 3.2. I'll be happy to give anyone that wants it a shell account to work on compiling. Im not asking anyone to work on it for me, I dont mind trying to get it going, I still just want a dev to say they'll make sure the changes arent lost. Kathgar seems to be the most linux friendly, maybe we can talk him into it.

penfold1972
10-30-2002, 06:31 PM
The beginning of the month, I loaded Gentoo on my old PII 400 and I wouldn't mind giving a dev a shell account also.

I have been having a blast geeking out on my Gentoo box, (Thanks to Trump for recommending it several months back) but I too wish the EMU would compile on it.

For the other gentoo guys, I wonder how hard it would be to roll a gcc 3.2 compatible emu source into an ebuild? It just occurred to me that an ebuild and a little scripting might make it possible to have an auto-updating EMU server. It's probably more trouble than it's worth... it's super easy to upgrade now as it is, a couple of make and copy statements, and maybe a little database tweaking... which is usually scripted anyway.

ok, the beer is flowing, the ideas are rolling... :) This is getting longwided... sorry. But I like to let ideas roll around in my head and the thought of a server or two that is always up and running the latest stable version might help other aspects of EMU:

1) A unified database for NPCs, items and even quests. There are several talented people doing excellent work populating the world. It seems to me that a machine that the world builders can all expect to be up and stable can devote their efforts to maintaining THAT database, and less time either integrating their work with others or porting their local databases to the latest patch. It would also help if/when we incorporate data from other EQ projects, and it takes someone to have to manually remove any dups, errors, and what-knot.
2) A (hopefully) reliable server for people who just want to "play". New update/patch comes out, they just have the proper eqhost file and play again when it's possible.
3) An encouragement for people who develop their own databases. If someone comes up with an idea... EQLive or not, that was good, they can make it work on their own server, and submit it to the worldbuilding forum. It gets accepted and becomes part of the EQEMU "cannon".

For example, I saw a post where someone was remarking on how much fun it was to have a quest to receive level, setallskills, and such. If there was a "cannon" database at the time, a SQl dump could have immoralized just such a quest, and maybe even had others build on it and we all could have been enjoying it. Such quests would also help test and enhance world building AND developing. Now you have people actually using and testing things that might have heretofore gone unnoticed. And any problems are repeatable by worldbuilders and coders alike.

eg I have never zoned 3 or four times to get somewhere since I had the #zone command at my disposal. It was one of my peeves of EQ Live. Taking so much time just to do a corpse retrival, and (usually) because I asked myself, "Wonder where that goes?" And I was three zones from my bind point.

4) Regular updates. With a stable server, everyone knows what it is running, and when the developers add (and test) their changes, everyone knows it works, and is there to stay.
5) Capacity testing and development. My machine could never hope to be a good server (mysql, world and zone), but it might be good at running a big zone. Put three or four of these boxes together and we have a "world" that could be quite exciting to play in.
6) It hasn't been done yet.... :)

Some of these points might be good, others might be beer induced... but I have a vision of a stable, (maybe HUGE) server that does MORE than EQlive and is developed, ran, supported and maintained by those that just love to play...

Trumpcard
10-30-2002, 11:51 PM
You know, thats an awesome idea as far as gentoo goes, create an ebuild for it... It will probably compile alright for 1.2, if we can get it working for 1.4, we could create an ebuild for it in app-emulation or app-games. (Glad you've enjoyed gentoo! Personally, I dont think another distro can touch it for performance and ease of installation, once the initial instatllion is done which can be a bear). 1.4rc has been extremely stable for me so far, so i dont think 1.4 official will be too far off. At any rate, Justaddwater, devnoob, image and I were discussing ways to get new, technically proficient folks involved in the project last night and we were throwing out ideas like freshmeat (which I'm going to open a project for if no one minds), slashdot blurbs,eqsites, etc, to see if we can wrestle up more folks that want to have activeparticipation on the project. I dont like the idea branching off a linux project, but the idea of an ebuild for it is kickass in my opinion. I'll be happy to throw an ebuild together once we're compiling again, just have to include a detailed readme for it. Those of us interested in the linux side of things should put a room in IRC and get organized and try and start working through the problems in the current builds. Things like IRC are great tools for collaboration.

It looks like irc for eqemu is moving to irc.eqemu.net , so if you guys are interested we can open up a channel. I can even set up another forum for use in working through the issues we run into, if anyone is intersted... Just let me know..

Zafar
10-31-2002, 01:45 AM
I sent Trumpcard a PM a couple of minutes ago, regarding this. If he's willing to work something out, I may be able to offer some sort of resources on my own end. I don't have the skills I had a few years ago as far as programming goes, took various laugnages up, but never went directly in to one so I cannot say I am very sharp. Though I went to school for Visual C++ 4.0 a while back, still mess around with some here and there. I don't know what I could do, or how I could do it.

I know this is not much, but I've slacked off, and haven't had the resources to really upgraded. This went over night from a P1 166 machine with 64 MB EDO RAM:

The machine is a:
Celeron 400 MHZ PC66 Processor
128 MB PC66 MB SDRAM (168 PIN)
8 MB integrated video card.
16 BIT integrated Sound Blaster
8.4 GB UltraDMA-66 (UDMA66) HD
Linux Mandrake 8.1 for the x86

Basically with that, if Trumpcard accepts, and we agree on some thing, perhaps we could have a test site setup? <shrug> it's worth a thought though. I should be here tonight or in the next couple of days. So PM me, if you have any suggestions and I will talk through that and maybe from time to time, bring it out here.

TheClaus
10-31-2002, 01:53 AM
You know, thats an awesome idea as far as gentoo goes, create an ebuild for it... It will probably compile alright for 1.2, if we can get it working for 1.4, we could create an ebuild for it in app-emulation or app-games. (Glad you've enjoyed gentoo! Personally, I dont think another distro can touch it for performance and ease of installation, once the initial instatllion is done which can be a bear). 1.4rc has been extremely stable for me so far, so i dont think 1.4 official will be too far off. At any rate, Justaddwater, devnoob, image and I were discussing ways to get new, technically proficient folks involved in the project last night and we were throwing out ideas like freshmeat (which I'm going to open a project for if no one minds), slashdot blurbs,eqsites, etc, to see if we can wrestle up more folks that want to have activeparticipation on the project. I dont like the idea branching off a linux project, but the idea of an ebuild for it is kickass in my opinion. I'll be happy to throw an ebuild together once we're compiling again, just have to include a detailed readme for it. Those of us interested in the linux side of things should put a room in IRC and get organized and try and start working through the problems in the current builds. Things like IRC are great tools for collaboration.

It looks like irc for eqemu is moving to irc.eqemu.net , so if you guys are interested we can open up a channel. I can even set up another forum for use in working through the issues we run into, if anyone is intersted... Just let me know..

I would be more than happy to offer help where I can. Though I am not a master of programming I have enough skill to break err I mean fix little problems in certain things.

Is irc.eqemu.net up an running with the devs and people in it or is everything still trifocus. I can't stand trifocus so I told myself I wouldn't login to it. Let me know.

Trumpcard
10-31-2002, 03:56 AM
Yea, i moved over to irc.eqemu.net this morning and everyone is migrating slowly over there... Zafar, thanks for the offer to help, what we need is to identify where the problem spots in the code are, and hammer the compile errors out one at a time. I havent had anytime to look at it recently due to job duties, but I'll be working on it this weekend.. I'll start a #eqemulinux channel on irc.eqemu.net, and anyone that wants to work on fixing it is welcome to join. I made a different freshmeat project for eqemu this morning since Tux still wont let go of the old one, so once it gets approved and placed, Im hoping we'll start to get some more technically proficient traffic in the project. Making an ebuild would open it up to gentoo users who, if you ask me, are a cut above the average linux user. I'll post a blurb on the gentoo forums tonight and see if anyone is interested in coming onboard...

Note to devs: Im not trying to hijack the project, I'm just trying to give it a shot in the arm, especially the linux side. If you guys have any concerns or problems, shoot me an IM or hit me up on irc.. Not trying to step on anyones toes... Thanks guys!

TheClaus
10-31-2002, 05:16 AM
Man your right about the gentoo users. Hopefully it will get some people working on it. See ya in IRC.

Trumpcard
11-01-2002, 06:17 AM
Ok, on irc.eqemu.net is a new room, #eqemulinux

I'm on typically after 6 pm EST, so come on by and lurk, help, or just talk about how linux kicks the living s**t outta windows OS's.

I posted a few messages over on the gentoo boards , one promoting eqemu, the other asking general 3.2 questions in relation to it. The error message I see are pretty cryptic..

/usr/include/g++-v32/bits/locale_facets.h:745: instantiated from `_OutIter std
::num_put<_CharT, _OutIter>::put(_OutIter, std::ios_base&, _CharT, long unsigned
int) const [with _CharT = char, _OutIter = std::ostreambuf_iterator<char, std::
char_traits<char> >]'
/usr/include/g++-v32/bits/ostream.tcc:215: instantiated from `std::basic_ostre
am<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long unsign
ed int) [with _CharT = char, _Traits = std::char_traits<char>]'
/usr/include/g++-v32/ostream:130: instantiated from `std::basic_ostream<_CharT
, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int) [with
_CharT = char, _Traits = std::char_traits<char>]'
../common/packet_dump.cpp:39: instantiated from here
/usr/include/g++-v32/bits/stl_iterator_base_types.h:157: warning: function returns an aggregate

zORN
11-18-2002, 01:32 AM
any news about a gentoo ebuild for this great project?

Trumpcard
11-18-2002, 02:55 AM
Until we have it compiling properly with gcc3.2, can't even think about it.

I havent been working on it lately with 3.2 as Im back to building on 2.9x.

penfold1972
12-20-2002, 04:59 AM
I've been away for a while, but if I have read things correctly it looks like eqemu is now compiling correctly under gcc 3.2. Anyone playing around with an ebuild?