Skip to content

Commit

Permalink
Cleanup, readme, some info
Browse files Browse the repository at this point in the history
  • Loading branch information
extrowerk committed Nov 3, 2020
1 parent 7bf3043 commit 8b33a56
Show file tree
Hide file tree
Showing 6 changed files with 630 additions and 11 deletions.
31 changes: 28 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Tar will be also required.

/-/

How to use:
How to build:

1) open a Terminal
2) ```sudo mkdir -p /opt/qnx800```
Expand All @@ -26,10 +26,35 @@ How to use:

/-/

How to use:

Source the environment vars:
```
source ~/bbndk/bbndk-env_10_3_1_995.sh
```

Compiling a C program:
```
/opt/qnx800/host/linux/x86_64/usr/bin/arm-unknown-nto-qnx8.0.0eabi-gcc test.c -o test
```

Compiling a C++ program:
```
/opt/qnx800/host/linux/x86_64/usr/bin/arm-unknown-nto-qnx8.0.0eabi-g++ hello.cpp -o hello_cpp -I/opt/qnx800/target/qnx6/usr/include/c++/5.4.0 -I/opt/qnx800/target/qnx6/usr/include/c++/5.4.0/arm-unknown-nto-qnx8.0.0eabi -L/opt/qnx800/host/linux/x86_64/usr/arm-unknown-nto-qnx8.0.0eabi/lib -static
```
Consider passing -static too to remove the runtime dependency.

Compiling an auto* package:
```
CC=/opt/qnx800/host/linux/x86_64/usr/bin/arm-unknown-nto-qnx8.0.0eabi-gcc ./configure --target arm-unknown-nto-qnx8.0.0eabi
```

/-/

We can't update the runtime libs on the phone, but:
- libgcc should be ok, it rarely changes
- libgcc should be ok, it rarely changes (Checked, seems to be true)
- you can also link your programs with -static-libgcc so they don't use libgcc_s.so.1 anyway
- the C++ runtime library, libstdc++.so, is however a problem
- the C++ runtime library, libstdc++.so, is however a problem (Checked, the compiled mini-program works on the phone)
- link with -static-libstdc++ to not depend on libstdc++.so

Consult the build.sh file for more information.
Expand Down
20 changes: 12 additions & 8 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

export HOST_CC="gcc" # default: gcc
export CPU_COUNT="4"
export LANGS="c,c++, fortran" # default: c,c++ but fortran should also work
export LANGS="c,c++" # default: c,c++ but fortran should also work

# ----------------------------------------

Expand Down Expand Up @@ -107,7 +107,7 @@ export CFLAGS_FOR_BUILD="" # maybe unneeded
export CFLAGS_FOR_TARGET="-g" # TODO: check why as bails out without this.
export CXXFLAGS="" # maybe unneeded
export CXXFLAGS_FOR_BUILD="" # maybe unneeded
export CXXFLAGS_FOR_TARGET="-g" # -I/home/szilard/bbndk/target_10_3_1_995/qnx6/usr/include/cpp/c TODO: check why as bails out without this.
export CXXFLAGS_FOR_TARGET="-g" # TODO: check why as bails out without this.


../bb10-gcc/configure \
Expand Down Expand Up @@ -145,13 +145,17 @@ export CXXFLAGS_FOR_TARGET="-g" # -I/home/szilard/bbndk/target_10_3_1_995/qnx6/u
CC="$HOST_CC" \
LDFLAGS="-Wl,-s " \
AUTOMAKE=: AUTOCONF=: AUTOHEADER=: AUTORECONF=: ACLOCAL=:

#make all-gcc -j "$CPU_COUNT"
#make all-target-libgcc -j "$CPU_COUNT"

make all -j "$CPU_COUNT"
#make install-gcc
#make install-target-libgcc
make install-strip

# We need to create a symlink: libstdc++.so > libc++.so
# CLEANUP

# We need to create a symlink: libstdc++.{a,so} > libc++.{a,so}
# This is strange, do QNX cals it so?

