Duke4.net Forums: Link failure on powerpc / Linux / gcc 4.6 - Duke4.net Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Link failure on powerpc / Linux / gcc 4.6  "eobj/libengine.a: could not read symbols: File in wrong format"

User is offline   Zagro 

#1

While trying to build current eduke32 on a powerpc under Linux with gcc 4.6 I get this errror:
Spoiler


This post has been edited by Zagro: 23 March 2013 - 01:34 AM

0

User is offline   Zagro 

#2

Also note the src/polymost.c warnings which I am not getting on x86.
0

User is offline   Plagman 

  • Former VP of Media Operations

#3

Are you using the a tree you already built from a different arch? If you, you'll need to make 'veryclean' for the engine lib to be rebuilt.
0

User is offline   Zagro 

#4

View PostPlagman, on 06 January 2013 - 08:57 AM, said:

Are you using the a tree you already built from a different arch? If you, you'll need to make 'veryclean' for the engine lib to be rebuilt.


No, I get a clean tree with svn. (Note also that I first tried with make, then I did a make veryclean, then I did make LTO=0 with the same result.)
0

User is offline   Plagman 

  • Former VP of Media Operations

#5

Oh! do `make veryclean && make NOASM=1`.
0

User is offline   Zagro 

#6

View PostPlagman, on 06 January 2013 - 09:54 AM, said:

Oh! do `make veryclean && make NOASM=1`.


It works now, I just get this new warning:
source/astub.c: In function ‘osdcmd_tint’:
source/astub.c:9211:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

Maybe it should be disabled on PPC, as it is on x86_64 according to the wiki?

Is there a way to run eduke32 in 2D mode, I mean without having an OpenGL driver?

Thanks, I love this project and their developers!
0

User is offline   TerminX 

  • el fundador

  #7

make USE_OPENGL=0 POLYMER=0 NOASM=1 will give you a binary where the only available renderer is the C version of classic software mode.
0

User is online   Hendricks266 

  • Weaponized Autism

  #8

src/polymost.c: In function ‘dxtfilter’:
src/polymost.c:6550:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
src/polymost.c:6551:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
src/polymost.c:6552:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
src/polymost.c:6553:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
source/astub.c: In function ‘osdcmd_tint’:
source/astub.c:9211:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

These are caused by the B_LITTLE32 macro using the B_SWAP32 function on big endian systems, which uses an unsigned 32-bit integer for its input and output. I generally don't know how to approach sign warnings like these. I almost don't see the point of -Wsign-compare.

That astub.c line is really hackish and could be better performed without using B_LITTLE32 at all. It casts a palette_t struct (four chars, 8-bit ints) as an int32_t to compare its values all at once. Ugh.
0

User is offline   Zagro 

#9

View PostTerminX, on 06 January 2013 - 10:38 AM, said:

make USE_OPENGL=0 POLYMER=0 NOASM=1 will give you a binary where the only available renderer is the C version of classic software mode.


Thanks but this one fails to build:
Spoiler

There are also some warnings for code only used inside OPENGL but defined everywhere.

This post has been edited by Zagro: 23 March 2013 - 01:32 AM

0

User is offline   Plagman 

  • Former VP of Media Operations

#10

Again, make sure you make veryclean before you change the build configuration like that, else you'll have a mismatch of OpenGL engine files and non-GL game files.
0

User is offline   Zagro 

#11

View PostPlagman, on 07 January 2013 - 09:04 AM, said:

Again, make sure you make veryclean before you change the build configuration like that, else you'll have a mismatch of OpenGL engine files and non-GL game files.

I did it and then compiled with:
make LTO=0 NOASM=1 USE_OPENGL=0 POLYMER=0

0

User is offline   Plagman 

  • Former VP of Media Operations

#12

Oh, I got the same failure if I add LTO=0 like you did; it builds without it. Note that only the editor fails to link, so despite the overall failure it yielded an eduke32 binary. I'll try to figure out what's going on, probably something thinks it's unused.
0

User is online   Hendricks266 

  • Weaponized Autism

  #13

Try svn updating. make veryclean, then make using whatever settings you were using. As of r3382 all the warnings and errors you were getting should be fixed.
0

User is offline   Zagro 

#14

View PostHendricks266, on 07 January 2013 - 10:18 PM, said:

Try svn updating. make veryclean, then make using whatever settings you were using. As of r3382 all the warnings and errors you were getting should be fixed.


Confirmed, thanks. Note however that without NOASM=1 it still fails to link.
0

User is offline   Plagman 

  • Former VP of Media Operations

#15

Yeah, the assembly code in the engine is x86-only at the moment, so you have to pass NOASM=1 for all non-x86 archs. We have a few cases where we do it automagically such as ARM and amd64, I think, but it would be hard to include _all_ of them.
0

User is offline   Zagro 

#16

Thanks. I noticed a couple of problem with the engine compiled that way.
  • I see many FX_PlayAuto3D: Unknown or unsupported format. messages when changing menu screen and also in the game when something new appears on screen;
  • I am not able to run the game in full screen.

Log running with no config files is attached.

Attached File(s)


1

User is offline   Plagman 

  • Former VP of Media Operations

#17

You'd have to restart your X server in depth 8 to run the game in full screen in software mode; I don't know about the sound-related errors.
0

User is offline   Zagro 

#18

It's still broken with make LTO=0 NOASM=1 POLYMER=0 USE_OPENGL=0

Spoiler


Also with make LTO=0 NOASM=1 USE_OPENGL=0 it was non working.

This post has been edited by Zagro: 23 March 2013 - 01:36 AM

1

User is online   Hendricks266 

  • Weaponized Autism

  #19

View PostZagro, on 09 January 2013 - 11:06 AM, said:

I see many FX_PlayAuto3D: Unknown or unsupported format. messages when changing menu screen and also in the game when something new appears on screen;

I just ran a test of all 397 sounds on my Wii (a PowerPC (big-endian) platform; built with LTO=0 NOASM=1 USE_OPENGL=0 POLYMER=0) and didn't get any of those errors. Do they still happen with the latest SVN? You are using the unmodified game, right?
0

User is offline   Zagro 

#20

Yes, I compiled with LTO=0 NOASM=1 USE_OPENGL=0 POLYMER=0 on r3592 and still get the errors. There is an interesting
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred

error that make me suppose at an error in the driver subsystem. Full log (FWIW) below:

Spoiler


This post has been edited by Zagro: 23 March 2013 - 01:27 AM

1

User is offline   Zagro 

#21

It's an ALSA issue, this is the bug report:
https://github.com/F...eRDP/issues/852

EDIT: sorry, this is not the ALSA bug tracker but FreeRDP application bug tracker, so it's unconfirmed if it's an ALSA or a eduke32 bug.

This post has been edited by Zagro: 23 March 2013 - 01:40 AM

1

User is online   Hendricks266 

  • Weaponized Autism

  #22

Could you try a build with this modification made to the end of FX_AutoDetectFormat() in fx_man.c?

Spoiler

0

User is offline   Zagro 

#23

I get this:
FX_AutoDetectFormat: 1131570529i 542535529i 1131570529 542535529


Full log:
Spoiler

1

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic


All copyrights and trademarks not owned by Voidpoint, LLC are the sole property of their respective owners. Play Ion Fury! ;) © Voidpoint, LLC

Enter your sign in name and password


Sign in options