Build error on AIX 5.2

Help with Setup, Hardware, Performance or other Issues...Or just pimp your rig.
Post Reply
ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Build error on AIX 5.2

Post by ukyo » Mon Aug 29, 2005 3:46 am

Hi Guys,

Trying to build on AIX 5.2... so far no luck.. any ideas?
TIA,

Ukyo

g++ -DHAVE_CONFIG_H -I. -I../../../bzflag-2.0.2.20050318/src/net -I../../include -I../../../bzflag-2.0.2.20050318/include -g -O2 -DBZ_BUILD_DATE=20050829 -g -O2 -DBZ_BUILD_DATE=20050829 -c ../../../bzflag-2.0.2.20050318/src/net/network.cxx
../../../bzflag-2.0.2.20050318/src/net/network.cxx: In function `void
bzfherror(const char*)':
../../../bzflag-2.0.2.20050318/src/net/network.cxx:67: error: `hstrerror'
undeclared (first use this function)
../../../bzflag-2.0.2.20050318/src/net/network.cxx:67: error: (Each undeclared
identifier is reported only once for each function it appears in.)
make[2]: *** [network.o] Error 1
make[2]: Leaving directory `/tmp/s/work/src/net'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/s/work/src'
make: *** [all-recursive] Error 1

User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak » Mon Aug 29, 2005 1:56 pm

Assuming you're using gmake, please try

make CFLAGS="$CFLAGS -D_USE_IRS"

If you are not using gmake, edit the src/net/network.cxx and add a "#define _USE_IRS 1" at the top of the file.

If that (either one) fixes the error you're getting right now, I'll try to figure out some way to automatically do it when needed.

You will probably get more errors. AIX is not an officially supported platform at this time. To the best of my knowledge nobody has ever built bzflag on AIX, however, the majority of the code is quite portable, so there shouldn't be too many problems. If you keep reporting errors here, we can fix them, slowly. If you'd like it fixed up faster, giving one of the developers a shell account on an AIX box would be a huge help, as it would avoid the "bzbb tag" phenomenon. If you can't do that but would still like a bit of a speedup in the process, join #bzflag on irc.freenode.net and we'll see if we can help in semi-realtime.

ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo » Mon Aug 29, 2005 11:47 pm

thanks for the help... adding the #define at the top of the file worked.. then i hit this..

g++ -DHAVE_CONFIG_H -I. -I../../../bzflag-2.0.2.20050318/src/game -I../../include -I../../../bzflag-2.0.2.20050318/include -g -O2 -DBZ_BUILD_DATE=20050829 -c ../../../bzflag-2.0.2.20050318/src/game/NetHandler.cxx
../../../bzflag-2.0.2.20050318/src/game/NetHandler.cxx: In static member
function `static int NetHandler::udpReceive(char*, sockaddr_in*, bool&)':
../../../bzflag-2.0.2.20050318/src/game/NetHandler.cxx:99: error: invalid
conversion from `int*' to `socklen_t*'
make[2]: *** [NetHandler.o] Error 1
make[2]: Leaving directory `/tmp/s/work/src/game'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/s/work/src'
make: *** [all-recursive] Error 1

happy to take it nice and slow.. ^_^
quite locked down here so can't open shell or even irc.. :(
i'll see if 'there is a way' tho..

User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak » Tue Aug 30, 2005 12:55 am

Looks like we need an explicit cast there.
In src/game/NetHandler.cxx, line 99, change " &recvlen" to " (socklen_t*) &recvlen".

(You can ignore this part, it's for my own notes) For future reference, this is line 106 in CVS, and may require an ugly hack (such as that found in ServerLink.cxx) to work on Windows. It also may be worthwhile to move that hack to a more central location, like win32.h, or determine if it can be eliminated altogether.

ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo » Tue Aug 30, 2005 11:56 pm

here is the next one for the guru.. :)
looks quite similar to the previous one..

g++ -DHAVE_CONFIG_H -I. -I../../../bzflag-2.0.2.20050318/src/bzfs -I../../include -I../../../bzflag-2.0.2.20050318/include -g -O2 -DBZ_BUILD_DATE=20050829 -c ../../../bzflag-2.0.2.20050318/src/bzfs/bzfs.cxx
../../../bzflag-2.0.2.20050318/src/bzfs/bzfs.cxx: In function `bool
serverStart()':
../../../bzflag-2.0.2.20050318/src/bzfs/bzfs.cxx:554: error: invalid conversion
from `int*' to `socklen_t*'
../../../bzflag-2.0.2.20050318/src/bzfs/bzfs.cxx: In function `void
acceptClient()':
../../../bzflag-2.0.2.20050318/src/bzfs/bzfs.cxx:1365: error: invalid
conversion from `int*' to `socklen_t*'
make[2]: *** [bzfs.o] Error 1
make[2]: Leaving directory `/tmp/s/work/src/bzfs'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/s/work/src'
make: *** [all-recursive] Error 1

User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak » Wed Aug 31, 2005 3:24 pm

Yes, they are similar. Same solution also.

bzfs.cxx line 554 change " &addrLen" to " (socklen_t*) &addrLen"
bzfs.cxx line 1365 change " &addrLen" to " (socklen_t*) &addrLen"

For my own reference, these are lines 582 and 840 in CVS.

ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo » Thu Sep 01, 2005 12:44 am

FYI.. after changing
bzfs.cxx line 1365 change " &addrLen" to " (socklen_t*) &addrLen"

got the error below so..
line 1365 was changed to (socklen_t*) &addr_len

Code: Select all

make[2]: Entering directory `/tmp/s/work/src/bzfs'
g++ -DHAVE_CONFIG_H -I. -I../../../bzflag-2.0.2.20050318/src/bzfs -I../../include  -I../../../bzflag-2.0.2.20050318/include    -g -O2 -DBZ_BUILD_DATE=20050829 -c ../../../bzflag-2.0.2.20050318/src/bzfs/bzfs.cxx
../../../bzflag-2.0.2.20050318/src/bzfs/bzfs.cxx: In function `void
   acceptClient()':
../../../bzflag-2.0.2.20050318/src/bzfs/bzfs.cxx:1365: error: `addrLen'
   undeclared (first use this function)
