diff options
author | Joel Stanley <joel@jms.id.au> | 2018-04-12 15:59:40 +0930 |
---|---|---|
committer | Joel Stanley <joel@jms.id.au> | 2018-04-12 15:59:40 +0930 |
commit | a8d11267c2bfad3ff410ea342778f2791982da51 (patch) | |
tree | 98f7058a6f58fc3f63d1e8bb499531a0a01e15fd /support | |
parent | e17668bbe3538d42b0a0fab64251e60ff6c81d68 (diff) | |
parent | 9565a37e0d2aa3c5fb9a4148760c490f2e5226d4 (diff) | |
download | buildroot-a8d11267c2bfad3ff410ea342778f2791982da51.tar.gz buildroot-a8d11267c2bfad3ff410ea342778f2791982da51.zip |
Merge tag '2018.02.1' into 2018.02-op-build2018.02-op-build
Release 2018.02.1
Diffstat (limited to 'support')
8 files changed, 63 insertions, 32 deletions
diff --git a/support/config-fragments/autobuild/br-arm-internal-glibc.config b/support/config-fragments/autobuild/br-arm-internal-glibc.config new file mode 100644 index 0000000000..6b2566eedc --- /dev/null +++ b/support/config-fragments/autobuild/br-arm-internal-glibc.config @@ -0,0 +1,4 @@ +BR2_arm=y +BR2_cortex_a8=y +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y diff --git a/support/config-fragments/autobuild/br-arm-internal-musl.config b/support/config-fragments/autobuild/br-arm-internal-musl.config new file mode 100644 index 0000000000..92788626d6 --- /dev/null +++ b/support/config-fragments/autobuild/br-arm-internal-musl.config @@ -0,0 +1,4 @@ +BR2_arm=y +BR2_cortex_a8=y +BR2_TOOLCHAIN_BUILDROOT_MUSL=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y diff --git a/support/config-fragments/autobuild/br-nios2-glibc.config b/support/config-fragments/autobuild/br-nios2-glibc.config index 62f2665e44..52b9f7f9f5 100644 --- a/support/config-fragments/autobuild/br-nios2-glibc.config +++ b/support/config-fragments/autobuild/br-nios2-glibc.config @@ -6,4 +6,5 @@ BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/b BR2_TOOLCHAIN_EXTERNAL_GCC_6=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_13=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_SSP is not set BR2_TOOLCHAIN_EXTERNAL_CXX=y diff --git a/support/config-fragments/autobuild/br-xtensa-full-internal.config b/support/config-fragments/autobuild/br-xtensa-full-internal.config index f642a4d76b..89e81d4c45 100644 --- a/support/config-fragments/autobuild/br-xtensa-full-internal.config +++ b/support/config-fragments/autobuild/br-xtensa-full-internal.config @@ -1,4 +1,3 @@ BR2_xtensa=y -BR2_JLEVEL=8 BR2_TOOLCHAIN_BUILDROOT_LOCALE=y BR2_TOOLCHAIN_BUILDROOT_CXX=y diff --git a/support/config-fragments/autobuild/toolchain-configs.csv b/support/config-fragments/autobuild/toolchain-configs.csv index efb78eec4f..2010113f44 100644 --- a/support/config-fragments/autobuild/toolchain-configs.csv +++ b/support/config-fragments/autobuild/toolchain-configs.csv @@ -12,6 +12,8 @@ support/config-fragments/autobuild/br-arm-full.config,x86_64 support/config-fragments/autobuild/br-arm-full-nothread.config,x86_64 support/config-fragments/autobuild/br-arm-full-static.config,x86_64 support/config-fragments/autobuild/br-arm-internal-full.config,any +support/config-fragments/autobuild/br-arm-internal-glibc.config,any +support/config-fragments/autobuild/br-arm-internal-musl.config,any support/config-fragments/autobuild/br-bfin-full.config,x86_64 support/config-fragments/autobuild/br-i386-pentium4-full.config,x86_64 support/config-fragments/autobuild/br-i386-pentium-mmx-musl.config,x86_64 diff --git a/support/dependencies/check-host-tar.sh b/support/dependencies/check-host-tar.sh index 2143877524..0857307396 100755 --- a/support/dependencies/check-host-tar.sh +++ b/support/dependencies/check-host-tar.sh @@ -26,10 +26,11 @@ if [ ! -z "${version_bsd}" ] ; then minor=0 fi -# Minimal version = 1.17 (previous versions do not correctly unpack archives -# containing hard-links if the --strip-components option is used). +# Minimal version = 1.27 (previous versions do not correctly unpack archives +# containing hard-links if the --strip-components option is used or create +# different gnu long link headers for path elements > 100 characters). major_min=1 -minor_min=17 +minor_min=27 # Maximal version = 1.29 (1.30 changed --numeric-owner output for # filenames > 100 characters). This is really a fix for a bug in diff --git a/support/scripts/check-bin-arch b/support/scripts/check-bin-arch index f6a4569c62..7f97696735 100755 --- a/support/scripts/check-bin-arch +++ b/support/scripts/check-bin-arch @@ -1,18 +1,46 @@ #!/usr/bin/env bash -while getopts p:l:r:a: OPT ; do +# List of hardcoded paths that should be ignored, as they may +# contain binaries for an architecture different from the +# architecture of the target. +declare -a IGNORES=( + # Skip firmware files, they could be ELF files for other + # architectures + "/lib/firmware" + "/usr/lib/firmware" + + # Skip kernel modules + # When building a 32-bit userland on 64-bit architectures, the kernel + # and its modules may still be 64-bit. To keep the basic + # check-bin-arch logic simple, just skip this directory. + "/lib/modules" + "/usr/lib/modules" + + # Skip files in /usr/share, several packages (qemu, + # pru-software-support) legitimately install ELF binaries that + # are not for the target architecture + "/usr/share" +) + +while getopts p:l:r:a:i: OPT ; do case "${OPT}" in p) package="${OPTARG}";; l) pkg_list="${OPTARG}";; r) readelf="${OPTARG}";; a) arch_name="${OPTARG}";; + i) + # Ensure we do have single '/' as separators, + # and that we have a leading and a trailing one. + pattern="$(sed -r -e 's:/+:/:g; s:^/*:/:; s:/*$:/:;' <<<"${OPTARG}")" + IGNORES+=("${pattern}") + ;; :) error "option '%s' expects a mandatory argument\n" "${OPTARG}";; \?) error "unknown option '%s'\n" "${OPTARG}";; esac done if test -z "${package}" -o -z "${pkg_list}" -o -z "${readelf}" -o -z "${arch_name}" ; then - echo "Usage: $0 -p <pkg> -l <pkg-file-list> -r <readelf> -a <arch name>" + echo "Usage: $0 -p <pkg> -l <pkg-file-list> -r <readelf> -a <arch name> [-i PATH ...]" exit 1 fi @@ -23,26 +51,11 @@ IFS=" " while read f; do - # Skip firmware files, they could be ELF files for other - # architectures - if [[ "${f}" =~ ^/(usr/)?lib/firmware/.* ]]; then - continue - fi - - # Skip kernel modules - # When building a 32-bit userland on 64-bit architectures, the kernel - # and its modules may still be 64-bit. To keep the basic - # check-bin-arch logic simple, just skip this directory. - if [[ "${f}" =~ ^/lib/modules/.* ]]; then - continue - fi - - # Skip files in /usr/share, several packages (qemu, - # pru-software-support) legitimately install ELF binaries that - # are not for the target architecture - if [[ "${f}" =~ ^/usr/share/.* ]]; then - continue - fi + for ignore in "${IGNORES[@]}"; do + if [[ "${f}" =~ ^"${ignore}" ]]; then + continue 2 + fi + done # Skip symlinks. Some symlinks may have absolute paths as # target, pointing to host binaries while we're building. diff --git a/support/scripts/check-uniq-files b/support/scripts/check-uniq-files index be808cce03..f110176274 100755 --- a/support/scripts/check-uniq-files +++ b/support/scripts/check-uniq-files @@ -26,16 +26,23 @@ def main(): return False file_to_pkg = defaultdict(list) - with open(args.packages_file_list[0], 'r') as pkg_file_list: - r = csv.reader(pkg_file_list, delimiter=',') - for row in r: - pkg = row[0] - file = row[1] + with open(args.packages_file_list[0], 'rb') as pkg_file_list: + for line in pkg_file_list.readlines(): + pkg, _, file = line.rstrip(b'\n').partition(b',') file_to_pkg[file].append(pkg) for file in file_to_pkg: if len(file_to_pkg[file]) > 1: - sys.stderr.write(warn.format(args.type, file, file_to_pkg[file])) + # If possible, try to decode the binary strings with + # the default user's locale + try: + sys.stderr.write(warn.format(args.type, file.decode(), + [p.decode() for p in file_to_pkg[file]])) + except UnicodeDecodeError: + # ... but fallback to just dumping them raw if they + # contain non-representable chars + sys.stderr.write(warn.format(args.type, file, + file_to_pkg[file])) if __name__ == "__main__": |