LIBDIR="$PREFIX/$TARGET_ABI/lib"
ln -s $LIBDIR/libstdc++.so $LIBDIR/libc++.so
ln -s $LIBDIR/libstdc++.a $LIBDIR/libc++.a

echo "Have fun!"
142 changes: 142 additions & 0 deletions for_information/original_GCC_4.6.3_dumpspecs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
*asm:
%{EB:-EB} %{!EB:-EL} %{EL:-EL} %{fpic|fPIC:--defsym __PIC__=1} %{mcpu=*:-mcpu=%*} %{march=*:-march=%*} %{mfloat-abi=*} %{mfpu=*} %{mapcs-float:-mfloat} %{!mfloat-abi=*: -mfloat-abi=softfp} %{!march=*: -march=armv7-a} %{!mfpu=*: -mfpu=vfpv3-d16} -meabi=5

*asm_debug:
%{!g0:%{gstabs*:--gstabs}%{!gstabs*:%{g*:--gdwarf2}}} %{fdebug-prefix-map=*:--debug-prefix-map %*}

*asm_final:


*asm_options:
%{-target-help:%:print-asm-header()} %{v} %{w:-W} %{I*} %a %Y %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O}

*invoke_as:
%{!fwpa: %{fcompare-debug=*|fdump-final-insns=*:%:compare-debug-dump-opt()} %{!S:-o %|.s |
as %(asm_options) %m.s %A } }

*cpp:
%(subtarget_cpp_spec) %{msoft-float:%{mhard-float: %e-msoft-float and -mhard_float may not be used together}} %{mbig-endian:%{mlittle-endian: %e-mbig-endian and -mlittle-endian may not be used together}}

*cpp_options:
%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w} %{f*} %{g*:%{!g0:%{g*} %{!fno-working-directory:-fworking-directory}}} %{O*} %{undef} %{save-temps*:-fpch-preprocess} %(ssp_default)

*cpp_debug_options:
%{d*}

*cpp_unique_options:
%{!Q:-quiet} %{nostdinc*} %{C} %{CC} %{v} %{I*&F*} %{P} %I %{MD:-MD %{!o:%b.d}%{o*:%.d%*}} %{MMD:-MMD %{!o:%b.d}%{o*:%.d%*}} %{M} %{MM} %{MF*} %{MG} %{MP} %{MQ*} %{MT*} %{!E:%{!M:%{!MM:%{!MT:%{!MQ:%{MD|MMD:%{o*:-MQ %*}}}}}}} %{remap} %{g3|ggdb3|gstabs3|gcoff3|gxcoff3|gvms3:-dD} %{!iplugindir*:%{fplugin*:%:find-plugindir()}} %{H} %C %{D*&U*&A*} %{i*} %Z %i %{fmudflap:-D_MUDFLAP -include mf-runtime.h} %{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h} %{E|M|MM:%W{o*}}

*trad_capable_cpp:
cc1 -E %{traditional|traditional-cpp:-traditional-cpp}

*cc1:
%{EB:-mbig-endian} %{!EB:-mlittle-endian}

*cc1_options:
%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}} %{!iplugindir*:%{fplugin*:%:find-plugindir()}} %1 %{!Q:-quiet} %{!dumpbase:-dumpbase %B} %{d*} %{m*} %{aux-info*} %{fcompare-debug-second:%:compare-debug-auxbase-opt(%b)} %{!fcompare-debug-second:%{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}}%{!c:%{!S:-auxbase %b}} %{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi&trigraphs} %{v:-version} %{pg:-p} %{p} %{f*} %{undef} %{Qn:-fno-ident} %{Qy:} %{-help:--help} %{-target-help:--target-help} %{-version:--version} %{-help=*:--help=%*} %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}} %{fpic|fPIC|fpie|fPIE|fno-pic|fno-PIC|fno-pie|fno-PIE|static|shared|nostdlib|nostartfiles|D__KERNEL__:;:-fPIE} %{static:%{pie:%e-static and -pie are incompatible}} %{fsyntax-only:-o %j} %{-param*} %{fmudflap|fmudflapth:-fno-builtin -fno-merge-constants} %{coverage:-fprofile-arcs -ftest-coverage}