../../../bzflag-2.0.2.20050318/src/bzfs/bzfs.cxx:1365: error: (Each undeclared
   identifier is reported only once for each function it appears in.)
make[2]: *** [bzfs.o] Error 1
make[2]: Leaving directory `/tmp/s/work/src/bzfs'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/s/work/src'
make: *** [all-recursive] Error 1
[/code]

ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo » Thu Sep 01, 2005 12:47 am

Here is the next one.. the thing about lncurses bothers me.. i hope its not to do with my build environment.. i had to install all sorts of packages from all over the place to get it to start to build.

g++ -DHAVE_CONFIG_H -I. -I../../../bzflag-2.0.2.20050318/src/bzadmin -I../../include -I../../../bzflag-2.0.2.20050318/src/bzflag -I../../../bzflag-2.0.2.20050318/include -DBUILDING_BZADMIN -g -O2 -DBZ_BUILD_DATE=20050829 -c ../../../bzflag-2.0.2.20050318/src/bzadmin/bzadmin.cxx
g++ -DBUILDING_BZADMIN -g -O2 -DBZ_BUILD_DATE=20050829 -o bzadmin BZAdminClient.o BZAdminUI.o CursesUI.o CursesMenu.o OptionParser.o ServerLink.o StdBothUI.o StdInUI.o StdOutUI.o UIMap.o bzadmin.o ../date/libDate.a -lncurses ../game/libGame.a ../net/libNet.a ../common/libCommon.a -lbind -lm
ld: 0711-317 ERROR: Undefined symbol: .MeshObstacle::getClassName()
ld: 0711-317 ERROR: Undefined symbol: .MeshFace::getClassName()
ld: 0711-317 ERROR: Undefined symbol: OBSTACLEMGR
ld: 0711-317 ERROR: Undefined symbol: .MeshObstacle::containsPointNoOctree(float const*) const
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
collect2: ld returned 8 exit status
make[2]: *** [bzadmin] Error 1
make[2]: Leaving directory `/tmp/s/work/src/bzadmin'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/s/work/src'
make: *** [all-recursive] Error 1

