From eb8dc40360f0cfef56fb6947cc817a547d6d9bc6 Mon Sep 17 00:00:00 2001 From: Dave Cobbley Date: Tue, 14 Aug 2018 10:05:37 -0700 Subject: [Subtree] Removing import-layers directory As part of the move to subtrees, need to bring all the import layers content to the top level. Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f Signed-off-by: Dave Cobbley Signed-off-by: Brad Bishop --- .../recipes-support/boost/bjam-native_1.66.0.bb | 19 ++ poky/meta/recipes-support/boost/boost-1.66.0.inc | 21 +++ poky/meta/recipes-support/boost/boost.inc | 200 +++++++++++++++++++++ ...-Apply-boost-1.62.0-no-forced-flags.patch.patch | 100 +++++++++++ ...Don-t-set-up-m32-m64-we-do-that-ourselves.patch | 65 +++++++ ...p-arch-instruction-set-flags-we-do-that-o.patch | 151 ++++++++++++++++ .../boost/boost/arm-intrinsics.patch | 55 ++++++ .../boost/boost/boost-CVE-2012-2677.patch | 112 ++++++++++++ .../boost/boost-math-disable-pch-for-gcc.patch | 31 ++++ poky/meta/recipes-support/boost/boost_1.66.0.bb | 11 ++ ...ge-assert-typo-how-was-this-released-with.patch | 37 ++++ .../boost/files/bjam-native-build-bjam.debug.patch | 50 ++++++ 12 files changed, 852 insertions(+) create mode 100644 poky/meta/recipes-support/boost/bjam-native_1.66.0.bb create mode 100644 poky/meta/recipes-support/boost/boost-1.66.0.inc create mode 100644 poky/meta/recipes-support/boost/boost.inc create mode 100644 poky/meta/recipes-support/boost/boost/0001-Apply-boost-1.62.0-no-forced-flags.patch.patch create mode 100644 poky/meta/recipes-support/boost/boost/0002-Don-t-set-up-m32-m64-we-do-that-ourselves.patch create mode 100644 poky/meta/recipes-support/boost/boost/0003-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch create mode 100644 poky/meta/recipes-support/boost/boost/arm-intrinsics.patch create mode 100644 poky/meta/recipes-support/boost/boost/boost-CVE-2012-2677.patch create mode 100644 poky/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch create mode 100644 poky/meta/recipes-support/boost/boost_1.66.0.bb create mode 100644 poky/meta/recipes-support/boost/files/0001-Fix-a-strange-assert-typo-how-was-this-released-with.patch create mode 100644 poky/meta/recipes-support/boost/files/bjam-native-build-bjam.debug.patch (limited to 'poky/meta/recipes-support/boost') diff --git a/poky/meta/recipes-support/boost/bjam-native_1.66.0.bb b/poky/meta/recipes-support/boost/bjam-native_1.66.0.bb new file mode 100644 index 000000000..92c86a3ef --- /dev/null +++ b/poky/meta/recipes-support/boost/bjam-native_1.66.0.bb @@ -0,0 +1,19 @@ +require boost-${PV}.inc + +SUMMARY = "Portable Boost.Jam build tool for boost" +SECTION = "devel" + +inherit native + +SRC_URI += "file://bjam-native-build-bjam.debug.patch \ + file://0001-Fix-a-strange-assert-typo-how-was-this-released-with.patch" + +do_compile() { + ./bootstrap.sh --with-toolset=gcc +} + +do_install() { + install -d ${D}${bindir}/ + # install unstripped version for bjam + install -c -m 755 bjam.debug ${D}${bindir}/bjam +} diff --git a/poky/meta/recipes-support/boost/boost-1.66.0.inc b/poky/meta/recipes-support/boost/boost-1.66.0.inc new file mode 100644 index 000000000..fe2b8639f --- /dev/null +++ b/poky/meta/recipes-support/boost/boost-1.66.0.inc @@ -0,0 +1,21 @@ +# The Boost web site provides free peer-reviewed portable +# C++ source libraries. The emphasis is on libraries which +# work well with the C++ Standard Library. The libraries are +# intended to be widely useful, and are in regular use by +# thousands of programmers across a broad spectrum of applications. +HOMEPAGE = "http://www.boost.org/" +LICENSE = "BSL-1.0 & MIT & Python-2.0" +LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c" + +BOOST_VER = "${@"_".join(d.getVar("PV").split("."))}" +BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}" +BOOST_P = "boost_${BOOST_VER}" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/boost/boost/${PV}/${BOOST_P}.tar.bz2" +SRC_URI[md5sum] = "b2dfbd6c717be4a7bb2d88018eaccf75" +SRC_URI[sha256sum] = "5721818253e6a0989583192f96782c4a98eb6204965316df9f5ad75819225ca9" + +UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/" +UPSTREAM_CHECK_REGEX = "boostorg/release/(?P.*)/source/" + +S = "${WORKDIR}/${BOOST_P}" diff --git a/poky/meta/recipes-support/boost/boost.inc b/poky/meta/recipes-support/boost/boost.inc new file mode 100644 index 000000000..0461ec6fc --- /dev/null +++ b/poky/meta/recipes-support/boost/boost.inc @@ -0,0 +1,200 @@ +SUMMARY = "Free peer-reviewed portable C++ source libraries" +SECTION = "libs" +DEPENDS = "bjam-native zlib bzip2" + +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +BOOST_LIBS = "\ + atomic \ + chrono \ + container \ + date_time \ + exception \ + filesystem \ + graph \ + iostreams \ + log \ + math \ + program_options \ + random \ + regex \ + serialization \ + signals \ + system \ + timer \ + test \ + thread \ + wave \ + " + +# only supported by x86 and powerpc +BOOST_LIBS_append_x86 = " context coroutine" +BOOST_LIBS_append_x86-64 = " context coroutine" +BOOST_LIBS_append_powerpc = " context coroutine" +# need consistent settings for native builds (x86 override not applied for native) +BOOST_LIBS_remove_class-native = " context coroutine" +# does not compile +BOOST_LIBS_remove_mips16e = "wave" + +# optional libraries +PACKAGECONFIG ??= "locale python" +PACKAGECONFIG[locale] = ",,icu" +PACKAGECONFIG[graph_parallel] = ",,,boost-mpi mpich" +PACKAGECONFIG[mpi] = ",,mpich" +PACKAGECONFIG[python] = ",,python3" + +BOOST_LIBS += "\ + ${@bb.utils.filter('PACKAGECONFIG', 'locale python', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'graph_parallel', 'graph_parallel mpi', \ + bb.utils.filter('PACKAGECONFIG', 'mpi', d), d)} \ +" + +inherit python3-dir +PYTHON_ROOT = "${STAGING_DIR_HOST}/${prefix}" + +# Make a package for each library, plus -dev +PACKAGES = "${PN}-dbg ${BOOST_PACKAGES}" +python __anonymous () { + packages = [] + extras = [] + for lib in d.getVar('BOOST_LIBS').split(): + extras.append("--with-%s" % lib) + pkg = "boost-%s" % lib.replace("_", "-") + packages.append(pkg) + if not d.getVar("FILES_%s" % pkg): + d.setVar("FILES_%s" % pkg, "${libdir}/libboost_%s*.so.*" % lib) + d.setVar("BOOST_PACKAGES", " ".join(packages)) + d.setVar("BJAM_EXTRA", " ".join(extras)) +} + +# Override the contents of specific packages +FILES_${PN}-graph_parallel = "${libdir}/libboost_graph_parallel.so.*" +FILES_${PN}-locale = "${libdir}/libboost_locale.so.*" +FILES_${PN}-mpi = "${libdir}/mpi.so ${libdir}/libboost_mpi*.so.*" +FILES_boost-serialization = "${libdir}/libboost_serialization*.so.* \ + ${libdir}/libboost_wserialization*.so.*" +FILES_boost-test = "${libdir}/libboost_prg_exec_monitor*.so.* \ + ${libdir}/libboost_unit_test_framework*.so.*" + +# -dev last to pick up the remaining stuff +PACKAGES += "${PN}-dev ${PN}-staticdev" +FILES_${PN}-dev = "${includedir} ${libdir}/libboost_*.so" +FILES_${PN}-staticdev = "${libdir}/libboost_*.a" + +# "boost" is a metapackage which pulls in all boost librabries +PACKAGES += "${PN}" +FILES_${PN} = "" +ALLOW_EMPTY_${PN} = "1" +RRECOMMENDS_${PN} += "${BOOST_PACKAGES}" +RRECOMMENDS_${PN}_class-native = "" + +# to avoid GNU_HASH QA errors added LDFLAGS to ARCH; a little bit dirty but at least it works +TARGET_CC_ARCH += "${LDFLAGS}" + +# Oh yippee, a new build system, it's sooo cooool I could eat my own +# foot. inlining=on lets the compiler choose, I think. At least this +# stuff is documented... +# NOTE: if you leave on then in a debug build the build sys +# objcopy will be invoked, and that won't work. Building debug apparently +# requires hacking gcc-tools.jam +# +# Sometimes I wake up screaming. Famous figures are gathered in the nightmare, +# Steve Bourne, Larry Wall, the whole of the ANSI C committee. They're just +# standing there, waiting, but the truely terrifying thing is what they carry +# in their hands. At first sight each seems to bear the same thing, but it is +# not so for the forms in their grasp are ever so slightly different one from +# the other. Each is twisted in some grotesque way from the other to make each +# an unspeakable perversion impossible to perceive without the onset of madness. +# True insanity awaits anyone who perceives all of these horrors together. +# +# Quotation marks, there might be an easier way to do this, but I can't find +# it. The problem is that the user.hpp configuration file must receive a +# pre-processor macro defined as the appropriate string - complete with "'s +# around it. (<> is a possibility here but the danger to that is that the +# failure case interprets the < and > as shell redirections, creating +# random files in the source tree.) +# +#bjam: '-DBOOST_PLATFORM_CONFIG=\"config\"' +#do_compile: '-sGCC=... '"'-DBOOST_PLATFORM_CONFIG=\"config\"'" +SQD = '"' +EQD = '\"' +#boost.bb: "... '-sGCC=... '${SQD}'-DBOOST_PLATFORM_CONFIG=${EQD}config${EQD}'${SQD} ..." +BJAM_CONF = "${SQD}'-DBOOST_PLATFORM_CONFIG=${EQD}boost/config/platform/${TARGET_OS}.hpp${EQD}'${SQD}" + +BJAM_TOOLS = "--ignore-site-config \ + '-sTOOLS=gcc' \ + '-sGCC=${CC} '${BJAM_CONF} \ + '-sGXX=${CXX} '${BJAM_CONF} \ + '-sGCC_INCLUDE_DIRECTORY=${STAGING_INCDIR}' \ + '-sGCC_STDLIB_DIRECTORY=${STAGING_LIBDIR}' \ + '-sBUILD=release space multi on off' \ + '-sPYTHON_ROOT=${PYTHON_ROOT}' \ + '--layout=system' \ + " + +# use PARALLEL_MAKE to speed up the build, but limit it by -j 64, greater parallelism causes bjam to segfault or to ignore -j +# https://svn.boost.org/trac/boost/ticket/7634 +BOOST_PARALLEL_MAKE = "${@oe.utils.parallel_make_argument(d, '-j%d', limit=64)}" +BJAM_OPTS = '${BOOST_PARALLEL_MAKE} -d+2 -q \ + ${BJAM_TOOLS} \ + -sBOOST_BUILD_USER_CONFIG=${WORKDIR}/user-config.jam \ + --build-dir=${S}/${TARGET_SYS} \ + --disable-icu \ + ${BJAM_EXTRA}' + +# Native compilation of bzip2 isn't working +BJAM_OPTS_append_class-native = ' -sNO_BZIP2=1' + +# Adjust the build for x32 +BJAM_OPTS_append_x86-x32 = " abi=x32 address-model=64" + +do_configure() { + cp -f ${S}/boost/config/platform/linux.hpp ${S}/boost/config/platform/linux-gnueabi.hpp + + # D2194:Fixing the failure of "error: duplicate initialization of gcc with the following parameters" during compilation. + rm -f ${WORKDIR}/user-config.jam + echo 'using gcc : 4.3.1 : ${CXX} : "${CFLAGS}" "${CXXFLAGS}" "${LDFLAGS}" ;' >> ${WORKDIR}/user-config.jam + + # If we want Python then we need to tell Boost *exactly* where to find it + if ${@bb.utils.contains('BOOST_LIBS', 'python', 'true', 'false', d)}; then + echo "using python : ${PYTHON_BASEVERSION} : ${STAGING_DIR_HOST}${bindir}/python3 : ${STAGING_DIR_HOST}${includedir}/${PYTHON_DIR}${PYTHON_ABI} : ${STAGING_DIR_HOST}${libdir}/${PYTHON_DIR} ;" >> ${WORKDIR}/user-config.jam + fi + + if ${@bb.utils.contains('BOOST_LIBS', 'mpi', 'true', 'false', d)}; then + echo "using mpi : : mpi ;" >> ${WORKDIR}/user-config.jam + fi + + CC="${BUILD_CC}" CFLAGS="${BUILD_CFLAGS}" ./bootstrap.sh --with-bjam=bjam --with-toolset=gcc + + # Boost can't be trusted to find Python on it's own, so remove any mention + # of it from the boost configuration + sed -i '/using python/d' ${S}/project-config.jam +} + +do_compile() { + rm -rf ${S}/${TARGET_SYS} + bjam ${BJAM_OPTS} --prefix=${prefix} \ + --exec-prefix=${exec_prefix} \ + --libdir=${libdir} \ + --includedir=${includedir} \ + --debug-configuration +} + +do_install() { + bjam ${BJAM_OPTS} \ + --libdir=${D}${libdir} \ + --includedir=${D}${includedir} \ + install + for lib in ${BOOST_LIBS}; do + if [ -e ${D}${libdir}/libboost_${lib}.a ]; then + ln -s libboost_${lib}.a ${D}${libdir}/libboost_${lib}-mt.a + fi + if [ -e ${D}${libdir}/libboost_${lib}.so ]; then + ln -s libboost_${lib}.so ${D}${libdir}/libboost_${lib}-mt.so + fi + done + +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/boost/boost/0001-Apply-boost-1.62.0-no-forced-flags.patch.patch b/poky/meta/recipes-support/boost/boost/0001-Apply-boost-1.62.0-no-forced-flags.patch.patch new file mode 100644 index 000000000..169906344 --- /dev/null +++ b/poky/meta/recipes-support/boost/boost/0001-Apply-boost-1.62.0-no-forced-flags.patch.patch @@ -0,0 +1,100 @@ +From 8845a786598f1d9e83aa1b7d2966b0d1eb765ba0 Mon Sep 17 00:00:00 2001 +From: Christopher Larson +Date: Tue, 13 Dec 2016 10:14:31 -0700 +Subject: [PATCH 1/3] Apply boost-1.62.0-no-forced-flags.patch + +Upstream-Status: Inappropriate +Signed-off-by: Christopher Larson +--- + libs/log/build/Jamfile.v2 | 4 ++-- + libs/log/config/x86-ext/Jamfile.jam | 16 ++++++++-------- + libs/log/src/dump_avx2.cpp | 4 ++++ + libs/log/src/dump_ssse3.cpp | 4 ++++ + 4 files changed, 18 insertions(+), 10 deletions(-) + +diff --git a/libs/log/build/Jamfile.v2 b/libs/log/build/Jamfile.v2 +index 4abbdbc..b3016fc 100644 +--- a/libs/log/build/Jamfile.v2 ++++ b/libs/log/build/Jamfile.v2 +@@ -373,7 +373,7 @@ rule avx2-targets-cond ( properties * ) + } + else if clang in $(properties) + { +- result = "-mavx -mavx2" ; ++ result = ; + } + else if intel in $(properties) + { +@@ -383,7 +383,7 @@ rule avx2-targets-cond ( properties * ) + } + else + { +- result = "-xCORE-AVX2 -fabi-version=0" ; ++ result = "-fabi-version=0" ; + } + } + else if msvc in $(properties) +diff --git a/libs/log/config/x86-ext/Jamfile.jam b/libs/log/config/x86-ext/Jamfile.jam +index 0e9695a..dcc394d 100644 +--- a/libs/log/config/x86-ext/Jamfile.jam ++++ b/libs/log/config/x86-ext/Jamfile.jam +@@ -15,19 +15,19 @@ project /boost/log/x86-extensions + + obj ssse3 : ssse3.cpp + : +- gcc:"-msse -msse2 -msse3 -mssse3" +- clang:"-msse -msse2 -msse3 -mssse3" +- intel-linux:"-xSSSE3" +- intel-darwin:"-xSSSE3" ++ gcc: ++ clang: ++ intel-linux: ++ intel-darwin: + intel-win:"/QxSSSE3" + ; + + obj avx2 : avx2.cpp + : +- gcc:"-mavx -mavx2 -fabi-version=0" +- clang:"-mavx -mavx2" +- intel-linux:"-xCORE-AVX2 -fabi-version=0" +- intel-darwin:"-xCORE-AVX2 -fabi-version=0" ++ gcc:"-fabi-version=0" ++ clang: ++ intel-linux:"-fabi-version=0" ++ intel-darwin:"-fabi-version=0" + intel-win:"/arch:CORE-AVX2" + msvc:"/arch:AVX" + ; +diff --git a/libs/log/src/dump_avx2.cpp b/libs/log/src/dump_avx2.cpp +index 4ab1250..610fc6d 100644 +--- a/libs/log/src/dump_avx2.cpp ++++ b/libs/log/src/dump_avx2.cpp +@@ -22,6 +22,10 @@ + #include + #include + ++#if !defined(__AVX2__) ++#error "AVX2 Unsupported!" ++#endif ++ + #if defined(__x86_64) || defined(__x86_64__) || \ + defined(__amd64__) || defined(__amd64) || \ + defined(_M_X64) +diff --git a/libs/log/src/dump_ssse3.cpp b/libs/log/src/dump_ssse3.cpp +index 1325b49..60d4112 100644 +--- a/libs/log/src/dump_ssse3.cpp ++++ b/libs/log/src/dump_ssse3.cpp +@@ -22,6 +22,10 @@ + #include + #include + ++#if !defined(__SSSE3__) ++#error "SSSE3 Unsupported!" ++#endif ++ + #if defined(__x86_64) || defined(__x86_64__) || \ + defined(__amd64__) || defined(__amd64) || \ + defined(_M_X64) +-- +2.8.0 diff --git a/poky/meta/recipes-support/boost/boost/0002-Don-t-set-up-m32-m64-we-do-that-ourselves.patch b/poky/meta/recipes-support/boost/boost/0002-Don-t-set-up-m32-m64-we-do-that-ourselves.patch new file mode 100644 index 000000000..26f3cbb05 --- /dev/null +++ b/poky/meta/recipes-support/boost/boost/0002-Don-t-set-up-m32-m64-we-do-that-ourselves.patch @@ -0,0 +1,65 @@ +From e4d3a7470b307693660d0412732e7266d1738d8c Mon Sep 17 00:00:00 2001 +From: Christopher Larson +Date: Tue, 13 Dec 2016 10:29:17 -0700 +Subject: [PATCH 6/6] Don't set up -m32/-m64, we do that ourselves + +Upstream-Status: Inappropriate +Signed-off-by: Christopher Larson + +--- + tools/build/src/tools/gcc.jam | 39 --------------------------------------- + 1 file changed, 39 deletions(-) + +diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam +index e4fc6c32..37914fd0 100644 +--- a/tools/build/src/tools/gcc.jam ++++ b/tools/build/src/tools/gcc.jam +@@ -337,45 +337,6 @@ rule set-address-model-options ( targets * : sources * : properties * ) + { + local option ; + local target-os = [ feature.get-values target-os : $(properties) ] ; +- if $(target-os) = aix +- { +- if $(model) = 32 +- { +- option = -maix32 ; +- } +- else +- { +- option = -maix64 ; +- } +- } +- else if $(target-os) = hpux +- { +- if $(model) = 32 +- { +- option = -milp32 ; +- } +- else +- { +- option = -mlp64 ; +- } +- } +- else +- { +- local arch = [ feature.get-values architecture : $(properties) ] ; +- if $(arch) = power || $(arch) = sparc || $(arch) = x86 +- { +- if $(model) = 32 +- { +- option = -m32 ; +- } +- else if $(model) = 64 +- { +- option = -m64 ; +- } +- } +- # For darwin, the model can be 32_64. darwin.jam will handle that +- # on its own. +- } + OPTIONS on $(targets) += $(option) ; + } + } +-- +2.15.1 + diff --git a/poky/meta/recipes-support/boost/boost/0003-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch b/poky/meta/recipes-support/boost/boost/0003-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch new file mode 100644 index 000000000..fb6d9711b --- /dev/null +++ b/poky/meta/recipes-support/boost/boost/0003-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch @@ -0,0 +1,151 @@ +From 0868761e7d2d75d472090e3ef96f3d2f9ced27f3 Mon Sep 17 00:00:00 2001 +From: Christopher Larson +Date: Tue, 13 Dec 2016 10:29:32 -0700 +Subject: [PATCH 5/6] Don't set up arch/instruction-set flags, we do that + ourselves + +Upstream-Status: Inappropriate +Signed-off-by: Christopher Larson + +--- + tools/build/src/tools/gcc.jam | 127 ------------------------------------------ + 1 file changed, 127 deletions(-) + +diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam +index e3b1b952..e4fc6c32 100644 +--- a/tools/build/src/tools/gcc.jam ++++ b/tools/build/src/tools/gcc.jam +@@ -1276,130 +1276,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + : + $(architecture)/$(instruction-set) + : $(values) ; + } +- +- +-# Set architecture/instruction-set options. +-# +-# x86 and compatible +-# The 'native' option appeared in gcc 4.2 so we cannot safely use it as default. +-# Use i686 instead for 32-bit. +-toolset.flags gcc OPTIONS x86/32/ : -march=i686 ; +-cpu-flags gcc OPTIONS : x86 : native : -march=native ; +-cpu-flags gcc OPTIONS : x86 : i486 : -march=i486 ; +-cpu-flags gcc OPTIONS : x86 : i586 : -march=i586 ; +-cpu-flags gcc OPTIONS : x86 : i686 : -march=i686 ; +-cpu-flags gcc OPTIONS : x86 : pentium : -march=pentium ; +-cpu-flags gcc OPTIONS : x86 : pentium-mmx : -march=pentium-mmx ; +-cpu-flags gcc OPTIONS : x86 : pentiumpro : -march=pentiumpro ; +-cpu-flags gcc OPTIONS : x86 : pentium2 : -march=pentium2 ; +-cpu-flags gcc OPTIONS : x86 : pentium3 : -march=pentium3 ; +-cpu-flags gcc OPTIONS : x86 : pentium3m : -march=pentium3m ; +-cpu-flags gcc OPTIONS : x86 : pentium-m : -march=pentium-m ; +-cpu-flags gcc OPTIONS : x86 : pentium4 : -march=pentium4 ; +-cpu-flags gcc OPTIONS : x86 : pentium4m : -march=pentium4m ; +-cpu-flags gcc OPTIONS : x86 : prescott : -march=prescott ; +-cpu-flags gcc OPTIONS : x86 : nocona : -march=nocona ; +-cpu-flags gcc OPTIONS : x86 : core2 : -march=core2 ; +-cpu-flags gcc OPTIONS : x86 : conroe : -march=core2 ; +-cpu-flags gcc OPTIONS : x86 : conroe-xe : -march=core2 ; +-cpu-flags gcc OPTIONS : x86 : conroe-l : -march=core2 ; +-cpu-flags gcc OPTIONS : x86 : allendale : -march=core2 ; +-cpu-flags gcc OPTIONS : x86 : wolfdale : -march=core2 -msse4.1 ; +-cpu-flags gcc OPTIONS : x86 : merom : -march=core2 ; +-cpu-flags gcc OPTIONS : x86 : merom-xe : -march=core2 ; +-cpu-flags gcc OPTIONS : x86 : kentsfield : -march=core2 ; +-cpu-flags gcc OPTIONS : x86 : kentsfield-xe : -march=core2 ; +-cpu-flags gcc OPTIONS : x86 : yorksfield : -march=core2 ; +-cpu-flags gcc OPTIONS : x86 : penryn : -march=core2 ; +-cpu-flags gcc OPTIONS : x86 : corei7 : -march=corei7 ; +-cpu-flags gcc OPTIONS : x86 : nehalem : -march=corei7 ; +-cpu-flags gcc OPTIONS : x86 : corei7-avx : -march=corei7-avx ; +-cpu-flags gcc OPTIONS : x86 : sandy-bridge : -march=corei7-avx ; +-cpu-flags gcc OPTIONS : x86 : core-avx-i : -march=core-avx-i ; +-cpu-flags gcc OPTIONS : x86 : ivy-bridge : -march=core-avx-i ; +-cpu-flags gcc OPTIONS : x86 : haswell : -march=core-avx-i -mavx2 -mfma -mbmi -mbmi2 -mlzcnt ; +-cpu-flags gcc OPTIONS : x86 : broadwell : -march=broadwell ; +-cpu-flags gcc OPTIONS : x86 : skylake : -march=skylake ; +-cpu-flags gcc OPTIONS : x86 : skylake-avx512 : -march=skylake-avx512 ; +-cpu-flags gcc OPTIONS : x86 : cannonlake : -march=skylake-avx512 -mavx512vbmi -mavx512ifma -msha ; +-cpu-flags gcc OPTIONS : x86 : k6 : -march=k6 ; +-cpu-flags gcc OPTIONS : x86 : k6-2 : -march=k6-2 ; +-cpu-flags gcc OPTIONS : x86 : k6-3 : -march=k6-3 ; +-cpu-flags gcc OPTIONS : x86 : athlon : -march=athlon ; +-cpu-flags gcc OPTIONS : x86 : athlon-tbird : -march=athlon-tbird ; +-cpu-flags gcc OPTIONS : x86 : athlon-4 : -march=athlon-4 ; +-cpu-flags gcc OPTIONS : x86 : athlon-xp : -march=athlon-xp ; +-cpu-flags gcc OPTIONS : x86 : athlon-mp : -march=athlon-mp ; +-## +-cpu-flags gcc OPTIONS : x86 : k8 : -march=k8 ; +-cpu-flags gcc OPTIONS : x86 : opteron : -march=opteron ; +-cpu-flags gcc OPTIONS : x86 : athlon64 : -march=athlon64 ; +-cpu-flags gcc OPTIONS : x86 : athlon-fx : -march=athlon-fx ; +-cpu-flags gcc OPTIONS : x86 : k8-sse3 : -march=k8-sse3 ; +-cpu-flags gcc OPTIONS : x86 : opteron-sse3 : -march=opteron-sse3 ; +-cpu-flags gcc OPTIONS : x86 : athlon64-sse3 : -march=athlon64-sse3 ; +-cpu-flags gcc OPTIONS : x86 : amdfam10 : -march=amdfam10 ; +-cpu-flags gcc OPTIONS : x86 : barcelona : -march=barcelona ; +-cpu-flags gcc OPTIONS : x86 : bdver1 : -march=bdver1 ; +-cpu-flags gcc OPTIONS : x86 : bdver2 : -march=bdver2 ; +-cpu-flags gcc OPTIONS : x86 : bdver3 : -march=bdver3 ; +-cpu-flags gcc OPTIONS : x86 : bdver4 : -march=bdver4 ; +-cpu-flags gcc OPTIONS : x86 : btver1 : -march=btver1 ; +-cpu-flags gcc OPTIONS : x86 : btver2 : -march=btver2 ; +-cpu-flags gcc OPTIONS : x86 : znver1 : -march=znver1 ; +-cpu-flags gcc OPTIONS : x86 : winchip-c6 : -march=winchip-c6 ; +-cpu-flags gcc OPTIONS : x86 : winchip2 : -march=winchip2 ; +-cpu-flags gcc OPTIONS : x86 : c3 : -march=c3 ; +-cpu-flags gcc OPTIONS : x86 : c3-2 : -march=c3-2 ; +-## +-cpu-flags gcc OPTIONS : x86 : atom : -march=atom ; +-# Sparc +-cpu-flags gcc OPTIONS : sparc : v7 : -mcpu=v7 : default ; +-cpu-flags gcc OPTIONS : sparc : cypress : -mcpu=cypress ; +-cpu-flags gcc OPTIONS : sparc : v8 : -mcpu=v8 ; +-cpu-flags gcc OPTIONS : sparc : supersparc : -mcpu=supersparc ; +-cpu-flags gcc OPTIONS : sparc : sparclite : -mcpu=sparclite ; +-cpu-flags gcc OPTIONS : sparc : hypersparc : -mcpu=hypersparc ; +-cpu-flags gcc OPTIONS : sparc : sparclite86x : -mcpu=sparclite86x ; +-cpu-flags gcc OPTIONS : sparc : f930 : -mcpu=f930 ; +-cpu-flags gcc OPTIONS : sparc : f934 : -mcpu=f934 ; +-cpu-flags gcc OPTIONS : sparc : sparclet : -mcpu=sparclet ; +-cpu-flags gcc OPTIONS : sparc : tsc701 : -mcpu=tsc701 ; +-cpu-flags gcc OPTIONS : sparc : v9 : -mcpu=v9 ; +-cpu-flags gcc OPTIONS : sparc : ultrasparc : -mcpu=ultrasparc ; +-cpu-flags gcc OPTIONS : sparc : ultrasparc3 : -mcpu=ultrasparc3 ; +-# RS/6000 & PowerPC +-cpu-flags gcc OPTIONS : power : 403 : -mcpu=403 ; +-cpu-flags gcc OPTIONS : power : 505 : -mcpu=505 ; +-cpu-flags gcc OPTIONS : power : 601 : -mcpu=601 ; +-cpu-flags gcc OPTIONS : power : 602 : -mcpu=602 ; +-cpu-flags gcc OPTIONS : power : 603 : -mcpu=603 ; +-cpu-flags gcc OPTIONS : power : 603e : -mcpu=603e ; +-cpu-flags gcc OPTIONS : power : 604 : -mcpu=604 ; +-cpu-flags gcc OPTIONS : power : 604e : -mcpu=604e ; +-cpu-flags gcc OPTIONS : power : 620 : -mcpu=620 ; +-cpu-flags gcc OPTIONS : power : 630 : -mcpu=630 ; +-cpu-flags gcc OPTIONS : power : 740 : -mcpu=740 ; +-cpu-flags gcc OPTIONS : power : 7400 : -mcpu=7400 ; +-cpu-flags gcc OPTIONS : power : 7450 : -mcpu=7450 ; +-cpu-flags gcc OPTIONS : power : 750 : -mcpu=750 ; +-cpu-flags gcc OPTIONS : power : 801 : -mcpu=801 ; +-cpu-flags gcc OPTIONS : power : 821 : -mcpu=821 ; +-cpu-flags gcc OPTIONS : power : 823 : -mcpu=823 ; +-cpu-flags gcc OPTIONS : power : 860 : -mcpu=860 ; +-cpu-flags gcc OPTIONS : power : 970 : -mcpu=970 ; +-cpu-flags gcc OPTIONS : power : 8540 : -mcpu=8540 ; +-cpu-flags gcc OPTIONS : power : power : -mcpu=power ; +-cpu-flags gcc OPTIONS : power : power2 : -mcpu=power2 ; +-cpu-flags gcc OPTIONS : power : power3 : -mcpu=power3 ; +-cpu-flags gcc OPTIONS : power : power4 : -mcpu=power4 ; +-cpu-flags gcc OPTIONS : power : power5 : -mcpu=power5 ; +-cpu-flags gcc OPTIONS : power : powerpc : -mcpu=powerpc ; +-cpu-flags gcc OPTIONS : power : powerpc64 : -mcpu=powerpc64 ; +-cpu-flags gcc OPTIONS : power : rios : -mcpu=rios ; +-cpu-flags gcc OPTIONS : power : rios1 : -mcpu=rios1 ; +-cpu-flags gcc OPTIONS : power : rios2 : -mcpu=rios2 ; +-cpu-flags gcc OPTIONS : power : rsc : -mcpu=rsc ; +-cpu-flags gcc OPTIONS : power : rs64a : -mcpu=rs64 ; +-# AIX variant of RS/6000 & PowerPC +-toolset.flags gcc AROPTIONS 64/aix : "-X64" ; +-- +2.15.1 + diff --git a/poky/meta/recipes-support/boost/boost/arm-intrinsics.patch b/poky/meta/recipes-support/boost/boost/arm-intrinsics.patch new file mode 100644 index 000000000..fe85c69a8 --- /dev/null +++ b/poky/meta/recipes-support/boost/boost/arm-intrinsics.patch @@ -0,0 +1,55 @@ +Upstream-Status: Backport + +8/17/2010 - rebased to 1.44 by Qing He + +diff --git a/boost/smart_ptr/detail/atomic_count_sync.hpp b/boost/smart_ptr/detail/atomic_count_sync.hpp +index b6359b5..78b1cc2 100644 +--- a/boost/smart_ptr/detail/atomic_count_sync.hpp ++++ b/boost/smart_ptr/detail/atomic_count_sync.hpp +@@ -33,17 +33,46 @@ public: + + long operator++() + { ++#ifdef __ARM_ARCH_7A__ ++ int v1, tmp; ++ asm volatile ("1: \n\t" ++ "ldrex %0, %1 \n\t" ++ "add %0 ,%0, #1 \n\t" ++ "strex %2, %0, %1 \n\t" ++ "cmp %2, #0 \n\t" ++ "bne 1b \n\t" ++ : "=&r" (v1), "+Q"(value_), "=&r"(tmp) ++ ); ++#else + return __sync_add_and_fetch( &value_, 1 ); ++#endif + } + + long operator--() + { ++#ifdef __ARM_ARCH_7A__ ++ int v1, tmp; ++ asm volatile ("1: \n\t" ++ "ldrex %0, %1 \n\t" ++ "sub %0 ,%0, #1 \n\t" ++ "strex %2, %0, %1 \n\t" ++ "cmp %2, #0 \n\t" ++ "bne 1b \n\t" ++ : "=&r" (v1), "+Q"(value_), "=&r"(tmp) ++ ); ++ return value_; ++#else + return __sync_add_and_fetch( &value_, -1 ); ++#endif + } + + operator long() const + { ++#if __ARM_ARCH_7A__ ++ return value_; ++#else + return __sync_fetch_and_add( &value_, 0 ); ++#endif + } + + private: diff --git a/poky/meta/recipes-support/boost/boost/boost-CVE-2012-2677.patch b/poky/meta/recipes-support/boost/boost/boost-CVE-2012-2677.patch new file mode 100644 index 000000000..917617a04 --- /dev/null +++ b/poky/meta/recipes-support/boost/boost/boost-CVE-2012-2677.patch @@ -0,0 +1,112 @@ +Reference + +https://svn.boost.org/trac/boost/changeset/78326 + +Upstream-Status: Backport +CVE: CVE-2012-2677 +Signed-off-by: Yue Tao + +diff --git a/boost/pool/pool.hpp.old b/boost/pool/pool.hpp +index c47b11f..417a1e0 100644 +--- a/boost/pool/pool.hpp.old ++++ b/boost/pool/pool.hpp +@@ -26,6 +26,8 @@ + + #include + ++// std::numeric_limits ++#include + // boost::integer::static_lcm + #include + // boost::simple_segregated_storage +@@ -355,6 +357,15 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t + return s; + } + ++ size_type max_chunks() const ++ { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool. ++ size_type partition_size = alloc_size(); ++ size_type POD_size = integer::static_lcm::value + sizeof(size_type); ++ size_type max_chunks = (std::numeric_limits::max() - POD_size) / alloc_size(); ++ ++ return max_chunks; ++ } ++ + static void * & nextof(void * const ptr) + { //! \returns Pointer dereferenced. + //! (Provided and used for the sake of code readability :) +@@ -375,6 +386,8 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t + //! the first time that object needs to allocate system memory. + //! The default is 32. This parameter may not be 0. + //! \param nmax_size is the maximum number of chunks to allocate in one block. ++ set_next_size(nnext_size); ++ set_max_size(nmax_size); + } + + ~pool() +@@ -398,8 +411,8 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t + } + void set_next_size(const size_type nnext_size) + { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0. +- //! \returns nnext_size. +- next_size = start_size = nnext_size; ++ BOOST_USING_STD_MIN(); ++ next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks()); + } + size_type get_max_size() const + { //! \returns max_size. +@@ -407,7 +420,8 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t + } + void set_max_size(const size_type nmax_size) + { //! Set max_size. +- max_size = nmax_size; ++ BOOST_USING_STD_MIN(); ++ max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks()); + } + size_type get_requested_size() const + { //! \returns the requested size passed into the constructor. +@@ -708,9 +722,9 @@ void * pool::malloc_need_resize() + + BOOST_USING_STD_MIN(); + if(!max_size) +- next_size <<= 1; ++ set_next_size(next_size << 1); + else if( next_size*partition_size/requested_size < max_size) +- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); ++ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); + + // initialize it, + store().add_block(node.begin(), node.element_size(), partition_size); +@@ -748,9 +762,9 @@ void * pool::ordered_malloc_need_resize() + + BOOST_USING_STD_MIN(); + if(!max_size) +- next_size <<= 1; ++ set_next_size(next_size << 1); + else if( next_size*partition_size/requested_size < max_size) +- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); ++ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); + + // initialize it, + // (we can use "add_block" here because we know that +@@ -792,6 +806,8 @@ void * pool::ordered_malloc(const size_type n) + { //! Gets address of a chunk n, allocating new memory if not already available. + //! \returns Address of chunk n if allocated ok. + //! \returns 0 if not enough memory for n chunks. ++ if (n > max_chunks()) ++ return 0; + + const size_type partition_size = alloc_size(); + const size_type total_req_size = n * requested_size; +@@ -840,9 +856,9 @@ void * pool::ordered_malloc(const size_type n) + + BOOST_USING_STD_MIN(); + if(!max_size) +- next_size <<= 1; ++ set_next_size(next_size << 1); + else if( next_size*partition_size/requested_size < max_size) +- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); ++ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); + + // insert it into the list, + // handle border case. diff --git a/poky/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch b/poky/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch new file mode 100644 index 000000000..595ba1786 --- /dev/null +++ b/poky/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch @@ -0,0 +1,31 @@ +From cabfcba1ff7511ffd6b91ca244288d44f585aad2 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Fri, 23 Sep 2016 01:04:50 -0700 +Subject: [PATCH] boost-math: disable pch for gcc + +Upstream-Status: Inappropriate [*] + +* It's a work around for a defect when build in parallel: +https://svn.boost.org/trac/boost/ticket/12477 + +Signed-off-by: Jackie Huang +--- + libs/math/build/Jamfile.v2 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libs/math/build/Jamfile.v2 b/libs/math/build/Jamfile.v2 +index e19fb2e..82472a7 100644 +--- a/libs/math/build/Jamfile.v2 ++++ b/libs/math/build/Jamfile.v2 +@@ -13,7 +13,7 @@ project + #intel-linux:off + intel-darwin:off + msvc-7.1:off +- gcc,windows:off ++ gcc:off + #gcc:-fvisibility=hidden + intel-linux:-fvisibility=hidden + #sun:-xldscope=hidden +-- +2.7.4 + diff --git a/poky/meta/recipes-support/boost/boost_1.66.0.bb b/poky/meta/recipes-support/boost/boost_1.66.0.bb new file mode 100644 index 000000000..63b82a599 --- /dev/null +++ b/poky/meta/recipes-support/boost/boost_1.66.0.bb @@ -0,0 +1,11 @@ +require boost-${PV}.inc +require boost.inc + +SRC_URI += "\ + file://arm-intrinsics.patch \ + file://boost-CVE-2012-2677.patch \ + file://boost-math-disable-pch-for-gcc.patch \ + file://0001-Apply-boost-1.62.0-no-forced-flags.patch.patch \ + file://0003-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch \ + file://0002-Don-t-set-up-m32-m64-we-do-that-ourselves.patch \ +" diff --git a/poky/meta/recipes-support/boost/files/0001-Fix-a-strange-assert-typo-how-was-this-released-with.patch b/poky/meta/recipes-support/boost/files/0001-Fix-a-strange-assert-typo-how-was-this-released-with.patch new file mode 100644 index 000000000..a75133d2b --- /dev/null +++ b/poky/meta/recipes-support/boost/files/0001-Fix-a-strange-assert-typo-how-was-this-released-with.patch @@ -0,0 +1,37 @@ +From 5685527364198597f25fc1c6236cb64cbc3de44f Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 4 Oct 2017 18:16:08 +0300 +Subject: [PATCH] Fix a strange assert typo; how was this released without + noticing? + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + tools/build/src/engine/debugger.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tools/build/src/engine/debugger.c b/tools/build/src/engine/debugger.c +index 802f262..152a7e6 100644 +--- a/tools/build/src/engine/debugger.c ++++ b/tools/build/src/engine/debugger.c +@@ -1092,7 +1092,7 @@ static void debug_start_child( int argc, const char * * argv ) + PROCESS_INFORMATION pi = { NULL, NULL, 0, 0 }; + STARTUPINFO si = { sizeof( STARTUPINFO ), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 }; +- assert( DEBUG_STATE == DEBUG_NO_CHILD ); ++ assert( debug_state == DEBUG_NO_CHILD ); + if ( ! CreatePipe( &pipe1[ 0 ], &pipe1[ 1 ], &sa, 0 ) ) + { + printf("internal error\n"); +@@ -1176,7 +1176,7 @@ static void debug_start_child( int argc, const char * * argv ) + int read_fd; + int pid; + int i; +- assert( DEBUG_STATE == DEBUG_NO_CHILD ); ++ assert( debug_state == DEBUG_NO_CHILD ); + pipe(pipe1); + pipe(pipe2); + pid = fork(); +-- +2.14.1 + diff --git a/poky/meta/recipes-support/boost/files/bjam-native-build-bjam.debug.patch b/poky/meta/recipes-support/boost/files/bjam-native-build-bjam.debug.patch new file mode 100644 index 000000000..9f8b7eac0 --- /dev/null +++ b/poky/meta/recipes-support/boost/files/bjam-native-build-bjam.debug.patch @@ -0,0 +1,50 @@ +From 619ada314ab26c0c9cbfe5702cd9c0caa8f6415a Mon Sep 17 00:00:00 2001 +From: Wenzong Fan +Date: Mon, 3 Aug 2015 17:12:33 +0800 +Subject: [PATCH] bjam-native: build bjam.debug + +bjam is stripped by default, this causes QA warning while stripping it +from do_populate_sysroot(): + + WARNING: File '.../tmp/sysroots/x86_64-linux/usr/bin/bjam' \ + from bjam-native was already stripped, \ + this will prevent future debugging! + +The JAM scripts allow to build unstripped version with '--debug'. Just +build and install the bjam.debug to stop bjam from being stripped in +compile step. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Wenzong Fan +--- + bootstrap.sh | 1 + + tools/build/src/engine/build.sh | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/bootstrap.sh b/bootstrap.sh +index 98cf88b..54690aa 100755 +--- a/bootstrap.sh ++++ b/bootstrap.sh +@@ -228,6 +228,7 @@ if test "x$BJAM" = x; then + echo "tools/build/src/engine/$arch/b2" + cp "$BJAM" . + cp "$my_dir/tools/build/src/engine/$arch/bjam" . ++ cp "$my_dir/tools/build/src/engine/${arch}.debug/bjam" bjam.debug + + fi + +diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh +index 6dbc706..c69fdc7 100755 +--- a/tools/build/src/engine/build.sh ++++ b/tools/build/src/engine/build.sh +@@ -312,5 +312,5 @@ if test -x "./bootstrap/jam0" ; then + if test "${BJAM_UPDATE}" != "update" ; then + echo_run ./bootstrap/jam0 -f build.jam --toolset=$BOOST_JAM_TOOLSET "--toolset-root=$BOOST_JAM_TOOLSET_ROOT" "$@" clean + fi +- echo_run ./bootstrap/jam0 -f build.jam --toolset=$BOOST_JAM_TOOLSET "--toolset-root=$BOOST_JAM_TOOLSET_ROOT" "$@" ++ echo_run ./bootstrap/jam0 -f build.jam --toolset=$BOOST_JAM_TOOLSET "--toolset-root=$BOOST_JAM_TOOLSET_ROOT" "$@" --debug + fi +-- +1.9.1 + -- cgit v1.2.3