1 # toolchain configuration, default to gcc
2 #===============================================================================
3 if test "${cpp-unset}" = unset; then
4 cpp
="/opt/toolchains/x64/elf/binutils-gcc/current/bin/x86_64-pc-linux-gnu-gcc \
8 -ftls-model=global-dynamic \
12 # the geniuses writting compilers may have c++ required hardcoded definitions
13 # in the c++ preprocessor to be able to compile code...
14 if test "${cxxpp-unset}" = unset; then
15 # XXX: you must pass -fno-rtti here to disable __GXX_RTTI and -fno-exceptions to
16 # disable __EXCEPTIONS
18 cxxpp
="/opt/toolchains/x64/elf/binutils-gcc/current/bin/x86_64-pc-linux-gnu-g++ \
23 -ftls-model=global-dynamic \
28 # c/c++ compiler specific fixed includes are based on the syslib at compiler build time, COMPILER
29 # BUILD TIME... oh god... must be found first to override the syslib ones...
30 if test "${cc_internal_fixed_incdir-unset}" = unset; then
31 cc_internal_fixed_incdir
=/opt
/toolchains
/x64
/elf
/binutils-gcc
/current
/lib
/gcc
/x86_64-pc-linux-gnu
/13.2.0/include-fixed
33 # c/c++ compiler specific stdarg.h stddef.h etc...
34 if test "${cc_internal_incdir-unset}" = unset; then
35 cc_internal_incdir
=/opt
/toolchains
/x64
/elf
/binutils-gcc
/current
/lib
/gcc
/x86_64-pc-linux-gnu
/13.2.0/include
37 # c++ compiler specific includes
38 if test "${cxx_internal_incdir-unset}" = unset; then
39 cxx_internal_incdir
=/opt
/toolchains
/x64
/elf
/binutils-gcc
/current
/include
/c
++/13.2.0
41 #===============================================================================
42 if test "${cc_s-unset}" = unset; then
43 cc_s
="/opt/toolchains/x64/elf/binutils-gcc/current/bin/x86_64-pc-linux-gnu-gcc \
46 -O2 -Wno-stringop-overflow \
51 -ftls-model=global-dynamic \
54 # aco is c++ crap from 2017, did not check AMD addrlib c++ diarrhea
55 if test "${cxx_s-unset}" = unset; then
56 cxx_s
="/opt/toolchains/x64/elf/binutils-gcc/current/bin/x86_64-pc-linux-gnu-g++ \
61 -O2 -Wno-stringop-overflow \
67 -ftls-model=global-dynamic \
70 #-------------------------------------------------------------------------------
71 if test "${binutils_ld-unset}" = unset; then
72 binutils_ld
=/opt
/toolchains
/x64
/elf
/binutils-gcc
/current
/bin
/ld
74 #-------------------------------------------------------------------------------
75 # Compiler generic support libraries. In the case of gcc it is libgcc, for tinycc
77 # Even with -fno-exceptions, many libstdc++ objects will pull libgcc_eh, OMFG.
78 # We want a full pathname. With gcc, you can discover the pathnames with:
79 # "gcc -print-file-name=libgcc.a" and "gcc -print-file-name=libgcc_eh.a"
80 if test "${cc_ld_support_lib-unset}" = unset; then
81 eval cc_ld_support_lib
=$
($cc_s -print-file-name=libgcc.a
)
83 if test "${cc_ld_eh_support_lib-unset}" = unset; then
84 eval cc_ld_eh_support_lib
=$
($cc_s -print-file-name=libgcc_eh.a
)
86 #-------------------------------------------------------------------------------
87 # Compiler c++ runtime.
88 # We want a full pathname. With gcc, you can discover the pathname with:
89 # "gcc -print-file-name=libstdc++.a"
90 if test "${cxx_runtime_lib-unset}" = unset; then
91 eval cxx_runtime_lib
=$
($cxx_s -print-file-name=libstdc
++.a
)
93 #-------------------------------------------------------------------------------
94 # Compiler specific start/end files for linking a Shared LIBrary (slib), they
95 # appear after/before the syslib start/end files while linking. Here, as an
96 # example, look at the compiler driver $gcc_src/gcc/config/gnu-user.h (13.2.0)
97 # if you want to understand a bit more in the case of glibc, shared libs do fall
98 # in the "shared" category.
99 # With gcc, their pathname can be discovered with:
100 # "gcc -print-file-name=crtbeginS.o" and "gcc -print-file-name=crtendS.o"
101 if test "${cc_ld_slib_start_files-unset}" = unset; then
102 eval cc_ld_slib_start_files
=$
($cc_s -print-file-name=crtbeginS.o
)
104 if test "${cc_ld_slib_end_files-unset}" = unset; then
105 eval cc_ld_slib_end_files
=$
($cc_s -print-file-name=crtendS.o
)
107 #===============================================================================
108 if test "${as-unset}" = unset; then
109 as
=/opt
/toolchains
/x64
/elf
/binutils-gcc
/current
/bin
/as
111 #===============================================================================
112 if test "${ar_rcs-unset}" = unset; then
113 ar_rcs
='/opt/toolchains/x64/elf/binutils-gcc/current/bin/ar rcs'
115 #===============================================================================
117 cc_builtins_cpp_flags_defs
="\
118 -DHAVE___BUILTIN_BSWAP32=1 \
119 -DHAVE___BUILTIN_BSWAP64=1 \
120 -DHAVE___BUILTIN_CLZ=1 \
121 -DHAVE___BUILTIN_CLZLL=1 \
122 -DHAVE___BUILTIN_CTZ=1 \
123 -DHAVE___BUILTIN_EXPECT=1 \
124 -DHAVE___BUILTIN_FFS=1 \
125 -DHAVE___BUILTIN_FFSLL=1 \
126 -DHAVE___BUILTIN_POPCOUNT=1 \
127 -DHAVE___BUILTIN_POPCOUNTLL=1 \
128 -DHAVE___BUILTIN_UNREACHABLE=1 \
129 -DUSE_GCC_ATOMIC_BUILTINS=1 \
131 #-------------------------------------------------------------------------------
132 # gcc-like attributes
133 cc_attributes_cpp_flags_defs
="\
134 -DHAVE_FUNC_ATTRIBUTE_CONST=1 \
135 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 \
136 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 \
137 -DHAVE_FUNC_ATTRIBUTE_PURE=1 \
138 -DHAVE_FUNC_ATTRIBUTE_UNUSED=1 \
139 -DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT=1 \
140 -DHAVE_FUNC_ATTRIBUTE_WEAK=1 \
142 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 \
143 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 \
144 -DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL=1 \
145 -DHAVE_FUNC_ATTRIBUTE_VISIBILITY=1 \
146 -DHAVE_FUNC_ATTRIBUTE_ALIAS=1 \
147 -DHAVE_FUNC_ATTRIBUTE_NORETURN=1 \