summaryrefslogtreecommitdiff
path: root/scripts/build
AgeCommit message (Collapse)AuthorFilesLines
2016-12-17Merge pull request #508 from stilor/drop-dmallocAlexey Neyman1-57/+0
Drop dmalloc
2016-12-17Pass original multi_os_dir to iterator.Alexey Neyman1-2/+3
This is needed for callbacks that use that directory to look inside GCC internal directories, e.g. moving the libraries. This broke when I made libexpat for target honor ${CT_SHARED_LIBS}. 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-17Kill dmalloc.Alexey Neyman1-57/+0
- No new releases in almost 10 year. - No public bug tracker or VCS. - No responses from maintainer over sent patches. RIP, dmalloc. 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 Neyman4-5/+54
debug/gdb: properly link with expat
2016-12-05debug/gdb: restore commentsKirill K. Smirnov1-0/+12
There are two separate issues with gdb configure usage: 1) inspecting build system libraries while cross-compiling; 2) preferring a shared library over static one. The first usage issue is described and fixed now. The second issue was described but the notes were removed for some reason. This patch restores those notes. Suggested-by: Alexey Neyman <stilor@att.net> Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2016-12-03Merge pull request #487 from stilor/host-comp-toolsAlexey Neyman6-53/+237
Allow for installation of companion tools for host
2016-12-02Add 'companion tools for host' step.Alexey Neyman6-46/+206
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-12-02Move companion tool build into a separate step.Alexey Neyman6-10/+34
Also, rename "build" -> "for_build", since we're going to have a "for_host" as well. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-12-02Fix use of custom location if it is a directory.Alexey Neyman6-6/+6
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-29Pass FOR_BUILD flags when building the pass-1/2 core GCC.Alexey Neyman1-7/+8
Current build passes {CFLAGS,LDFLAGS}_FOR_HOST - which breaks canadian cross (e.g. tried building for x86_64-unknown-linux-uclibc host). This dates back to the days of yore when CFLAGS were set directly in the do_gcc_core_backend (and that function is used as the final gcc's backend). do_gcc_core_backend is now passed with CFLAGS/LDFLAGS to use, so let the pass-1/pass-2/final-for-build steps pass the appropriate flags. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-11-22xtensa: fix endianness supportMax Filippov1-0/+2
To build uClibc correctly we need correct endianness selected in the crosstool-NG. Xtensa cores may be little- or big-endian, but this property is static. The toolchain knows the core endianness and doesn't need options to select it. Enable ARCH_SUPPORTS_BOTH_ENDIAN and select LE by default. Specify empty CT_ARCH_ENDIAN_CFLAG so that -m{big,little}-endian don't get added to the TARGET_CFLAGS, as it's not supported by gcc. Specify empty CT_ARCH_ENDIAN_LDFLAG so that -EB/-EL don't get added to the TARGET_LDFLAGS as they are ignored. Select big-endian in the example xtensa-unknown-linux-uclibc configuration. This fixes uClibc toolchain build for little-endian cores. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2016-11-22Give companion tools some love.Alexey Neyman5-11/+1
Allow selection of make/m4/... version. Support imports of new versions via addToolVersion.sh. Import newest versions of the companion tools. One non-trivial change is the handling of make versions. Existing code was not handling make companion tool as described (see the previous commit). However, since most modern systems have make 4.x, that previous commit made crosstool-ng always build make as a companion tool. This traces back to the commit dd15c93 from 2014. That commit's log message says that actually it was 3.81 which broke the build for certain component (it was originally breaking eglibc, but I noticed it was breaking current glibc on powerpc64), and introduced an option to force using 3.81 by "components that really need it". It looks like in 2.5 years we haven't seen any such components that really need make 3.81, and (given that make has already had a few releases since 3.81) we're unlikely to see them in the future. Hence, the configure check is changed from "exactly 3.81" to "3.81 or newer". In its current form, configure will accept make 3.80+, and will not require make as a companion tool for 3.81+. We might want to bump the latter check to even newer version given the claim from dd15c93. Killed COMP_TOOLS_make_3_81_NEEDED. Anyway, I retained 3.81 just in case; ditto for m4 1.14.3, autoconf 2.65 and automake 1.11.1. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-11-21Partially revert 6f8e89cb5ca061e899bf3feaaf3fecf30d366c3e.Alexey Neyman33-161/+161
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-11-19comptools/make: Fix CT_COMP_TOOLS_make_gmake optionBernhard Walle1-1/+1
Commit 6f8e89cb5ca061e899bf3feaaf3fecf30d366c3e broke that option. Since ${make} points to /usr/bin/make, making the symlink from gmake to /usr/bin/make is obviously the wrong decision. gmake should link to our (old-versioned) self-built make. Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
2016-11-11Merge remote-tracking branch 'upstream/master'Dmitry Pankratov3-6/+67
2016-11-10Merge pull request #472 from stilor/unparallel-make-installBryan Hundven1-3/+12
Do not run 'make install' in parallel in GCC.
2016-11-10Merge pull request #452 from KirillSmirnov/janitorialAlexey Neyman1-1/+2
Janitorial: update patches
2016-11-10Do not run 'make install' in parallel in GCC.Alexey Neyman1-3/+12
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-10-24Merge branch 'master' into janitorialBryan Hundven1-0/+5
2016-10-12Merge branch 'master' into static-libgcc-more-fixesAlexey Neyman1-0/+5
2016-10-07Fine-tune moving gcc libraries to sysroot.Alexey Neyman1-0/+12
1. Check if anything was installed outside sysroot; on some [baremetal only?] configurations GCC doesn't install anything to ${CT_PREFIX_DIR}/${CT_TARGET}/lib. 2. We need to create <sysroot>/lib/<multilib> if it doesn't exist (MUSL only installs in <sysroot>/usr/lib). 3. Do not move the linker scripts; elf2flt expects to find them in gcc's dir, not sysroot. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-10-05Fix m68k with uClibc-ng >= 1.0.15.Alexey Neyman1-0/+5
1.0.15 only kept a single LINUXTHREADS option, and renamed it, making it no longer option-compatible with uClibc. The option for "1.0.14 or later" version of uClibc-ng is not currently used; rename it to "1.0.15 or later" and use it to handle newer uClibc-ng's linuxthreads. m68k happens to be the only sample using linuxthreads. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-10-04Merge branch 'master' into janitorialKirill Smirnov1-2/+36
2016-10-04Merge branch 'master' into x86-muslAlexey Neyman1-2/+27
2016-10-03GCC uses multi_os_dir for libgcc, not multi_dir.Alexey Neyman1-1/+1
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-10-02Fix issue #449.Alexey Neyman1-2/+27
After building final gcc, place the libraries in non-sysroot libs into sysroot. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-10-01Merge branch 'master' of https://github.com/crosstool-ng/crosstool-ngDmitry Pankratov23-691/+1091
2016-09-23Add a checkbox for libmpx build.Alexey Neyman1-0/+9
Disable libmpx for musl builds. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-09-22Merge branch 'master' into janitorialKirill Smirnov1-1/+2
2016-09-20elf2flt: do not treat warnings as errorsKirill K. Smirnov1-0/+1
elf2flt is configured with -Werror flag by default. Disable it. Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2016-09-14build/glibc: Improve confusing commentKirill K. Smirnov1-1/+2
Up until cset 4e2227e8a5537a8553c503e55d2cb2190f2a0d2f there was an 'if' statement with a comment. The abovementioned changeset removed the conditional statement but the comment survived. Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2016-09-13binutils: make symlinks in a consistent wayKirill K. Smirnov1-1/+1
On the stage "core gcc pass-2" the following layout is created: 1) buildtools/bin/TARGET-{ar,as,elf2flt,flthdr,ld,ld.bfd,ranlib,strip} 2) buildtools/TARGET/bin/{ar,as,elf2flt,flthdr,ld,ld.bfd,ranlib,strip} 3) x-tools/TARGET/bin/TARGET-{ar,as,elf2flt,flthdr,ld,ld.bfd,ranlib,strip} 4) x-tools/TARGET/TARGET/bin{ar,as,elf2flt,flthdr,ld,ld.bfd,ranlib,strip} where both (1) and (2) are symlinks to (3). This effectively renders core pass-2 gcc with elf2flt linker unusable. Related elf2flt discussion: https://github.com/crosstool-ng/crosstool-ng/pull/443 Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2016-09-11debug/gdb: Add comments for untrivial flags.Kirill K. Smirnov1-0/+14
The necessity of --without-libexpat-prefix is not obvious and needs comments. Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2016-09-10internals: properly strip gdbserverKirill K. Smirnov1-1/+10
On mingw target gdbserver is suffixed with '.exe', thus plain 'strip gdbserver' fails. Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
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-09-09debug/gdb: properly link with expatKirill Smirnov1-10/+3
This patch fixes libexpat detection for gdb-native and gdb-cross static builds. For gdb-native build configure should not touch system /usr/{lib,include} directories while looking for libexpat. To fix this we pass --without-libexpat-prefix flag to configure script. For gdb-cross build configure is allowed to investigate system /usr/{lib,include} directories, but it does not hurt to disable this behavior. In this case configure falls back to -lexpat, which works as expected. For more info: http://marc.info/?l=gnulib-bug&m=129660262901148&w=2 Signed-off-by: Kirill Smirnov <kirill.k.smirnov@gmail.com>
2016-08-31Merge pull request #435 from KirillSmirnov/uclibcBryan Hundven1-1/+7
uClibc: improve managing shared libs
2016-08-29uClibc: propagate SHARED_LIBS option.Kirill K. Smirnov1-0/+6
This patch synchronizes crosstool CT_SHARED_LIBS and uclibc HAVE_SHARED options. Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2016-08-29uClibc: install native utilsKirill K. Smirnov1-1/+1
This change adds native ldd and ldconfig utils to sysroot. For glibc just 'make install' installs everything including utils. For uclibc there exists a separate goal 'install_utils'. Make it. Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2016-08-26Update x86.shPedro Navarro1-1/+3
Added additional x86 architectures, like core2, that also map to i686
2016-08-23Merge pull request #410 from jmlemetayer/fix_populateBryan Hundven1-0/+1
populate: Fix undefined awk
2016-08-23Merge pull request #402 from lundmar/fix_elf2flt_repoBryan Hundven1-1/+1
Update elf2flt git repository location
2016-08-23musl: Add multilib support.Alexey Neyman4-36/+77
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23uClibc: move ldso check to post_cc.Alexey Neyman1-43/+54
It turns out that core GCC on binfmt architectures (m68k, for example) cannot produce the final executable (looks for ld.real in the wrong place). Need to wait for the final gcc to become available. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23Support multilib in sh/uClibc.Alexey Neyman3-189/+90
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23Treat multiroots differently.Alexey Neyman2-17/+83
'ld' does not search for dependency libraries in multi_os_directory, so if there's both multi_os_directory and multi_root, and there is only one configuration in each multi_root, forgo the multi_os_directory suffix. Needed for sh4-multilib-linux-uclibc. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23First stab at multilib/uClibc.Alexey Neyman5-16/+273
Create a separate 'libc_backend_once', install headers into a subdirectory (different sets of headers are installed for 32- and 64-bit architectures), and create a symlink for the dynamic linker location expected by GCC. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23uClibc: Split configuration tweaker into per-arch functions.Alexey Neyman11-113/+174
Signed-off-by: Alexey Neyman <stilor@att.net>