*cc1plus:


*link_gcc_c_sequence:
%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}

*link_ssp:
%{fstack-protector:}

*ssp_default:
%{!fno-stack-protector:%{!fstack-protector:%{!fstack-protector-all:%{!ffreestanding:%{!nostdlib:-fstack-protector-strong}}}}}

*endfile:
crtend.o%s %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7/lib/crtn.o

*link:
%{h*} %{v:-V} %{b} %{Wl,*:%*} %{!r:--build-id=md5} %{static:-Bstatic} %{shared} %{symbolic:-Bsymbolic} %{G:-G} %{MAP:-Map mapfile} %{!shared:-dynamic-linker /usr/lib/ldqnx.so.2} -m armnto -X --hash-style=gnu %{EB:-EB} %{!EB:-EL} %{EL:-EL}

*lib:
-L %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7/lib/gcc/%v1.%v2.%v3 -L %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7/lib -L %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7/usr/lib -L %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7/opt/lib -rpath-link %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7/lib/gcc/%v1.%v2.%v3:%$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7/lib:%$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7/usr/lib:%$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7/opt/lib %{!symbolic: -lc -Bstatic %{static|nopie: -lc;:-lcS}}

*mfwrap:
%{static: %{fmudflap|fmudflapth: --wrap=malloc --wrap=free --wrap=calloc --wrap=realloc --wrap=mmap --wrap=munmap --wrap=alloca} %{fmudflapth: --wrap=pthread_create}} %{fmudflap|fmudflapth: --wrap=main}

*mflib:
%{fmudflap: -export-dynamic -lmudflap -lsocket %{static:%(link_gcc_c_sequence) -lmudflap -lsocket -lbacktrace}} %{fmudflapth: -export-dynamic -lmudflapth -lsocket %{static:%(link_gcc_c_sequence) -lmudflapth -lsocket -lbacktrace}}

*link_gomp:


*libgcc:
-lgcc

*startfile:
%{!shared: %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7/lib/%{pg:m}%{p:mcrt1.o;pie:crt1S.o%s;static|nopie:crt1.o%s;:crt1S.o%s} } %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7/lib/crti.o crtbegin.o%s

*cross_compile:
1

*version:
4.6.3

*multilib:
. ;

*multilib_defaults:
marm mlittle-endian msoft-float mno-thumb-interwork fno-leading-underscore

*multilib_extra:


*multilib_matches:


*multilib_exclusions:


*multilib_options:


*linker:
collect2

*linker_plugin_file:


*lto_wrapper:


*lto_gcc:


*link_libgcc:
%D

*md_exec_prefix:


*md_startfile_prefix:


*md_startfile_prefix_1:


*startfile_prefix_spec:


*sysroot_spec:
--sysroot=%R

*sysroot_suffix_spec:


*sysroot_hdrs_suffix_spec:


*subtarget_cpp_spec:
%{!nostdinc: -isystem %$QNX_HOST/usr/lib/gcc/arm-unknown-nto-qnx8.0.0eabi/%v1.%v2.%v3/include -isystem %$QNX_TARGET/usr/include/c++/%v1.%v2.%v3 -isystem %$QNX_TARGET/usr/include/c++/%v1.%v2.%v3/arm-unknown-nto-qnx8.0.0eabi -isystem %$QNX_TARGET/usr/include/c++/%v1.%v2.%v3/backward -isysroot %$QNX_TARGET/ } %(cpp_cpu) %{!EB:-D__LITTLEENDIAN__ -D__ARMEL__} %{EB:-D__BIGENDIAN__ -D__ARMEB__} %{posix:-D_POSIX_SOURCE}

*subtarget_asm_float_spec:
%{mapcs-float:-mfloat} %{!mhard-float:-mfpu=softvfp} %{mhard-float:-mfpu=vfp}

*link_command:
%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S: %(linker) %{!fno-use-linker-plugin:%{flto|flto=*|fuse-linker-plugin: -plugin %(linker_plugin_file) -plugin-opt=%(lto_wrapper) -plugin-opt=-fresolution=%u.res %{!nostdlib:%{!nodefaultlibs:%:pass-through-libs(%(link_gcc_c_sequence))}} }} %{flto|flto=*:%<fcompare-debug*} %{flto} %{flto=*} %l %{pie:-pie} %{shared|Bshareable: %{!no-warn-shared-textrel:--warn-shared-textrel}} %{static|Bstatic|shared|Bshareable|i|r|pie|nopie:;:-pie %{!no-warn-shared-textrel:--warn-shared-textrel}} %{fuse-ld=*:-fuse-ld=%*} %X %{o*} %{e*} %{N} %{n} %{r} %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} %{static:} %{L*} %(mfwrap) %(link_libgcc) %o %{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)} %(mflib) %{fsplit-stack: --wrap=pthread_create} %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}} %{!nostdlib:%{!nostartfiles:%E}} %{T*} }}}}}}

153 changes: 153 additions & 0 deletions for_information/original_GCC_4.8.3_dumpspecs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
*asm:
%{EB:-EB} %{!EB:-EL} %{EL:-EL} %{fpic|fPIC:--defsym __PIC__=1} %{mcpu=*:-mcpu=%*} %{march=*:-march=%*} %{mfloat-abi=*} %{mfpu=*} %{mapcs-float:-mfloat} -meabi=5

*asm_debug:
%{!g0:%{gstabs*:--gstabs}%{!gstabs*:%{g*:--gdwarf2}}} %{fdebug-prefix-map=*:--debug-prefix-map %*}

*asm_final:
%{gsplit-dwarf:
objcopy --extract-dwo %{c:%{o*:%*}%{!o*:%b%O}}%{!c:%U%O} %{c:%{o*:%:replace-extension(%{o*:%*} .dwo)}%{!o*:%b.dwo}}%{!c:%b.dwo}
objcopy --strip-dwo %{c:%{o*:%*}%{!o*:%b%O}}%{!c:%U%O} }

*asm_options:
%{-target-help:%:print-asm-header()} %{v} %{w:-W} %{I*} %a %Y %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O}

*invoke_as:
%{!fwpa: %{fcompare-debug=*|fdump-final-insns=*:%:compare-debug-dump-opt()} %{!S:-o %|.s |
as %(asm_options) %m.s %A } }

*cpp:
%(subtarget_cpp_spec) %{mfloat-abi=soft:%{mfloat-abi=hard: %e-mfloat-abi=soft and -mfloat-abi=hard may not be used together}} %{mbig-endian:%{mlittle-endian: %e-mbig-endian and -mlittle-endian may not be used together}}

*cpp_options:
%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w} %{f*} %{g*:%{!g0:%{g*} %{!fno-working-directory:-fworking-directory}}} %{O*} %{undef} %{save-temps*:-fpch-preprocess} %(ssp_default)

*cpp_debug_options:
%{d*}

*cpp_unique_options:
%{!Q:-quiet} %{nostdinc*} %{C} %{CC} %{v} %{I*&F*} %{P} %I %{MD:-MD %{!o:%b.d}%{o*:%.d%*}} %{MMD:-MMD %{!o:%b.d}%{o*:%.d%*}} %{M} %{MM} %{MF*} %{MG} %{MP} %{MQ*} %{MT*} %{!E:%{!M:%{!MM:%{!MT:%{!MQ:%{MD|MMD:%{o*:-MQ %*}}}}}}} %{remap} %{g3|ggdb3|gstabs3|gcoff3|gxcoff3|gvms3:-dD} %{!iplugindir*:%{fplugin*:%:find-plugindir()}} %{H} %C %{D*&U*&A*} %{i*} %Z %i %{fmudflap:-D_MUDFLAP -include mf-runtime.h} %{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h} %{E|M|MM:%W{o*}}

