Building trunk on Debian Sid with GCC 4.7.2

mdriftmeyer
Posts: 6
Joined: Tue Mar 06, 2012 5:38 pm

Building trunk on Debian Sid with GCC 4.7.2

Post by mdriftmeyer »

I've been seeing this pollution since the import of BulletXmlWorldImporter and it's broken the build.

[ 71%] Built target AppCcdPhysicsDemo
[ 72%] Building CXX object Extras/Serialize/BulletXmlWorldImporter/CMakeFiles/BulletXmlWorldImporter.dir/btBulletXmlWorldImporter.o
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp: In member function ‘void btBulletXmlWorldImporter::deSerializeConvexHullShapeData(TiXmlNode*)’:
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:236:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:237:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp: In member function ‘void btBulletXmlWorldImporter::deSerializeCompoundShapeChildData(TiXmlNode*)’:
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:265:86: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp: In member function ‘void btBulletXmlWorldImporter::deSerializeCompoundShapeData(TiXmlNode*)’:
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:322:78: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp: In member function ‘void btBulletXmlWorldImporter::deSerializeGeneric6DofConstraintData(TiXmlNode*)’:
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:410:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:411:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp: In member function ‘void btBulletXmlWorldImporter::deSerializeRigidBodyFloatData(TiXmlNode*)’:
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:454:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp: In member function ‘void btBulletXmlWorldImporter::fixupConstraintData(btTypedConstraintData*)’:
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:561:71: error: ‘intptr_t’ was not declared in this scope
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:567:71: error: ‘intptr_t’ was not declared in this scope
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp: In member function ‘void btBulletXmlWorldImporter::fixupCollisionDataPointers(btCollisionShapeData*)’:
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:583:16: error: ‘intptr_t’ was not declared in this scope
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:583:26: error: expected ‘,’ or ‘;’ before ‘compound’
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:600:16: error: ‘intptr_t’ was not declared in this scope
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:600:25: error: expected ‘,’ or ‘;’ before ‘convexData’
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp: In member function ‘void btBulletXmlWorldImporter::auto_serialize_root_level_children(TiXmlNode*)’:
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:716:19: error: ‘intptr_t’ was not declared in this scope
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:716:29: error: expected ‘,’ or ‘;’ before ‘childData’
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:737:18: error: ‘intptr_t’ was not declared in this scope
/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/Extras/Serialize/BulletXmlWorldImporter/btBulletXmlWorldImporter.cpp:737:27: error: expected ‘,’ or ‘;’ before ‘rbData’
make[2]: *** [Extras/Serialize/BulletXmlWorldImporter/CMakeFiles/BulletXmlWorldImporter.dir/btBulletXmlWorldImporter.o] Error 1
make[1]: *** [Extras/Serialize/BulletXmlWorldImporter/CMakeFiles/BulletXmlWorldImporter.dir/all] Error 2
make: *** [all] Error 2


It's been going on a week now.
dermont
Posts: 2
Joined: Fri Jul 29, 2005 4:00 am

Re: Building trunk on Debian Sid with GCC 4.7.2

Post by dermont »

For the ‘intptr_t’ error try updating btBulletXmlWorldImporter.cpp.

Code: Select all

..
#include <stdint.h>
..
mdriftmeyer
Posts: 6
Joined: Tue Mar 06, 2012 5:38 pm

Re: Building trunk on Debian Sid with GCC 4.7.2

Post by mdriftmeyer »

That fixed building for GCC 4.7.2.

I'm testing LLVM/Clang trunk but I expect it to throw some errors.

Linking CXX executable AppBenchmarks
[ 70%] Built target AppThreadingDemo
[ 71%] Built target BulletSoftBodySolvers_OpenCL_AMD
[ 72%] Built target AppParticlesOCL_AMD
[ 73%] Built target AppParticlesOCL_Nv
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::startThreads(PosixThreadSupport::ThreadConstructionInfo&): error: undefined reference to 'sem_init'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::startThreads(PosixThreadSupport::ThreadConstructionInfo&): error: undefined reference to 'sem_init'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::startThreads(PosixThreadSupport::ThreadConstructionInfo&): error: undefined reference to 'sem_init'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::startThreads(PosixThreadSupport::ThreadConstructionInfo&): error: undefined reference to 'sem_init'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::startThreads(PosixThreadSupport::ThreadConstructionInfo&): error: undefined reference to 'pthread_create'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::startThreads(PosixThreadSupport::ThreadConstructionInfo&): error: undefined reference to 'pthread_create'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::sendRequest(unsigned int, unsigned long, unsigned int): error: undefined reference to 'sem_post'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::sendRequest(unsigned int, unsigned long, unsigned int): error: undefined reference to 'sem_post'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::waitForResponse(unsigned int*, unsigned int*): error: undefined reference to 'sem_wait'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::waitForResponse(unsigned int*, unsigned int*): error: undefined reference to 'sem_wait'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function threadFunction(void*): error: undefined reference to 'sem_wait'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function threadFunction(void*): error: undefined reference to 'sem_wait'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function threadFunction(void*): error: undefined reference to 'sem_post'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function threadFunction(void*): error: undefined reference to 'sem_post'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::stopSPU(): error: undefined reference to 'sem_destroy'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::stopSPU(): error: undefined reference to 'sem_destroy'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::stopSPU(): error: undefined reference to 'pthread_join'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::stopSPU(): error: undefined reference to 'pthread_join'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::stopSPU(): error: undefined reference to 'sem_destroy'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::stopSPU(): error: undefined reference to 'sem_destroy'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixThreadSupport::createBarrier(): error: undefined reference to 'pthread_barrier_init'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixBarrier::~PosixBarrier(): error: undefined reference to 'pthread_barrier_destroy'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixBarrier::~PosixBarrier(): error: undefined reference to 'pthread_barrier_destroy'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixBarrier::sync(): error: undefined reference to 'pthread_barrier_wait'
../../src/BulletMultiThreaded/libBulletMultiThreaded.a(PosixThreadSupport.o):/home/mdriftmeyer/DeveloperProjects/Bullet-Library/trunk/src/BulletMultiThreaded/PosixThreadSupport.cpp:function PosixBarrier::setMaxCount(int): error: undefined reference to 'pthread_barrier_init'
[ 74%] Built target MiniCL
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [Demos/Benchmarks/AppBenchmarks] Error 1
make[1]: *** [Demos/Benchmarks/CMakeFiles/AppBenchmarks.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 74%] Built target BulletSoftBodySolvers_OpenCL_Mini
[ 75%] Built target AppOpenCLClothDemo_AMD
make: *** [all] Error 2
mdriftmeyer@horus:~/DeveloperProjects/Bullet-Library/cmake-clang-trunk$

