Makefile.eeglobal_sample fix

Discuss the development of software, tools, libraries and anything else that helps make ps2dev happen.

Moderators: cheriff, Herben

Post Reply
User avatar
Neil Stevens
Posts: 79
Joined: Thu Jan 27, 2005 2:22 pm
Location: California
Contact:

Makefile.eeglobal_sample fix

Post by Neil Stevens »

As I've waded ever deeper into developing with ps2sdk, I've been including the Makefiles in ps2sdk/samples in my project. Unfortunately, as it stands, ps2sdk/samples/Makefile.eeglobal_sample in CVS doesn't quite seem to work. Could someone with CVS write access apply this fix, so that future users don't run into trouble?

According to the comments in the file, libkernel must be linked in last. It's not last in that file right now, though. I wasn't able to link anything until Drakonite on IRC and here pointed this out to me, and after I fixed that locally things started working. So ps2sdk/samples/Makefile.eeglobal_sample's EE_LIBS line I think should be changed in CVS to

Code: Select all

EE_LIBS += -lc -lsyscall -lkernel
Unfortunately, I have no rationale other than "This works for me, while the line currently seen in ViewCVS doesn't." But, unless my setup is weird *and* the comment is bunk, this is the right thing to do.

(That's a lot of verbiage for a one line fix! It's a shame I don't know WHY these libs are finicky. I'd be able to make the case succinctly in that case.)

Thank you,
Oobles
Site Admin
Posts: 347
Joined: Sat Jan 17, 2004 9:49 am
Location: Melbourne, Australia
Contact:

Post by Oobles »

Thanks for picking that up. We're always interested in getting fixes for ps2sdk. Even if the pick up can be a bit slow at times.

As for the reason; it's because the linker isn't very smart. It only looks at the previous libraries on the line for functions. This means that if you have two libraries that use functions from each other you must add the libraries twice. eg.

-lfoo -lbar -lfoo

This is why the order is important and that you can see items duplicated. Hope that explains it.

Oobles.
ooPo
Site Admin
Posts: 2023
Joined: Sat Jan 17, 2004 9:56 am
Location: Canada
Contact:

Post by ooPo »

Its smarter than the old method of just including everything. :)
User avatar
Neil Stevens
Posts: 79
Joined: Thu Jan 27, 2005 2:22 pm
Location: California
Contact:

Post by Neil Stevens »

Thanks for the explanation!
pukko
Posts: 17
Joined: Sat Jan 17, 2004 10:13 pm

Post by pukko »

I guess the library order issue is all sorted out now, but if not I'd say it's time we use the --start-group 'list of libs' --end-group linker option for these libraries.. :P

Though I dunno if that works w the old toolchain?
mrbrown
Site Admin
Posts: 1537
Joined: Sat Jan 17, 2004 11:24 am

Post by mrbrown »

Or you can add the group to the top of the linker script which is what Sony libs do.
"He was warned..."
Post Reply