diff options
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/Manifest.gz | bin | 37640 -> 37617 bytes | |||
-rw-r--r-- | eclass/chromium-2.eclass | 4 | ||||
-rw-r--r-- | eclass/linux-info.eclass | 26 | ||||
-rw-r--r-- | eclass/mozconfig-v6.60.eclass | 12 | ||||
-rw-r--r-- | eclass/mozcoreconf-v6.eclass | 18 | ||||
-rw-r--r-- | eclass/toolchain.eclass | 9 | ||||
-rw-r--r-- | eclass/xdg-utils.eclass | 12 |
7 files changed, 50 insertions, 31 deletions
diff --git a/eclass/Manifest.gz b/eclass/Manifest.gz Binary files differindex 707fa5c59dac..78505268f5e9 100644 --- a/eclass/Manifest.gz +++ b/eclass/Manifest.gz diff --git a/eclass/chromium-2.eclass b/eclass/chromium-2.eclass index 712e44afc31d..c9cfe5acebee 100644 --- a/eclass/chromium-2.eclass +++ b/eclass/chromium-2.eclass @@ -106,8 +106,7 @@ chromium_pkg_die() { fi # Prevent user problems like bug #348235. - eshopts_push -s extglob - if is-flagq '-g?(gdb)?([1-9])'; then + if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then ewarn ewarn "You have enabled debug info (i.e. -g or -ggdb in your CFLAGS/CXXFLAGS)." ewarn "This produces very large build files causes the linker to consume large" @@ -116,7 +115,6 @@ chromium_pkg_die() { ewarn "Please try removing -g{,gdb} before reporting a bug." ewarn fi - eshopts_pop # ccache often causes bogus compile failures, especially when the cache gets # corrupted. diff --git a/eclass/linux-info.eclass b/eclass/linux-info.eclass index b158e345d166..98ec0ac8dabe 100644 --- a/eclass/linux-info.eclass +++ b/eclass/linux-info.eclass @@ -548,13 +548,22 @@ get_version() { return 1 fi + [ -d "${OUTPUT_DIR}" ] && KV_OUT_DIR="${OUTPUT_DIR}" + if [ -n "${KV_OUT_DIR}" ]; + then + qeinfo "Found kernel object directory:" + qeinfo " ${KV_OUT_DIR}" + fi + # and if we STILL have not got it, then we better just set it to KV_DIR + KV_OUT_DIR="${KV_OUT_DIR:-${KV_DIR}}" + # Grab the kernel release from the output directory. # TODO: we MUST detect kernel.release being out of date, and 'return 1' from # this function. - if [ -s "${KV_DIR}"/include/config/kernel.release ]; then - KV_LOCAL=$(<"${KV_DIR}"/include/config/kernel.release) - elif [ -s "${KV_DIR}"/.kernelrelease ]; then - KV_LOCAL=$(<"${KV_DIR}"/.kernelrelease) + if [ -s "${KV_OUT_DIR}"/include/config/kernel.release ]; then + KV_LOCAL=$(<"${KV_OUT_DIR}"/include/config/kernel.release) + elif [ -s "${KV_OUT_DIR}"/.kernelrelease ]; then + KV_LOCAL=$(<"${KV_OUT_DIR}"/.kernelrelease) else KV_LOCAL= fi @@ -586,15 +595,6 @@ get_version() { done fi - [ -d "${OUTPUT_DIR}" ] && KV_OUT_DIR="${OUTPUT_DIR}" - if [ -n "${KV_OUT_DIR}" ]; - then - qeinfo "Found kernel object directory:" - qeinfo " ${KV_OUT_DIR}" - fi - # and if we STILL have not got it, then we better just set it to KV_DIR - KV_OUT_DIR="${KV_OUT_DIR:-${KV_DIR}}" - # And we should set KV_FULL to the full expanded version KV_FULL="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}${KV_LOCAL}" diff --git a/eclass/mozconfig-v6.60.eclass b/eclass/mozconfig-v6.60.eclass index b86fa2a0dc62..de09ebcd6408 100644 --- a/eclass/mozconfig-v6.60.eclass +++ b/eclass/mozconfig-v6.60.eclass @@ -101,7 +101,7 @@ RDEPEND=">=app-text/hunspell-1.5.4:= >=x11-libs/pixman-0.19.2 >=dev-libs/glib-2.26:2 >=sys-libs/zlib-1.2.3 - >=virtual/libffi-3.0.10 + >=virtual/libffi-3.0.10:= virtual/ffmpeg x11-libs/libX11 x11-libs/libXcomposite @@ -203,7 +203,7 @@ mozconfig_config() { # Force gcc einfo "Enforcing the use of gcc due to USE=-clang ..." CC=${CHOST}-gcc - CXX=${CHOST}-gcc++ + CXX=${CHOST}-g++ strip-unsupported-flags fi @@ -212,9 +212,6 @@ mozconfig_config() { --with-system-zlib \ --with-system-bz2 - # Stylo is only broken on x86 builds - use x86 && mozconfig_annotate 'Upstream bug 1341234' --disable-stylo - # Stylo is horribly broken on arm, renders GUI unusable use arm && mozconfig_annotate 'breaks UI on arm' --disable-stylo @@ -331,7 +328,10 @@ mozconfig_config() { mozconfig_use_with system-harfbuzz mozconfig_use_with system-harfbuzz system-graphite2 - if use arm ; then + if use clang ; then + # https://bugzilla.mozilla.org/show_bug.cgi?id=1423822 + mozconfig_annotate 'elf-hack is broken when using Clang' --disable-elf-hack + elif use arm ; then mozconfig_annotate 'elf-hack is broken on arm' --disable-elf-hack fi diff --git a/eclass/mozcoreconf-v6.eclass b/eclass/mozcoreconf-v6.eclass index 571f195b8e46..862d632cd99d 100644 --- a/eclass/mozcoreconf-v6.eclass +++ b/eclass/mozcoreconf-v6.eclass @@ -204,7 +204,14 @@ mozconfig_init() { case "${ARCH}" in arm) # Reduce the memory requirements for linking - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + if use clang ; then + # Nothing to do + :; + elif tc-ld-is-gold ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi ;; alpha) # Historically we have needed to add -fPIC manually for 64-bit. @@ -219,7 +226,14 @@ mozconfig_init() { ppc64) append-flags -fPIC -mminimal-toc # Reduce the memory requirements for linking - append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + if use clang ; then + # Nothing to do + :; + elif tc-ld-is-gold ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi ;; esac diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index ef0d7ab1f999..0e44d922ebe6 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -1350,7 +1350,7 @@ toolchain_src_configure() { addwrite /dev/zero echo "${S}"/configure "${confgcc[@]}" # Older gcc versions did not detect bash and re-exec itself, so force the - # use of bash. Newer ones will auto-detect, but this is not harmeful. + # use of bash. Newer ones will auto-detect, but this is not harmful. CONFIG_SHELL="${EPREFIX}/bin/bash" \ bash "${S}"/configure "${confgcc[@]}" || die "failed to run configure" @@ -1507,6 +1507,8 @@ gcc_do_filter_flags() { filter-flags -f{no-,}unit-at-a-time -f{no-,}web -mno-tls-direct-seg-refs filter-flags -f{no-,}stack-protector{,-all} filter-flags -fvisibility-inlines-hidden -fvisibility=hidden + # and warning options + filter-flags -Wextra -Wstack-protector fi if ! tc_version_is_at_least 4.1 ; then filter-flags -fdiagnostics-show-option @@ -1625,6 +1627,11 @@ toolchain_src_compile() { [[ ! -x /usr/bin/perl ]] \ && find "${WORKDIR}"/build -name '*.[17]' -exec touch {} + + # Older gcc versions did not detect bash and re-exec itself, so force the + # use of bash. Newer ones will auto-detect, but this is not harmful. + # This needs to be set for compile as well, as it's used in libtool + # generation, which will break install otherwise (at least in 3.3.6): #664486 + CONFIG_SHELL="${EPREFIX}/bin/bash" \ gcc_do_make ${GCC_MAKE_TARGET} } diff --git a/eclass/xdg-utils.eclass b/eclass/xdg-utils.eclass index 2c2d2324c2b7..fe1eef213ea4 100644 --- a/eclass/xdg-utils.eclass +++ b/eclass/xdg-utils.eclass @@ -6,7 +6,7 @@ # gnome@gentoo.org # @AUTHOR: # Original author: Gilles Dartiguelongue <eva@gentoo.org> -# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 +# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7 # @BLURB: Auxiliary functions commonly used by XDG compliant packages. # @DESCRIPTION: # This eclass provides a set of auxiliary functions needed by most XDG @@ -16,7 +16,7 @@ # * XDG mime information database management case "${EAPI:-0}" in - 0|1|2|3|4|5|6) ;; + 0|1|2|3|4|5|6|7) ;; *) die "EAPI=${EAPI} is not supported" ;; esac @@ -67,7 +67,7 @@ xdg_environment_reset() { # Updates the .desktop files database. # Generates a list of mimetypes linked to applications that can handle them xdg_desktop_database_update() { - local updater="${EROOT}${DESKTOP_DATABASE_UPDATE_BIN}" + local updater="${EROOT%/}${DESKTOP_DATABASE_UPDATE_BIN}" if [[ ${EBUILD_PHASE} != post* ]] ; then die "xdg_desktop_database_update must be used in pkg_post* phases." @@ -79,7 +79,7 @@ xdg_desktop_database_update() { fi ebegin "Updating .desktop files database" - "${updater}" -q "${EROOT}${DESKTOP_DATABASE_DIR}" + "${updater}" -q "${EROOT%/}${DESKTOP_DATABASE_DIR}" eend $? } @@ -88,7 +88,7 @@ xdg_desktop_database_update() { # Update the mime database. # Creates a general list of mime types from several sources xdg_mimeinfo_database_update() { - local updater="${EROOT}${MIMEINFO_DATABASE_UPDATE_BIN}" + local updater="${EROOT%/}${MIMEINFO_DATABASE_UPDATE_BIN}" if [[ ${EBUILD_PHASE} != post* ]] ; then die "xdg_mimeinfo_database_update must be used in pkg_post* phases." @@ -100,6 +100,6 @@ xdg_mimeinfo_database_update() { fi ebegin "Updating shared mime info database" - "${updater}" "${EROOT}${MIMEINFO_DATABASE_DIR}" + "${updater}" "${EROOT%/}${MIMEINFO_DATABASE_DIR}" eend $? } |