The Following User Says Thank You to jkt For This Useful Post: | ||
![]() |
2013-05-13
, 19:53
|
Posts: 2 |
Thanked: 1 time |
Joined on May 2013
|
#2
|
![]() |
2013-08-13
, 02:48
|
Posts: 20 |
Thanked: 54 times |
Joined on Sep 2010
|
#3
|
#!/bin/bash # Compiler wrapper for using clang within a cmake-based buildsystem for producing MeeGo Harmattan packages # Written by Jan Kundrát <jkt@flaska.net> during a sleepless night # Licensed under a three-clause BSD license # # # 1) Create a new Madde target, i.e. "clang-rm680", a blank directory within ~/QtSDK/Madde/targets/ # # 2) Set up the following directory structure: # jkt@svist ~/QtSDK/Madde/targets/clang-rm680 $ tree # . # |-- bin # | |-- addr2line -> ../../harmattan_10.2011.34-1_rt1.2/bin/addr2line # | |-- ar -> ../../harmattan_10.2011.34-1_rt1.2/bin/ar # | |-- as -> ../../harmattan_10.2011.34-1_rt1.2/bin/as # | |-- c++ # | |-- c++filt -> ../../harmattan_10.2011.34-1_rt1.2/bin/c++filt # | |-- cc -> ../../harmattan_10.2011.34-1_rt1.2/bin/cc # | |-- cpp -> ../../harmattan_10.2011.34-1_rt1.2/bin/cpp # | |-- g++ -> ../../harmattan_10.2011.34-1_rt1.2/bin/g++ # | |-- gcc -> ../../harmattan_10.2011.34-1_rt1.2/bin/gcc # | |-- gccbug -> ../../harmattan_10.2011.34-1_rt1.2/bin/gccbug # | |-- gcov -> ../../harmattan_10.2011.34-1_rt1.2/bin/gcov # | |-- gdb -> ../../harmattan_10.2011.34-1_rt1.2/bin/gdb # | |-- gdbtui -> ../../harmattan_10.2011.34-1_rt1.2/bin/gdbtui # | |-- gprof -> ../../harmattan_10.2011.34-1_rt1.2/bin/gprof # | |-- ld -> ../../harmattan_10.2011.34-1_rt1.2/bin/ld # | |-- lrelease -> ../../harmattan_10.2011.34-1_rt1.2/bin/lrelease # | |-- lupdate -> ../../harmattan_10.2011.34-1_rt1.2/bin/lupdate # | |-- mgen -> ../../harmattan_10.2011.34-1_rt1.2/bin/mgen # | |-- mmoc -> ../../harmattan_10.2011.34-1_rt1.2/bin/mmoc # | |-- mmoc.pl -> ../../harmattan_10.2011.34-1_rt1.2/bin/mmoc.pl # | |-- moc -> ../../harmattan_10.2011.34-1_rt1.2/bin/moc # | |-- nm -> ../../harmattan_10.2011.34-1_rt1.2/bin/nm # | |-- objcopy -> ../../harmattan_10.2011.34-1_rt1.2/bin/objcopy # | |-- objdump -> ../../harmattan_10.2011.34-1_rt1.2/bin/objdump # | |-- qmake -> ../../harmattan_10.2011.34-1_rt1.2/bin/qmake # | |-- qt.conf -> ../../harmattan_10.2011.34-1_rt1.2/bin/qt.conf # | |-- ranlib -> ../../harmattan_10.2011.34-1_rt1.2/bin/ranlib # | |-- rcc -> ../../harmattan_10.2011.34-1_rt1.2/bin/rcc # | |-- readelf -> ../../harmattan_10.2011.34-1_rt1.2/bin/readelf # | |-- size -> ../../harmattan_10.2011.34-1_rt1.2/bin/size # | |-- strings -> ../../harmattan_10.2011.34-1_rt1.2/bin/strings # | |-- strip -> ../../harmattan_10.2011.34-1_rt1.2/bin/strip # | `-- uic -> ../../harmattan_10.2011.34-1_rt1.2/bin/uic # |-- config.sh -> ../harmattan_10.2011.34-1_rt1.2/config.sh # |-- information -> ../harmattan_10.2011.34-1_rt1.2/information # |-- lib -> ../harmattan_10.2011.34-1_rt1.2/lib # `-- specs -> ../harmattan_10.2011.34-1_rt1.2/specs # # 3) Put this file into the bin/c++ # # 4) When building, use "clang-rm680" as the Madde target # crude hack for detecting whether to forward this to GCC's c++ in case it's about linking... echo "${@}" | grep -q -E -- '-rdynamic|-soname' if [[ $? -eq 1 ]]; then # Funny fact: clang 3.3 doesn't do exceptions on ARM by default # See http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-February/059015.html # and the rest of the thread clang++ -target armv7l-linux-gnueabi -mfloat-abi=hard \ -mllvm -arm-enable-ehabi -mllvm -arm-enable-ehabi-descriptors \ --sysroot ${SYSROOT_DIR} -integrated-as $@ # Theoretically, we could perhaps pass the -B $(dirname "${BASH_SOURCE[0]}") # but that should not be needed as we really want to delegate the linking to # the GNU toolchain. # This delegation is required because I have no idea how to persuade clang++ # to not strip the resulting ELFs else $(dirname $(readlink -f $(dirname "${BASH_SOURCE[0]}")/ld))/c++ $@ fi
![]() |
2014-09-19
, 03:15
|
Posts: 26 |
Thanked: 8 times |
Joined on Nov 2013
@ Argentina
|
#4
|
#!/bin/bash # Compiler wrapper for using clang within a cmake-based buildsystem for producing MeeGo Harmattan packages # Written by Jan Kundrát <jkt@flaska.net> during a sleepless night # Licensed under a three-clause BSD license # # # 1) Create a new Madde target, i.e. "clang-rm680", a blank directory within ~/QtSDK/Madde/targets/ # # 2) Set up the following directory structure: # jkt@svist ~/QtSDK/Madde/targets/clang-rm680 $ tree # . # |-- bin # | |-- addr2line -> ../../harmattan_10.2011.34-1_rt1.2/bin/addr2line # | |-- ar -> ../../harmattan_10.2011.34-1_rt1.2/bin/ar # | |-- as -> ../../harmattan_10.2011.34-1_rt1.2/bin/as # | |-- c++ # | |-- c++filt -> ../../harmattan_10.2011.34-1_rt1.2/bin/c++filt # | |-- cc -> ../../harmattan_10.2011.34-1_rt1.2/bin/cc # | |-- cpp -> ../../harmattan_10.2011.34-1_rt1.2/bin/cpp # | |-- g++ -> ../../harmattan_10.2011.34-1_rt1.2/bin/g++ # | |-- gcc -> ../../harmattan_10.2011.34-1_rt1.2/bin/gcc # | |-- gccbug -> ../../harmattan_10.2011.34-1_rt1.2/bin/gccbug # | |-- gcov -> ../../harmattan_10.2011.34-1_rt1.2/bin/gcov # | |-- gdb -> ../../harmattan_10.2011.34-1_rt1.2/bin/gdb # | |-- gdbtui -> ../../harmattan_10.2011.34-1_rt1.2/bin/gdbtui # | |-- gprof -> ../../harmattan_10.2011.34-1_rt1.2/bin/gprof # | |-- ld -> ../../harmattan_10.2011.34-1_rt1.2/bin/ld # | |-- lrelease -> ../../harmattan_10.2011.34-1_rt1.2/bin/lrelease # | |-- lupdate -> ../../harmattan_10.2011.34-1_rt1.2/bin/lupdate # | |-- mgen -> ../../harmattan_10.2011.34-1_rt1.2/bin/mgen # | |-- mmoc -> ../../harmattan_10.2011.34-1_rt1.2/bin/mmoc # | |-- mmoc.pl -> ../../harmattan_10.2011.34-1_rt1.2/bin/mmoc.pl # | |-- moc -> ../../harmattan_10.2011.34-1_rt1.2/bin/moc # | |-- nm -> ../../harmattan_10.2011.34-1_rt1.2/bin/nm # | |-- objcopy -> ../../harmattan_10.2011.34-1_rt1.2/bin/objcopy # | |-- objdump -> ../../harmattan_10.2011.34-1_rt1.2/bin/objdump # | |-- qmake -> ../../harmattan_10.2011.34-1_rt1.2/bin/qmake # | |-- qt.conf -> ../../harmattan_10.2011.34-1_rt1.2/bin/qt.conf # | |-- ranlib -> ../../harmattan_10.2011.34-1_rt1.2/bin/ranlib # | |-- rcc -> ../../harmattan_10.2011.34-1_rt1.2/bin/rcc # | |-- readelf -> ../../harmattan_10.2011.34-1_rt1.2/bin/readelf # | |-- size -> ../../harmattan_10.2011.34-1_rt1.2/bin/size # | |-- strings -> ../../harmattan_10.2011.34-1_rt1.2/bin/strings # | |-- strip -> ../../harmattan_10.2011.34-1_rt1.2/bin/strip # | `-- uic -> ../../harmattan_10.2011.34-1_rt1.2/bin/uic # |-- config.sh -> ../harmattan_10.2011.34-1_rt1.2/config.sh # |-- information -> ../harmattan_10.2011.34-1_rt1.2/information # |-- lib -> ../harmattan_10.2011.34-1_rt1.2/lib # `-- specs -> ../harmattan_10.2011.34-1_rt1.2/specs # # 3) Put this file into the bin/c++ # # 4) When building, use "clang-rm680" as the Madde target # crude hack for detecting whether to forward this to GCC's c++ in case it's about linking... echo "${@}" | grep -q -E -- '-rdynamic|-soname' if [[ $? -eq 1 ]]; then # Funny fact: clang 3.3 doesn't do exceptions on ARM by default # See http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-February/059015.html # and the rest of the thread clang++ -target armv7l-linux-gnueabi -mfloat-abi=hard --sysroot=${SYSROOT_DIR} -integrated-as $@ #-mllvm -arm-enable-ehabi -mllvm -arm-enable-ehabi-descriptors no need in 3.5.0 http://llvm.org/releases/3.5.0/docs/ReleaseNotes.html # resource http://clang.llvm.org/docs/CrossCompilation.html # Theoretically, we could perhaps pass the -B $(dirname "${BASH_SOURCE[0]}") # but that should not be needed as we really want to delegate the linking to # the GNU toolchain. # This delegation is required because I have no idea how to persuade clang++ # to not strip the resulting ELFs else $(dirname $(readlink -f $(dirname "${BASH_SOURCE[0]}")/ld))/c++ $@ fi
The Following User Says Thank You to gdelca5 For This Useful Post: | ||
Is there a compiler one could use which has support for more C++11 features (like the lambdas or nullptr) and at the same time doesn't require an extensive update to the libstdc++ installed on device? Basically, either a recent clang or GCC 4.7+.