User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak » Thu Sep 01, 2005 4:54 am

ukyo wrote:FYI.. after changing
bzfs.cxx line 1365 change " &addrLen" to " (socklen_t*) &addrLen"

got the error below so..
line 1365 was changed to (socklen_t*) &addr_len
Whoops, my mistake. You got the right fix.
ukyo wrote:Here is the next one.. the thing about lncurses bothers me.. i hope its not to do with my build environment.. i had to install all sorts of packages from all over the place to get it to start to build.
No, it is not a curses problem. That's working ok for you :). However, your linker seems to want libobstacle, which shouldn't be necessary. I'm very curious to know why it wants to link it in, but in any case, here's how to make it happy:

Edit src/bzadmin/Makefile.am. Find the LDADD section (should be at the bottom of the file) and add a line that says
" ../obstacle/libObstacle.a "
immediately before the line that says
" ../game/libGame.a "

Then (this is prolly gonna hurt a bit ;) ) rerun autogen.sh and configure, and do your make again.
That should make it all happy to link bzadmin.

User avatar
Kooppers
Private First Class
Private First Class
Posts: 28
Joined: Sat Jan 29, 2005 3:35 pm
Location: everywhere exepted here!

Post by Kooppers » Thu Sep 01, 2005 6:48 am

Hi,

Unfortunately i'm not in to help bz to compile on aix 5.2.
Not a big deal as things are going their way with DTR a dev guru.

However i was just wondering if once bz will be compiled on aix if ukyo will be able to put the binary somehwere so that i can grab it ;)
(i'm interested in as i have aix box as well (not at home :p) )

Regards, yums
Last edited by Kooppers on Mon Jul 03, 2006 2:16 pm, edited 1 time in total.
Image
Image

ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

the build completed!!... but..

Post by ukyo » Mon Sep 05, 2005 1:36 am

autogen.sh and configure didn't hurt at all.. i wonder if i ran it correctly... i remember it took ages the first time i ran it.
the build completed.. i can see a bzadmin and bzfs binary in /usr/local/bin but no bzflag binary..
do i need sdl to build the bzflag binary?

sorry for being a complete n00b on this.. :p
However i was just wondering if once bz will be compiled on aix if ukyo will be able to put the binary somehwere so that i can grab it
yummy... no prob.. i'll hv to see what was put where tho and then tar it all up....
well.. i've never played bzflag or even heard of it until a guy told me about it... so i said i'll try build it on AIX.. i hv aix boxes...(not at home :p)
[/quote]

ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

my configure output... DOH!

Post by ukyo » Mon Sep 05, 2005 1:38 am

hmmm... i think i answered my own n00b question..

BZFlag-2.0.2.20050905 with the following:
curses: -lncurses
no SDL!
libcurl disabled - MOTD, global bans, etc. disabled
bzadmin
no bzflag client binary!

ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

graphics libs...

Post by ukyo » Mon Sep 05, 2005 2:09 am

just installed some AIX graphics libs... so i could have a gl.h

now my configure says it will build bzflag client.. ^_^
its currently building as i type this msg..
fingers crossed.. :)

ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

the next error...

Post by ukyo » Mon Sep 05, 2005 2:17 am

did a autogen.sh and configure.. and it came back with..

Code: Select all

BZFlag-2.0.2.20050905 with the following:
     curses: -lncurses
     no SDL!
     libcurl disabled - MOTD, global bans, etc. disabled
     bzadmin
     bzflag client
so i did a make.. and here is the error..

Code: Select all


