Sign in to follow this  
Followers 0

Strange build issues under linux

Finally got around to building a mjolnir/later copy to try out the new external music lump feature (thanks), and ran into a few odd issues during the build process that I thought I should note:

1. I initially interacted directly with CMake (make a build subdir, etc) and all was well except for the build scripts failing to make a link, 'libpng.a' to 'libpng15.a' (renaming libpng15.a to libpng.a myself fixed it, and this ended up being the only way I could get Eternity to build, in the end.)

2. After the first attempt at the above, I decided to do what I should have in the first place, and read the docs ;), so I went the autogen.sh route and got a cryptic error during the make, maybe from too much strictness from the compiler on casting? Here it is:

amx.cpp: In function ‘int amx_Callback(AMX*, cell, cell*, cell*)’:
amx.cpp:454: error: cast from ‘cell (*)(tagAMX*, cell*)’ to ‘cell’ loses precision
amx.cpp: In function ‘int amx_BrowseRelocate(AMX*)’:
amx.cpp:715: error: cast from ‘unsigned char*’ to ‘ucell’ loses precision
amx.cpp:778: error: cast from ‘unsigned char*’ to ‘ucell’ loses precision
amx.cpp: In function ‘void expand(unsigned char*, long int, long int)’:
amx.cpp:831: warning: comparison between signed and unsigned integer expressions
amx.cpp: In function ‘int amx_Register(AMX*, AMX_NATIVE_INFO*, int)’:
amx.cpp:1613: error: cast from ‘cell (*)(tagAMX*, cell*)’ to ‘ucell’ loses precision
amx.cpp: In function ‘int amx_Exec(AMX*, cell*, int, int, ...)’:
amx.cpp:1743: error: cast from ‘void**’ to ‘cell’ loses precision
amx.cpp:1788: warning: comparison between signed and unsigned integer expressions
3. Once everything was built, the eternity bash script which calls eternity.real had to have the eternity.real call manually edited to ./eternity.real.

Sorry if these are non-issues/probably arising from my own configuration, but I thought I'd pass these along just in case.

I'm running Ubuntu 10.04 64-bit, and using gcc 4.4.3.

edit: Oh yeah, this is an svn build of 3.40.22 Midgard

Share this post


Link to post
Reiken said:

Finally got around to building a mjolnir/later copy to try out the new external music lump feature (thanks), and ran into a few odd issues during the build process that I thought I should note:

1. I initially interacted directly with CMake (make a build subdir, etc) and all was well except for the build scripts failing to make a link, 'libpng.a' to 'libpng15.a' (renaming libpng15.a to libpng.a myself fixed it, and this ended up being the only way I could get Eternity to build, in the end.)

2. After the first attempt at the above, I decided to do what I should have in the first place, and read the docs ;), so I went the autogen.sh route and got a cryptic error during the make, maybe from too much strictness from the compiler on casting? Here it is:

amx.cpp: In function ‘int amx_Callback(AMX*, cell, cell*, cell*)’:
amx.cpp:454: error: cast from ‘cell (*)(tagAMX*, cell*)’ to ‘cell’ loses precision
amx.cpp: In function ‘int amx_BrowseRelocate(AMX*)’:
amx.cpp:715: error: cast from ‘unsigned char*’ to ‘ucell’ loses precision
amx.cpp:778: error: cast from ‘unsigned char*’ to ‘ucell’ loses precision
amx.cpp: In function ‘void expand(unsigned char*, long int, long int)’:
amx.cpp:831: warning: comparison between signed and unsigned integer expressions
amx.cpp: In function ‘int amx_Register(AMX*, AMX_NATIVE_INFO*, int)’:
amx.cpp:1613: error: cast from ‘cell (*)(tagAMX*, cell*)’ to ‘ucell’ loses precision
amx.cpp: In function ‘int amx_Exec(AMX*, cell*, int, int, ...)’:
amx.cpp:1743: error: cast from ‘void**’ to ‘cell’ loses precision
amx.cpp:1788: warning: comparison between signed and unsigned integer expressions
3. Once everything was built, the eternity bash script which calls eternity.real had to have the eternity.real call manually edited to ./eternity.real.

Sorry if these are non-issues/probably arising from my own configuration, but I thought I'd pass these along just in case.

I'm running Ubuntu 10.04 64-bit, and using gcc 4.4.3.

edit: Oh yeah, this is an svn build of 3.40.22 Midgard

You need to define EE_NO_SMALL_SUPPORT when compiling for 64-bit targets.

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
Sign in to follow this  
Followers 0