Support for #defined(__aarch64__)
Hi, I efforts to get ODE working on my OpenSim build for ThunderX (AARCH64), I downloaded and built up-to 'make install' with my needing to hack the emitted makefiles.
I hacked in some changes that are likely incorrect; just to get linkage on AARCH64.
It appears there is a lot of code that presumes sizeof(unsigned int) == sizeof(void *)
I forced some -fpermissive into the emitted makefiles and it linked/installed and - well ode-config ran (I have no other test cases yet)
screenlog.0 for make as well as config.log are attached for the build of code straight from the repo.
Thanks
Example error: make[4]: Entering directory '/stacks/stores/opensim/ode/x/ode/ode/src/joints' /bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../../ode/src -I../../../include -I../../../include -I../../../ode/src -D__ODE__ -I../../../ou/include -g -O2 -MT joint.lo -MD -MP -MF .deps/joint.Tpo -c -o joint.lo joint.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../../ode/src -I../../../include -I../../../include -I../../../ode/src -D__ODE__ -I../../../ou/include -g -O2 -MT joint.lo -MD -MP -MF .deps/joint.Tpo -c joint.cpp -o joint.o In file included from joint.h:28:0, from joint.cpp:37: ../common.h: In member function ‘void dxAlignedAllocation::allocAligned(size_t, unsigned int)’: ../common.h:66:68: error: cast from ‘void’ to ‘uintptr {aka unsigned int}’ loses precision [-fpermissive] #define dALIGN_PTR(buf_ptr, alignment) ((void *)(((uintptr)(buf_ptr) + ((alignment) - 1)) & (int)(~(alignment - 1)))) // Casting the mask ^
Comments (6)
-
Account Deactivated -
reporter Thanks,
That built with no errors and warnings.
By the way, any pointers on what is needed for building ODE for OpenSimulator I can use to finish this? I have OpenSimulator running all but physics.
Thanks for your help!
-
Account Deactivated I do not have any information regarding what configuration of ODE is used with OpenSimulator. If it builds for you I assume you can use whatever feature set you configure as the public API generally does not depend on that. Or do you mean anything else?
-
reporter Thanks again. There is a library built and used by Opensimulator: ./OpenSim.Region.PhysicsModule.Ode.dll ./addin-db-002/addin-data/3/OpenSim.Region.PhysicsModule.ODE,0.8.2.1.maddin ./addin-db-002/addin-data/4/OpenSim.Region.PhysicsModule.ODE,0.8.2.1.maddin ./addin-db-002/addin-data/2/OpenSim.Region.PhysicsModule.ODE,0.8.2.1.maddin ./addin-db-002/addin-data/1/OpenSim.Region.PhysicsModule.ODE,0.8.2.1.maddin ./Ode.NET.dll.config ./lib64/libode-x86_64.so ./lib64/libode.dylib ./lib64/ode.dll ./Ode.NET.dll ./lib32/ode.dll ./lib32/libode.so
I can find no make flow to create these.
-
Account Deactivated There have to exist some OpenSim support/development resources you should ask in.
-
Account Deactivated - changed status to resolved
The fix has been merged into 0.15.x branch and the 0.15.2 release has been repacked
- Log in to comment
Please try applying the following patch and see if it works for you.