make[2]: Leaving directory `/tmp/s/work/src/date'
Making all in bzfs
/tmp/s/work/src/bzfs
make[2]: Entering directory `/tmp/s/work/src/bzfs'
g++  -g -O2 -DBZ_BUILD_DATE=20050905  -o bzfs  AccessControlList.o Authentication.o BZWError.o BZWReader.o CmdLineOptions.o Custo
mArc.o CustomBase.o CustomBox.o CustomCone.o CustomDynamicColor.o CustomGate.o CustomGroup.o CustomLink.o CustomMaterial.o Custom
Mesh.o CustomMeshFace.o CustomMeshTransform.o CustomPhysicsDriver.o CustomSphere.o CustomTextureMatrix.o CustomPyramid.o CustomTe
tra.o CustomWaterLevel.o CustomWeapon.o CustomWorld.o CustomZone.o EntryZones.o Filter.o FlagHistory.o FlagInfo.o GameKeeper.o Li
stServerConnection.o MasterBanList.o ParseMaterial.o Permissions.o RecordReplay.o RejoinList.o Score.o DropGeometry.o SpawnPositi
on.o TeamBases.o TextChunkManager.o WorldFileLocation.o WorldFileObject.o WorldFileObstacle.o WorldInfo.o WorldWeapons.o commands
.o bzfs.o ../obstacle/libObstacle.a               ../game/libGame.a               ../net/libNet.a                 ../common/libCo
mmon.a           ../regex/libregex.a -lz   ../date/libDate.a -lbind -lm
ld: 0711-317 ERROR: Undefined symbol: .QuadWallSceneNode::QuadWallSceneNode[in-charge](float const*, float const*, float const*,
float, float, bool)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setColor(float const*)
ld: 0711-317 ERROR: Undefined symbol: .TriWallSceneNode::TriWallSceneNode[in-charge](float const*, float const*, float const*, fl
oat, float, bool)
ld: 0711-317 ERROR: Undefined symbol: .QuadWallSceneNode::QuadWallSceneNode[in-charge](float const*, float const*, float const*,
float, float, float, float, bool)
ld: 0711-317 ERROR: Undefined symbol: Singleton<TextureManager>::_instance
ld: 0711-317 ERROR: Undefined symbol: .TextureManager::TextureManager[in-charge]()
ld: 0711-317 ERROR: Undefined symbol: .TextureManager::getTextureID(char const*, bool)
ld: 0711-317 ERROR: Undefined symbol: .TextureManager::getInfo(int)
ld: 0711-317 ERROR: Undefined symbol: .MeshFragSceneNode::MeshFragSceneNode[in-charge](int, MeshFace const**)
ld: 0711-317 ERROR: Undefined symbol: .MeshPolySceneNode::MeshPolySceneNode[in-charge](float const*, GLfloat3Array const&, GLfloa
t3Array const&, GLfloat2Array const&)
ld: 0711-317 ERROR: Undefined symbol: .OpenGLMaterial::OpenGLMaterial[in-charge](float const*, float const*, float)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setDynamicColor(float const*)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setModulateColor(float const*)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setLightedColor(float const*)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setLightedModulateColor(float const*)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setMaterial(OpenGLMaterial const&)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setTexture(int)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setTextureMatrix(int)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setBlending(bool)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setSphereMap(bool)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setAlphaThreshold(float)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setNoCulling(bool)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setNoSorting(bool)
ld: 0711-317 ERROR: Undefined symbol: .OpenGLMaterial::~OpenGLMaterial [in-charge]()
ld: 0711-317 ERROR: Undefined symbol: .TextureManager::~TextureManager [in-charge]()
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
collect2: ld returned 8 exit status
make[2]: *** [bzfs] Error 1
make[2]: Leaving directory `/tmp/s/work/src/bzfs'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/s/work/src'
make: *** [all-recursive] Error 1


should i clean out everything before i run make?

User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak » Mon Sep 05, 2005 7:14 am

(Suggestion: read this whole message before starting anything)

Your linker is picking up a lot of unnecessary garbage for some reason. You can try doing a make distclean, then re-run autogen, configure, make, but I doubt it will help. If you want to make a copy of your existing bzfs and bzadmin binaries beforehand, you should do so...otherwise they will get blown away by make distclean.

If that doesn't clear things up, you may end up having to link all of the libs into bzfs and bzadmin to make your linker happy, which is rather non-optimal, but it is possible and I can give instructions on how to do so. Another thing that might fix things up is to switch to the GNU linker (if that's even possible in your situation).

Alternately (and I suspect you'll like this best, I know I would), you can stick with bzfs and bzadmin like you have already (with the client disabled), then reconfigure with the client enabled (like you already have), and then tell make to continue through errors in order to build the bzflag client ('make -k' probably). The client itself ought to link with every lib we build, so it shouldn't trigger the same problem. Note that with make -k if you get an error it will continue building anyway, so you may have to be careful about picking the right set of errors to post if you have additional problems.

BTW, sorry about all this trouble for a game you haven't even played yet! :)

ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

using GNU linker on AIX

Post by ukyo » Tue Sep 06, 2005 12:01 am

I think I found the answer to this one..
You cannot use the GNU linker on AIX as this will cause incorrectly linked binaries. By default, the AIX linker is used when using GCC on AIX. You should only use the default AIX linker.
It also mentions this..
Linking an application with an archive of object files (normal library, not shared library) produces error messages about unresolved symbols. This can occur if a library contains object files with references to symbols outside of the library that the programmer thought the linker would ignore.

GCC provides a wrapper around the system linker that scans all object files and non-shared libraries for constructors and destructors. This is done before the linker has an opportunity to skip unneeded object files in the library because a function or data may only be referenced in a constructor or destructor. The scan may find constructors and destructors that the application does not normally reference, requiring additional symbol definitions to satisfy the link. The alternative would miss constructors and destructors required by the application because some object files in the library appeared to be unneeded and were omitted but actually supplied required constructors and destructors. This omission would cause the application to break.
http://www-128.ibm.com/developerworks/e ... s/gnu.html

Definitely choosing your last option.. I'll let you know how I go and we'll skip the errors on unresolved symbols. :)

ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo » Tue Sep 06, 2005 12:31 am

It seemed to go OK.. it hit the same bzfs undefined symbols.. then started to build bzflag and stopped here...

Code: Select all


++ -DHAVE_CONFIG_H -I. -I../../../bzflag-2.0.2.20050318/src/bzflag -I../../include  -I../../../bzflag-2.0.2.20050318/include     -g -O2 -DBZ_BUILD_DATE=20050905 -c ../../../bzflag-2.0.2.20050318/src/bzflag/stars.cxx
g++  -g -O2 -DBZ_BUILD_DATE=20050905  -o bzflag  ActionBinding.o AudioMenu.o AutoPilot.o BackgroundRenderer.o BaseLocalPlayer.o CacheMenu.o ComposeDefaultKey.o ControlPanel.o DisplayMenu.o Downloads.o EffectsMenu.o EntryZone.o FlashClock.o ForceFeedback.o FormatMenu.o GuidedMissleStrategy.o GUIOptionsMenu.o HelpMenu.o HUDDialog.o HUDDialogStack.o HUDRenderer.o HUDui.o HUDuiControl.o HUDuiDefaultKey.o HUDuiLabel.o HUDuiList.o HUDuiTextureLabel.o HUDuiTypeIn.o JoinMenu.o InputMenu.o KeyboardMapMenu.o LocalPlayer.o MainMenu.o MainWindow.o MenuDefaultKey.o motd.o OptionsMenu.o Player.o Plan.o QuickKeysMenu.o QuitMenu.o RadarRenderer.o Region.o RegionPriorityQueue.o RemotePlayer.o RobotPlayer.o RoofTops.o Roster.o SaveWorldMenu.o SceneBuilder.o SceneRenderer.o SegmentedShotStrategy.o ServerCommandKey.o ServerLink.o ServerMenu.o ServerStartMenu.o ShockWaveStrategy.o ShotPath.o ShotPathSegment.o ShotStats.o ShotStatsDefaultKey.o ShotStatistics.o ShotStrategy.o SilenceDefaultKey.o TargetingUtils.o TrackMarks.o Weapon.o WeatherRenderer.o World.o WorldBuilder.o WorldPlayer.o bzflag.o callbacks.o clientCommands.o daylight.o playing.o sound.o stars.o ../3D/lib3D.a                              ../game/libGame.a                       ../net/libNet.a                         ../obstacle/libObstacle.a                                               ../platform/libPlatform.a               ../ogl/libGLKit.a                       ../scene/libSceneDB.a                   ../geometry/libGeometry.a               ../mediafile/libMediaFile.a             ../common/libCommon.a                   ../regex/libregex.a                             -lz                                                                                                                                                                     -lGLU -lGL -lXext  -lSM -lICE -lX11                             ../date/libDate.a -lbind -lm
collect2: ../platform/libPlatform.a: not a COFF file
make[2]: *** [bzflag] Error 1
make[2]: Target `all' not remade because of errors.
make[2]: Leaving directory `/tmp/s/work/src/bzflag'

It then tried to make bzadmin but had unresolved symbols again.
btw.. I didn't do a distclean... just continued from where I left off as i agree that i doubt it would help.

User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak » Tue Sep 06, 2005 1:00 am

I read the linker stuff. It's kind of unfortunate but it can be worked around (as you are doing).

Your latest error is interesting. Did platform build correctly? Can you do "ar t src/platform/libPlatform.a"?

ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo » Tue Sep 06, 2005 2:11 am

I found this..
Older versions of collect2 don't understand the large archive
format introduced in AIX 4.3. Check the type of file by running
"file /opt/freeware/lib/libcrypto.a"

If it's large, you can either reconstruct the archive with the
ar command (check the docs for the proper option; I think it's -g)
or you can get a more current version of gcc.
http://nixdoc.net/files/forum/about27835.html

"ar t src/platform/libPlatform.a" doesn't return anything, but
"file src/platform/libPlatform.a" says "src/platform/libPlatform.a: archive (big format)"

so I did a "ar -g src/platform/libPlatform.a" after doing a backup of the file, and the size changed from 128 bytes to 68 bytes.

but it spat the same error.. "collect2: ../platform/libPlatform.a: not a COFF file"

also came across this.. but not sure if it helps..
The IBM RS/6000 running AIX uses an object file format called XCOFF. The COFF sections, symbols, and line numbers are used, but debugging symbols are dbx-style stabs whose strings are located in the .debug section (rather than the string table). For more information, see section `Top' in The Stabs Debugging Format.
http://developer.apple.com/documentatio ... int_6.html

