Created
March 26, 2013 05:35
-
-
Save crabtw/5243377 to your computer and use it in GitHub Desktop.
cross scan-build wrappers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
TARGET="mips-unknown-linux-uclibc" | |
TOOLCHAIN_PATH="$HOME/x-tools/$TARGET" | |
SYSROOT="$HOME/sysroot/$TARGET" | |
SCAN_BUILD_DIR="$HOME/src/llvm-svn/tools/clang/tools/scan-build" | |
SCAN_BUILD_CC="$HOME/bin/$TARGET-clang" | |
SCAN_BUILD_CXX="$HOME/bin/$TARGET-clang++" | |
SCAN_BUILD_OUT="analysis" | |
export PATH="$SCAN_BUILD_DIR:$TOOLCHAIN_PATH/bin:$PATH" | |
export CC="$TARGET-gcc" | |
export CPP="$TARGET-cpp" | |
export CXX="$TARGET-g++" | |
export LD="$TARGET-ld" | |
export AR="$TARGET-ar" | |
export AS="$TARGET-as" | |
export STRIP="$TARGET-strip" | |
export CFLAGS="--sysroot=$SYSROOT $CFLAGS" | |
export CXXFLAGS="--sysroot=$SYSROOT $CXXFLAGS" | |
export LDFLAGS="--sysroot=$SYSROOT $LDFLAGS" | |
export CPPFLAGS="--sysroot=$SYSROOT $CPPFLAGS" | |
scan-build \ | |
--use-analyzer="$SCAN_BUILD_CC" \ | |
--use-cc="$SCAN_BUILD_CC" \ | |
--use-c++="$SCAN_BUILD_CXX" \ | |
-o "$SCAN_BUILD_OUT" \ | |
\ | |
cmake -DCMAKE_TOOLCHAIN_FILE="$HOME/cmake/cross.cmake" $* |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
TARGET="mips-unknown-linux-uclibc" | |
TOOLCHAIN_PATH="$HOME/x-tools/$TARGET" | |
SYSROOT="$HOME/sysroot/$TARGET" | |
SCAN_BUILD_DIR="$HOME/src/llvm-svn/tools/clang/tools/scan-build" | |
SCAN_BUILD_CC="$HOME/bin/$TARGET-clang" | |
SCAN_BUILD_CXX="$HOME/bin/$TARGET-clang++" | |
SCAN_BUILD_OUT="analysis" | |
export PATH="$SCAN_BUILD_DIR:$TOOLCHAIN_PATH/bin:$PATH" | |
export CC="$TARGET-gcc" | |
export CPP="$TARGET-cpp" | |
export CXX="$TARGET-g++" | |
export LD="$TARGET-ld" | |
export AR="$TARGET-ar" | |
export AS="$TARGET-as" | |
export STRIP="$TARGET-strip" | |
export CFLAGS="--sysroot=$SYSROOT $CFLAGS" | |
export CXXFLAGS="--sysroot=$SYSROOT $CXXFLAGS" | |
export LDFLAGS="--sysroot=$SYSROOT $LDFLAGS" | |
export CPPFLAGS="--sysroot=$SYSROOT $CPPFLAGS" | |
export PKG_CONFIG_SYSROOT_DIR="$SYSROOT" | |
scan-build \ | |
--use-analyzer="$SCAN_BUILD_CC" \ | |
--use-cc="$SCAN_BUILD_CC" \ | |
--use-c++="$SCAN_BUILD_CXX" \ | |
-o "$SCAN_BUILD_OUT" \ | |
\ | |
$* --host="$TARGET" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Index: ccc-analyzer | |
=================================================================== | |
--- ccc-analyzer (revision 177849) | |
+++ ccc-analyzer (working copy) | |
@@ -359,7 +359,8 @@ | |
'-v' => 0, | |
'-fpascal-strings' => 0, | |
'-mmacosx-version-min' => 0, # This is really a 1 argument, but always has '=' | |
- '-miphoneos-version-min' => 0 # This is really a 1 argument, but always has '=' | |
+ '-miphoneos-version-min' => 0, # This is really a 1 argument, but always has '=' | |
+ '--sysroot' => 0 | |
); | |
my %IgnoredOptionMap = ( | |
@@ -399,7 +400,8 @@ | |
); | |
my %UniqueOptions = ( | |
- '-isysroot' => 0 | |
+ '-isysroot' => 0, | |
+ '--sysroot' => 0 | |
); | |
##----------------------------------------------------------------------------## |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set(CMAKE_SYSTEM_NAME Linux) | |
if(NOT ("$ENV{CC}" STREQUAL "")) | |
set(CMAKE_C_COMPILER "$ENV{CC}") | |
endif() | |
if(NOT ("$ENV{CXX}" STREQUAL "")) | |
set(CMAKE_CXX_COMPILER "$ENV{CXX}") | |
endif() | |
if(NOT ("$ENV{CFLAGS}" STREQUAL "")) | |
set(CMAKE_C_FLAGS "$ENV{CFLAGS}") | |
endif() | |
if(NOT ("$ENV{CXXFLAGS}" STREQUAL "")) | |
set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS}") | |
endif() | |
if(NOT ("$ENV{LDFLAGS}" STREQUAL "")) | |
set(CMAKE_EXE_LINKER_FLAGS "$ENV{LDFLAGS}") | |
set(CMAKE_MODULE_LINKER_FLAGS "$ENV{LDFLAGS}") | |
set(CMAKE_SHARED_LINKER_FLAGS "$ENV{LDFLAGS}") | |
endif() | |
set(CMAKE_INSTALL_SO_NO_EXE 0) | |
if(NOT ("$ENV{SYSROOT}" STREQUAL "")) | |
set(CMAKE_FIND_ROOT_PATH "$ENV{SYSROOT}") | |
endif() | |
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) | |
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) | |
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) | |
if(NOT ("$ENV{SYSROOT}" STREQUAL "")) | |
set(ENV{PKG_CONFIG_SYSROOT_DIR} "$ENV{SYSROOT}") | |
endif() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
TARGET="mips-unknown-linux-uclibc" | |
TOOLCHAIN_PATH="$HOME/x-tools/$TARGET" | |
SCAN_BUILD_DIR="$HOME/src/llvm-svn/tools/clang/tools/scan-build" | |
SCAN_BUILD_CC="$HOME/bin/$TARGET-clang" | |
SCAN_BUILD_CXX="$HOME/bin/$TARGET-clang++" | |
SCAN_BUILD_OUT="analysis" | |
SCAN_BUILD_OPTS="-maxloop 100" | |
export PATH="$SCAN_BUILD_DIR:$TOOLCHAIN_PATH/bin:$PATH" | |
scan-build \ | |
--use-analyzer="$SCAN_BUILD_CC" \ | |
--use-cc="$SCAN_BUILD_CC" \ | |
--use-c++="$SCAN_BUILD_CXX" \ | |
-o "$SCAN_BUILD_OUT" \ | |
$SCAN_BUILD_OPTS \ | |
\ | |
make $* |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let home = Sys.getenv "HOME" | |
let llvm_path = home ^ "/src/llvm-svn/b/Release+Asserts/bin" | |
let toolchain_dir = "/usr/local/bin/x-tools/mips-unknown-linux-uclibc" | |
let toolchain_path = toolchain_dir ^ "/bin" | |
let settings = [| | |
"clang"; | |
"-target"; "mips-unknown-linux-uclibc"; | |
"-msoft-float"; | |
"-mips32r2"; | |
"-fPIC"; | |
"--sysroot"; toolchain_dir ^ "/mips-unknown-linux-uclibc/sysroot"; | |
"-B" ^ toolchain_dir ^ "/lib/gcc/mips-unknown-linux-uclibc/4.3.2"; | |
"-L" ^ toolchain_dir ^ "/lib/gcc/mips-unknown-linux-uclibc/4.3.2"; | |
(*"-integrated-as";*) | |
"-Qunused-arguments" | |
|] | |
let args = | |
let has_cc1 = Array.fold_left (fun x a -> x || a = "-cc1") false Sys.argv in | |
let prefix = if has_cc1 then [| settings.(0) |] else settings in | |
let cc_args = Array.sub Sys.argv 1 (Array.length Sys.argv - 1) in | |
Array.append prefix cc_args | |
let prepend_path path = | |
let cur = Unix.getenv "PATH" in | |
let new_path = path ^ ":" ^ cur in | |
Unix.putenv "PATH" new_path | |
let () = | |
let () = prepend_path toolchain_path in | |
let () = prepend_path llvm_path in | |
Unix.execvp ("clang") args |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment