Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
neubejiita

Yadex error. Will not run.

Recommended Posts

(19:30:20-*-homer@balrog Documents) $ yadex
Yadex 1.7.0 (2011-05-28)
Reading config file "/etc/yadex/1.7.0/yadex.cfg".
Reading config file "/home/homer/.yadex/yadex.cfg".
Error: sizeof u32 is 8 (should be 4)
I have compiled yadex 1.7.0 on Fedora 15 x64 with gcc 4.6.0 and it gives this error upon execution. Below is output from strace and it does not make much sense to me at all, I am hoping someone else can shed some light on this error. Is it changes in gcc 4.6.0 from 4.5? Anyway it worked fine in Lubuntu x32 and now I am running 64 bit Fedora 15 it will not work.

munmap(0x7fbae675f000, 4096)            = 0
stat("./yadex.cfg", 0x7fff3dd57bd0)     = -1 ENOENT (No such file or directory)
write(2, "Error: ", 7Error: )                  = 7
write(2, "sizeof u32 is 8 (should be 4)", 29sizeof u32 is 8 (should be 4)) = 29
write(2, "\n", 1
)                       = 1
exit_group(2)                           = ?
(19:43:53-*-homer@balrog ~)$ 

Share this post


Link to post

To post something helpful (unlike Boris' link) :

The issue is 64-bit CPU instead of 32-bit CPU. Code that is written with a 32-bit cpu in mind can often fail to work properly on 64-bit cpus.

For this particular error, try editing src/yadex.h and find these lines:

typedef unsigned long  u32;
#define F_U32_D "lu"
#define F_U32_H "lX"

typedef signed   long  i32;
#define F_I32_D "ld"
#define F_I32_H "lX"
and change the word 'long' there to 'int'.

There could be other 64-bit issues lurking in the code though.

Share this post


Link to post
andrewj said:

For this particular error, try editing src/yadex.h and find these lines: [snipped]
and change the word 'long' there to 'int'.

There could be other 64-bit issues lurking in the code though.


You can also hack up the Makefile and add -m32; this tells the compiler to compile a 32-bit binary, which is just as hack-y in it's own way.

I have a full patch from my compile, which includes -m32 and a bunch of other patches as well if you want it;

http://doom.spicyjack.com/yadex-1.7.0-all_patches-x86.diff

Share this post


Link to post
andrewj said:

To post something helpful (unlike Boris' link) :

The issue is 64-bit CPU instead of 32-bit CPU. Code that is written with a 32-bit cpu in mind can often fail to work properly on 64-bit cpus.

For this particular error, try editing src/yadex.h and find these lines:

typedef unsigned long  u32;
#define F_U32_D "lu"
#define F_U32_H "lX"

typedef signed   long  i32;
#define F_I32_D "ld"
#define F_I32_H "lX"
and change the word 'long' there to 'int'.

There could be other 64-bit issues lurking in the code though.


That worked fine just editing those two lines fixed the program perfectly. I am testing this on Linux Mint 11 x64 as Fedora Core 15 threw a fit after the first update cycle. But yes, it works fine now. I will have to try spicyjacks patch and see what that does, can I apply that patch if I have already merged in the mega patch from the Yadex website?

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×