*trad_capable_cpp:
cc1 -E %{traditional|traditional-cpp:-traditional-cpp}

*cc1:
%{EB:-mbig-endian} %{!EB:-mlittle-endian}

*cc1_options:
%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}} %{!iplugindir*:%{fplugin*:%:find-plugindir()}} %1 %{!Q:-quiet} %{!dumpbase:-dumpbase %B} %{d*} %{m*} %{aux-info*} %{fcompare-debug-second:%:compare-debug-auxbase-opt(%b)} %{!fcompare-debug-second:%{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}}%{!c:%{!S:-auxbase %b}} %{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi&trigraphs} %{v:-version} %{pg:-p} %{p} %{f*} %{undef} %{Qn:-fno-ident} %{Qy:} %{-help:--help} %{-target-help:--target-help} %{-version:--version} %{-help=*:--help=%*} %{fpic|fPIC|fpie|fPIE|fno-pic|fno-PIC|fno-pie|fno-PIE|static|shared|nostdlib|nostartfiles|D__KERNEL__:;:-fPIE} %{static:%{pie:%e-static and -pie are incompatible}} %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}} %{fsyntax-only:-o %j} %{-param*} %{fmudflap|fmudflapth:-fno-builtin -fno-merge-constants} %{coverage:-fprofile-arcs -ftest-coverage}

*cc1plus:


*link_gcc_c_sequence:
%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}

*link_ssp:
%{fstack-protector:}

*ssp_default:
%{!fno-stack-protector:%{!fstack-protector:%{!fstack-protector-all:%{!ffreestanding:%{!nostdlib:-fstack-protector-strong}}}}}

*endfile:
crtend.o%s %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7%{mfloat-abi=hard:hf}/lib/crtn.o

*link:
%{!static:--eh-frame-hdr} %{h*} %{v:-V} %{b} %{Wl,*:%*} %{!r:--build-id=md5} %{static:-Bstatic} %{shared} %{symbolic:-Bsymbolic} %{G:-G} %{MAP:-Map mapfile} %{!shared: %{!static: %{rdynamic:-export-dynamic}} --dynamic-linker /usr/lib/ldqnx.so.2} -m armnto -X %{EB:-EB} %{!EB:-EL} %{EL:-EL}

*lib:
-L %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7%{mfloat-abi=hard:hf}/lib/gcc/%v1.%v2.%v3 -L %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7%{mfloat-abi=hard:hf}/lib -L %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7%{mfloat-abi=hard:hf}/usr/lib -L %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7%{mfloat-abi=hard:hf}/opt/lib -rpath-link %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7%{mfloat-abi=hard:hf}/lib/gcc/%v1.%v2.%v3:%$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7%{mfloat-abi=hard:hf}/lib:%$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7%{mfloat-abi=hard:hf}/usr/lib:%$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7%{mfloat-abi=hard:hf}/opt/lib %{!symbolic: -lc -Bstatic %{static|nopie: -lc;:-lcS}}

*mfwrap:
%{static: %{fmudflap|fmudflapth: --wrap=malloc --wrap=free --wrap=calloc --wrap=realloc --wrap=mmap --wrap=mmap64 --wrap=munmap --wrap=alloca} %{fmudflapth: --wrap=pthread_create}} %{fmudflap|fmudflapth: --wrap=main}

*mflib:
%{fmudflap: -export-dynamic -lmudflap -lsocket %{static:%(link_gcc_c_sequence) -lmudflap -lsocket -lbacktrace}} %{fmudflapth: -export-dynamic -lmudflapth -lsocket %{static:%(link_gcc_c_sequence) -lmudflapth -lsocket -lbacktrace}}

*link_gomp:


*libgcc:
-lgcc

*startfile:
%{!shared: %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7%{mfloat-abi=hard:hf}/lib/%{pg:m}%{p:mcrt1.o;pie:crt1S.o%s;static|nopie:crt1.o%s;:crt1S.o%s} } %$QNX_TARGET/arm%{EB:be}%{!EB:le}-v7%{mfloat-abi=hard:hf}/lib/crti.o crtbegin.o%s

