summaryrefslogtreecommitdiff
path: root/scripts/build/companion_libs
AgeCommit message (Collapse)AuthorFilesLines
2021-06-07newlib: Add libstdc++ nano-specific CXXFLAGSStephanos Ioannidis1-0/+3
This commit adds a new config that can be used to specify the target CXXFLAGS specific to the libstdc++ newlib-nano variant. By default, this config is set to specify the `-fno-exceptions` option, which disables C++ exception handling support and greatly reduces the compiled binary size. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-04-19Merge branch 'abrodkin-newlib-nano-relocatable' of ↵Chris Packham1-3/+3
git://github.com/foss-for-synopsys-dwc-arc-processors/crosstool-ng
2021-04-16newlib-nano: Use run-time calculated paths in top-level nano.specsAlexey Brodkin1-3/+3
In currently generated top-level "nano.specs" we resolve paths during toolchain building and then use those pre-defined full paths once the toolchain got built. That's OK until the toolchain is used right were it was built, otherwise paths used in the top-level "nano.specs" become irrelevant and linker fails to find "nano" libs reverting to non-"nano" libs in the default location. See https://github.com/crosstool-ng/crosstool-ng/issues/1491. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-04-15newlib-nano: Add option to copy libs into targetKumar Gala1-0/+25
Add an option that will install a copy of newlib-nano lib*.a file in the target dir but renamed with a nano.a suffix (eg: libc_nano.a) as some default nano.spec files from newlib expect this setup. Additionally the newlib-nano version of newlib.h will get copied to include/newlib-nano/newlib.h. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-04-15newlib-nano: remove whitespace from nano.spec fileKumar Gala1-1/+1
Remove trailing whitespace from generated nano.spec file. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-02-19newlib-nano: Create symlinks for nano-suffixed libsAlexey Brodkin1-0/+32
If existing board's .specs are used for linking of a user's application, then instead of normally used libs like libc.a & libstdc++.a might be requested their "nano"-suffixed siblings: libc_nano.a, libstdc++_nano etc. That way: ----------------------------->8--------------------------- %rename link_gcc_c_sequence myboard_link_gcc_c_sequence *myboard_libc: %{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano} *link_gcc_c_sequence: %(myboard_link_gcc_c_sequence) --start-group %G %(myboard_libc) --end-group ----------------------------->8--------------------------- Our companion newlib-nano libs are all built optimized for size, so we'd like to use them for linking. But given linker will see "-lc_nano -lstdc++_nano" on its command line non-suffixed libs will be ignored. To solve it we create those "_nano"-suffixed libraries as simple symlinks to existing libs.. Fixes https://github.com/crosstool-ng/crosstool-ng/issues/1458. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-01-24Merge pull request #1448 from dinuxbg/masterChris Packham1-0/+89
Add PRU target configuration
2021-01-19Add package with PRU linker scripts and headersDimitar Dimitrov1-0/+89
Include the gnuprumcu package in PRU cross toolchain. Toolchain is somewhat useless without device specs and linker scripts for the various SoCs. Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2021-01-14newlib-nano: Build libstdc++ against newlib-nano if requestedKeith Packard1-0/+45
This uses the gcc support for building libstdc++ using alternate lib header files. Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-14Create nano.spec file that sits atop the existing nano buildKeith Packard1-0/+16
Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-14Add newlib-nano as companion libKeith Packard1-0/+128
This allows building newlib-nano in addition to newlib and picolibc, allowing users to select between C libraries within the same toolchain. Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-13Merge branches 'elijahr-dtc-1.6.0', 'elijahr-readme-typo', ↵Chris Packham2-0/+179
'foss-for-synopsys-dwc-arc-processors-abrodkin-libgmp-for-mac' and 'keith-packard-picolibc-companion'
2021-01-12picolibc: Build libstdc++ against picolibc if requestedKeith Packard1-0/+46
This uses the gcc support for building libstdc++ using alternate lib header files. Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-09picolibc: Convert to companion libraryKeith Packard1-0/+124
This allows configurations to include picolibc without excluding another C library. Signed-off-by: Keith Packard <keithp@keithp.com>
2020-12-23libgmp: Fix cross-canadian build for macOSAlexey Brodkin1-0/+9
Currently when building cross-canadian toolchain for macOS the folowing error happens when GCC is configured: |ld: illegal text-relocation to '___gmp_binvert_limb_table' in |... /.build/... /buildtools/complibs-host/lib/libgmp.a(mp_minv_tab.o) from '___gmpn_divexact_1' in |... /.build/... /buildtools/complibs-host/lib/libgmp.a(dive_1.o) |collect2: error: ld returned 1 exit status Apparently this might be solved with GMP configured with "--with-pic", even though we're talking about static library here. That solution was found here: https://github.com/Homebrew/homebrew-core/pull/25470 Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2019-04-05Rename JOBSFLAGS -> CT_JOBSFLAGSAlexey Neyman10-15/+15
... so that it is saved/restored when restarting the build. Signed-off-by: Alexey Neyman <stilor@att.net>
2019-03-10Move GDB build into a common backend functionAlexey Neyman1-1/+1
... needed to create a common runtime test for an incompatible change in glibc API. Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-20expat: Build without docbookBernhard Walle1-0/+1
This fixes following build error on Debian 9: configure: error: Your local docbook2man was found to work with SGML rather than XML. Please install docbook2X and use variable DOCBOOK_TO_MAN to point configure to command docbook2x-man of docbook2X. Or use DOCBOOK_TO_MAN="xmlto man --skip-validation" if you have xmlto around. You can also configure using --without-docbook if you can do without a man page for xmlwf. Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
2019-01-30Config v2: select relevant parts of each package versionAlexey Neyman1-5/+3
Also, remove a couple of config options that dealt with package versions that have been since retired. Signed-off-by: Alexey Neyman <stilor@att.net>
2018-06-05Avoid adding arch/cpu/tune flags for target to GCC buildAlexey Neyman3-3/+3
... as it may need to override them for building runtime-selectable code. Signed-off-by: Alexey Neyman <stilor@att.net>
2018-01-30Ncurses fixes for 6.1Alexey Neyman1-2/+7
- Update to 20180129 - Throw in --disable-db-install if database is disabled; otherwise 'make install' tries to run tic which is not built. - Select appropriate strip utility for the host; otherwise non-x86 architectures fail to install (unless --disable-stripping is also added) Signed-off-by: Alexey Neyman <stilor@att.net>
2017-10-01Add -D__GLIBC__ to target CFLAGSAlexey Neyman3-0/+3
... when using musl to compile strace. Also, honor CT_TARGET_CFLAGS in scripts compiling target libs/binaries. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-09-30expat 2.2.4 dropped INSTALL_ROOTAlexey Neyman1-1/+1
... in favor of its alias, DESTDIR. Before, it supported both. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-08Fix the references to old config variablesAlexey Neyman11-67/+35
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-08Switch comp.libs/tools and debug to new framework.Alexey Neyman3-4/+6
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-06-08Fix debuild warnings/errorsAlexey Neyman1-0/+0
- Update .gitignore, do not place .gitignore into directories installed in bulk - Remove executable permissions and shebangs from the scripts that are supposed to be invoked only via ct-ng frontent; prepend them with $(bash). Despite what showSamples.sh said, it already has some bashisms. - Remove --with autotools-dev and override dh_update_autotools_config to avoid having config.{sub,guess} clobbered with older versions - Install bash completion where Debian (now) expects it - Update man page to use .\" as the comment delimiter, instead of undefined macro (."); also, minor text edits. - Install kconfig.mk without execute permission. - Remove shell wrappers from 170-localedef-fix-trampoline.patch, we do not use that for applying patches - Revoke execute permissions on 210-expat.sh - Get flags from dpkg-buildflags if available Signed-off-by: Alexey Neyman <stilor@att.net>
2017-05-25Handle ming32 as a hostAlexey Neyman1-14/+35
zlib refuses to run configure with mingw32 host and insists that win32/Makefile.gcc is used instead. This requires a change in this Makefile to support static-only builds. Fixes #694. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-04-02Always build ncurses-for-buildAlexey Neyman1-25/+5
If the build machine lacks tic, we need to build it in the first pass even if host==build: ncurses Makefiles are not smart enough to build 'tic' first and use the just-built tic to compile fallback terminfo. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-03-07Merge pull request #634 from stilor/macos-canadianAlexey Neyman1-1/+1
A couple of fixes for canadian samples on macos
2017-03-07Use CHOST instead of CROSS_PREFIXAlexey Neyman1-1/+1
The latter does not prevent zlib's configure from overriding 'AR' with /usr/bin/libtool on macos, and that breaks canadian crosses. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-03-06Explicitly use gcc for GMPDan McGregor1-0/+3
GMP's configure script tries to be too smart, and if it determines that it's not cross-compiling it chooses gcc or cc instead of the wrapper we create at the start of the build. Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
2017-02-27Require GNU sedAlexey Neyman1-22/+0
After much struggling with macos (BSD) sed and even getting everything work in crosstool-ng itself, I had to abandon that because some components rely on GNU syntax. Specifically, GNU libc uses '/.../{H;g}' (note absense of the separator after 'g'). So, revert the -r/-E detection and check for sed's being of GNU origin. MacOS people, sorry, but you'd have to install GNU sed. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-17Add --disable-database and --with-fallbacks separatelyAlexey Neyman1-3/+12
The dependency between them has been removed in Kconfig. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-15Skip gettext/libiconv on linux-gnuAlexey Neyman2-12/+24
Previous version by Ray Donnelly was skipping them for all *linux*. This skips it for GLIBC only. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-11Skip comp.libs checking on host for canadianAlexey Neyman6-12/+42
... they all want to run the binaries they produced, which fails when build!=host. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-06Merge pull request #575 from stilor/ncurses-configureAlexey Neyman1-1/+21
Allow some tunables for ncurses
2017-02-05Add zlib as a companion libAlexey Neyman7-7/+109
with version 1.2.11. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-05Allow some tunables for ncursesAlexey Neyman1-1/+21
- Allow user to specify configure arguments to pass through to host/target ncurses. - Checkbox for --disable-database - String option for --with-fallbacks Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-25Run all configure scripts using ${CONFIG_SHELL}Alexey Neyman10-0/+10
... as its help message says in menuconfig. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-10Change when libiconv/gettext are built.Alexey Neyman2-8/+4
Make them configurable, default to y when build!=host (i.e. canadian or cross-native) because we don't know what libraries the host will provide. GLIBC, as previously, selects them explicitly. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-10Simplify a bit, no functional changes.Alexey Neyman1-14/+4
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-12-17Avoid host libs when compiling gettext.Alexey Neyman1-0/+8
On Travis, old libxml2 is picked up from host and breaks the build. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-12-11Make companion libs static.Alexey Neyman5-35/+26
This follows the trend set by 1*.sh scripts that configure ISL, GMP, MPFR, CLooG, etc. Building with shared libraries presents all kinds of problems: - The shared libraries need to be installed into ${CT_PREFIX_DIR}. - The binaries linked against companion libs need to have proper RPATH, or they're looking for shared libs in .build/${CT_PREFIX}/buildtools/lib. - All libraries must agree as to whether they're built shared, static, or both. Otherwise, gettext tries to link in static libncurses.a into a shared library and fails (since libncurses was compiled without the -fPIC switch and hence contains relocations that cannot be handled in a shared library). So this fixes the current mess. If we decide to re-enable building the companion libs shared, we should probably make this dependent on a separate suboption of CT_STATIC_TOOLCHAIN. Add a config loosely based on one reported in the issue 274. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-12-06Merge pull request #443 from KirillSmirnov/gdb-nativeAlexey Neyman3-3/+33
debug/gdb: properly link with expat
2016-12-02Fix use of custom location if it is a directory.Alexey Neyman2-2/+2
In that case, CT_GetCustom just creates a symlink to the original. In that case, 'cp -a <path> .' gives an error and 'cp -a <path> <newdir>' creates <newdir> as a symlink (which will then run the build inside the shared directory, .build/src/<package>). Signed-off-by: Alexey Neyman <stilor@att.net>
2016-11-21Partially revert 6f8e89cb5ca061e899bf3feaaf3fecf30d366c3e.Alexey Neyman10-27/+27
The referenced commit replaced 'make' with '${make}' everywhere. This is wrong for at least the utilities that we may build as companion tools (make, libtool): this will always invoke the version detected by configure by supplying the absolute path. In other words, the wrappers in .build/tools/bin are not fallbacks - they are either temporary (in case a respective companion tool is built) or permanent redirectors. This is the reason why the PATH= has .build/*/buildtools/bin at higher precedence than .build/tools/bin; the latter has the versions detected by configure and the former has the versions built as companion tools. Revert the rest of the gang (grep/sed/...) for consistency. After all, we may decide to supply some of them as well (awk, for instance). Signed-off-by: Alexey Neyman <stilor@att.net>
2016-09-10complibs: let mingw-gcc find target companion libsKirill K. Smirnov3-3/+33
mingw-gcc searches for include and libs in <sysroot>/mingw directory while non-mingw-gcc uses <sysroot>/usr. This patch sets an appropriate prefix for target companion libs. Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2016-01-03libelf: Cygwin fix for UNC pathsRay Donnelly1-0/+7
If destdir was / and prefix began with / then we would attempt to install libelf to a path beginning with // which is a UNC path on Cygwin. This is generally incorrect. Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
2016-01-03libiconv: configure with --disable-nlsRay Donnelly1-0/+1
On Windows a build failure can be triggered during the build of the static iconv if a dynamic iconv is already present: There's a circular dependency between libiconv and gettext which (on a system with a dynamic gettext (and thus iconv) installed in the system prefix) causes a failure to build iconv.exe statically if it is built with nls .. .. Which needs gettext .. which depends on libiconv .. so libtool finds a dynamically linked libgettext.la .. and therefore presents ld with the dll import library libiconv.dll.a when linking iconv.exe .. as well as the static libiconv.a that it has just built! .. leading to multiply defined symbols from iconv. Therefore, we build it without nls. If it later turns out that we need it to be built with nls, then I will have to build it in two passes (common practice when bootstrapping GNU/Linux distros, MSYS2 and probably Cygwin and Homebrew). Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
2016-01-03expat: Tidy up and correct configure flagsRay Donnelly1-9/+24
Build shared builds for host unless CT_STATIC_TOOLCHAIN. In all other situations, build statically, as before. It is necessary that the static/shared-ness of expat matches that of gettext on Cygwin/MinGW-w64 as they can't be linked together if they don't match, so we follow the same logic. Signed-off-by: Ray Donnelly <mingw.android@gmail.com>