User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak » Tue Sep 06, 2005 2:42 am

Those file sizes are *way* too small.

From the box I do solaris builds on:
{clyde:5} ls -l libPlatform.a
-rw-r--r-- 1 remenak ug 2120484 Jun 14 15:32 libPlatform.a

You should be seing something several megabytes in size. I suspect the problem is that AIX doesn't trigger any of the platform definitions, and you have not installed SDL, so it's not building any of the source files.

The easy fix is to install SDL (we should build with SDL regardless of the platform) and tack a couple lines onto configure.in to tell it to use the "linux" build target (btw, that's a major misnomer, it covers all the unix-like os'es we support except solaris and irix). The folks at SDL do have a bunch of working AIX code, but it's not officially supported. See http://libsdl.org, http://heim.ifi.uio.no/~griff/sdl.html for details. The AIX port is "incomplete" but it appears to have all the functionality we need. If you get a segfault because of joystick stuff you may have to disable it, but that's not a big deal.

The harder way would be to write a platform definition for it. We can use the standard X files for everything but sound; we'd need to define an AIXMedia object for it to use for sound, then add a couple lines to configure.in and src/platform/Makefile.am. If you don't care about sound it can be a no-op device (I can write a patch up in a couple minutes that would do that if you'd like); if you do care about sound it will have to actually know about AIX' sound system, which would be somewhat more...challenging.

I'd suggest trying to use SDL first. If you can't or don't want to, or it doesn't work for some reason, we can look at a specific platform build for it.

ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo » Tue Sep 06, 2005 5:20 am

not fussed about sound..
i'll see how i go with SDL.. i noticed that the patched source is for AIX 4.3.3... so wish me luck.. :)

Post Reply