It's getting closer to having Clang trunk/Clang 3.2 able to build cleanly.
dermont
Posts: 2
Joined: Fri Jul 29, 2005 4:00 am

Re: Building trunk on Debian Sid with GCC 4.7.2

Post by dermont »

Not sure on clang but it looks like you need to link the demo against pthread. Maybe "UNIX" isn't being set using your clang_toolchain (????). As a quick test you could modify the ThreadingDemo CMakeLists.txt file to see if it reolves your error.

Code: Select all

#IF (UNIX)
  TARGET_LINK_LIBRARIES(AppThreadingDemo pthread)
#ENDIF(UNIX)
mdriftmeyer
Posts: 6
Joined: Tue Mar 06, 2012 5:38 pm

Re: Building trunk on Debian Sid with GCC 4.7.2

Post by mdriftmeyer »

dermont wrote:Not sure on clang but it looks like you need to link the demo against pthread. Maybe "UNIX" isn't being set using your clang_toolchain (????). As a quick test you could modify the ThreadingDemo CMakeLists.txt file to see if it reolves your error.

Code: Select all

#IF (UNIX)
  TARGET_LINK_LIBRARIES(AppThreadingDemo pthread)
#ENDIF(UNIX)
Rebuilt against latest Clang 3.2 Trunk and the toolchain is posix compliant and clean. Built it against Debian clang/llvm 3.1.x and it fails with the posix error, so it looks like I'll have to contact Debian and get them to rebuild it by importing any patches against Trunk that they may or may not need.

If you haven't tried LLVM/Clang I highly recommend it. You'll appreciate the error messaging alone as a huge leap forward over GCC.
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: Building trunk on Debian Sid with GCC 4.7.2

Post by Erwin Coumans »

Please check out latest trunk (and remove old cmake generated files)

The multithreaded/opencl stuff is not tested under linux, and is disabled by default now.

How do you install clang/llvm and compile Bullet with it, in a nutshell?
Thanks,
Erwin
mdriftmeyer
Posts: 6
Joined: Tue Mar 06, 2012 5:38 pm

Re: Building trunk on Debian Sid with GCC 4.7.2

Post by mdriftmeyer »

Erwin Coumans wrote:Please check out latest trunk (and remove old cmake generated files)

The multithreaded/opencl stuff is not tested under linux, and is disabled by default now.

How do you install clang/llvm and compile Bullet with it, in a nutshell?
Thanks,
Erwin
Did you just not read what I wrote? Clang Trunk builds cleanly. GCC 4.7.2 now builds clean with the stdin.h inclusion that was updated in Bullet Trunk.

Building for LLVM/Clang Trunk is straight /usr/local [/lib, /bin, /share/llvm, /include/clang, /include/clang-c, /include/llvm-c, /include/llvm] with LLVM-Clang Community present pathways from the Dev Community that does include Debian devs adding Linux support of gcc where necessary.

Debian [http://packages.debian.org/experimental/llvm-3.1] which puts stuff in /usr/include/llvm-3.1/llvm, /usr/include/clang, /usr/include/clang-c where they then separate 3.1 as /usr/include/clang/3.1 [/lib/linux, include] with compiler-rt references under the [/3.1/lib/linux/...libclang_rt.asan-x86_64.a,...libclang_rt.profile-x86_64.a, etc]. They've placed their configurations for st, ll, cxx, cpp, c++ and c under /etc/llvm with an example config file as follows:

# LLVM Assembly Config File For llvmc
version="1.0"
lang.name=LLVM Assembly
preprocessor.command=
preprocessor.required=false
translator.command=%bindir%/llvm-as %in% -o %out%
translator.preprocesses=true
translator.required=TRUE
optimizer.command=%bindir%/opt %in% -o %out% %opt% %args%
optimizer.translates=no
assembler.command=%bindir%/llc %in% -o %out%

Probably not the smartest approach, but that's how they are doing it.

FAILING:
Debian LLVM/Clang 3.1.x from Experimental is what is now failing only. I'll have to give Debian proper a heads up on this so they can fix the posix problem in their binaries.

The Multithreaded OpenCL stuff is now building cleanly [not noise free, but still building], with GCC 4.7.2 and Clang Trunk, with the known outlier being Debian LLVM/Clang 3.1.x Experimental which presently isi

Given: Nvidia Binaries latest for Linux and all the Cuda/OpenCL debs installed from Experimental bringing me to nvidia-* stack 304.51-1.1

http://packages.debian.org/experimental ... libopencl1

Nvidia OpenCL Multithread support: http://developer.download.nvidia.com/co ... mples.html

I've got CUDA 5 installed from Debian to boot that brings in all their OpenCL changes.