*cross_compile:
1

*version:
4.8.3

*multilib:
. ;

*multilib_defaults:
marm mlittle-endian mfloat-abi=soft mno-thumb-interwork fno-leading-underscore

*multilib_extra:


*multilib_matches:


*multilib_exclusions:


*multilib_options:


*multilib_reuse:


*linker:
collect2

*linker_plugin_file:


*lto_wrapper:


*lto_gcc:


*link_libgcc:
%D

*md_exec_prefix:


*md_startfile_prefix:


*md_startfile_prefix_1:


*startfile_prefix_spec:


*sysroot_spec:
--sysroot=%R

*sysroot_suffix_spec:


*sysroot_hdrs_suffix_spec:


*self_spec:


*subtarget_cpp_spec:
%{!nostdinc: -isystem %$QNX_HOST/usr/lib/gcc/arm-unknown-nto-qnx8.0.0eabi/%v1.%v2.%v3/include -isystem %$QNX_TARGET/usr/include/c++/%v1.%v2.%v3 -isystem %$QNX_TARGET/usr/include/c++/%v1.%v2.%v3/arm-unknown-nto-qnx8.0.0eabi -isystem %$QNX_TARGET/usr/include/c++/%v1.%v2.%v3/backward -isysroot %$QNX_TARGET/} %(cpp_cpu) %{!EB:-D__LITTLEENDIAN__ -D__ARMEL__} %{EB:-D__BIGENDIAN__ -D__ARMEB__} %{posix:-D_POSIX_SOURCE}

*asm_cpu_spec:
%{mcpu=generic-*:-march=%*; :%{mcpu=*:-mcpu=%*} %{march=*:-march=%*}}

*subtarget_asm_float_spec:
%{mapcs-float:-mfloat} %{!mhard-float:-mfpu=softvfp} %{mhard-float:-mfpu=vfp}

*link_command:
%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S: %(linker) %{!fno-use-linker-plugin:%{flto|flto=*|fuse-linker-plugin: -plugin %(linker_plugin_file) -plugin-opt=%(lto_wrapper) -plugin-opt=-fresolution=%u.res %{!nostdlib:%{!nodefaultlibs:%:pass-through-libs(%(link_gcc_c_sequence))}} }}%{flto|flto=*:%<fcompare-debug*} %{flto} %{flto=*} %l %{pie:-pie} %{shared|Bshareable: %{!no-warn-shared-textrel:--warn-shared-textrel}} %{static|Bstatic|shared|Bshareable|i|r|pie|nopie:;:-pie %{!no-warn-shared-textrel:--warn-shared-textrel}} %{fuse-ld=*:-fuse-ld=%*} %X %{o*} %{e*} %{N} %{n} %{r} %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} %{static:} %{L*} %(mfwrap) %(link_libgcc) %{!nostdlib:%{!nodefaultlibs:%{fsanitize=address:%{!shared:libasan_preinit%O%s} %{static-libasan:%{!shared:-Bstatic --whole-archive -lasan --no-whole-archive -Bdynamic}}%{!static-libasan:-lasan -lstdc++}} %{fsanitize=thread:}}} %o %{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)} %{fgnu-tm:%:include(libitm.spec)%(link_itm)} %(mflib) %{fsplit-stack: --wrap=pthread_create} %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} %{!nostdlib:%{!nodefaultlibs:%{fsanitize=address: %{static-libasan:-lstdc++} %{static:%ecannot specify -static with -fsanitize=address} %{fsanitize=thread:%e-fsanitize=address is incompatible with -fsanitize=thread}} %{fsanitize=thread:%{static-libtsan:-Bstatic} -ltsan %{static-libtsan:-Bdynamic} %{!pie:%{!shared:%e-fsanitize=thread linking must be done with -pie or -shared}}}}} %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}} %{!nostdlib:%{!nostartfiles:%E}} %{T*} }}}}}}

Loading

0 comments on commit 8b33a56

Please sign in to comment.