From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 1F026158094 for ; Fri, 16 Sep 2022 22:16:02 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 6A953E07EF; Fri, 16 Sep 2022 22:16:01 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 493C5E07EF for ; Fri, 16 Sep 2022 22:16:01 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 7F6E633DE47 for ; Fri, 16 Sep 2022 22:16:00 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id DB427D4 for ; Fri, 16 Sep 2022 22:15:58 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1663366544.bb8b7e254186f5c9a2b33833f26e766f08eb0912.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/graphite2/files/, media-gfx/graphite2/ X-VCS-Repository: repo/gentoo X-VCS-Files: media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs-deux.patch media-gfx/graphite2/graphite2-1.3.14_p20210810-r2.ebuild X-VCS-Directories: media-gfx/graphite2/files/ media-gfx/graphite2/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: bb8b7e254186f5c9a2b33833f26e766f08eb0912 X-VCS-Branch: master Date: Fri, 16 Sep 2022 22:15:58 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 017e88eb-3850-426e-a91a-4ebe039185dc X-Archives-Hash: 08345bd84e83f1e604f2bc4ccd5d51a2 commit: bb8b7e254186f5c9a2b33833f26e766f08eb0912 Author: Sam James gentoo org> AuthorDate: Fri Sep 16 22:15:05 2022 +0000 Commit: Sam James gentoo org> CommitDate: Fri Sep 16 22:15:44 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bb8b7e25 media-gfx/graphite2: fix build w/o gcc trois Uncomment the patch & fix it up to work on GCC machines too. (I'd started rebasing it before then got fed up because of how frustrating this package has been, I think.) Bug: https://bugs.gentoo.org/870034 Fixes: 3b5c8a7e7e9517ec4919f2948d04bdd5b270df48 Signed-off-by: Sam James gentoo.org> .../graphite2-1.3.14-fix-nodefaultlibs-deux.patch | 112 ++++++++++++++------- .../graphite2/graphite2-1.3.14_p20210810-r2.ebuild | 1 - 2 files changed, 78 insertions(+), 35 deletions(-) diff --git a/media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs-deux.patch b/media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs-deux.patch index 815301dd307b..64fcfd63beab 100644 --- a/media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs-deux.patch +++ b/media-gfx/graphite2/files/graphite2-1.3.14-fix-nodefaultlibs-deux.patch @@ -1,61 +1,105 @@ https://bugs.gentoo.org/870034 https://bugs.gentoo.org/829690 +https://github.com/silnrsi/graphite/pull/44. https://raw.githubusercontent.com/chimera-linux/cports/6d3cabd18bac6f4caaea08eaa928840552711c0c/main/graphite2/patches/clang.patch -From chimera patch: -"Clang has -nostdlib++, which can be used more effectively than disabling -all and then hardcoding linking against libgcc (which we do not have)" - Obsoletes graphite2-1.3.14-fix-nodefaultlibs.patch whose description was: -``` -See https://github.com/silnrsi/graphite/pull/44. - +""" Drop -nodefaultlibs: - graphite is written in C++ which makes avoiding libstdc++ (or libc++) a dubious goal; - this ends up breaking e.g. x86/musl because we need to inject -lssp_nonshared, but it wouldn't be surprising if it broke other exotic targets too. -``` ---- a/tests/CMakeLists.txt -+++ b/tests/CMakeLists.txt -@@ -47,12 +47,12 @@ else (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") - set_target_properties(graphite2-base PROPERTIES - COMPILE_FLAGS "-Wall -Wextra -Wno-class-memaccess -fno-rtti -fno-exceptions" - COMPILE_DEFINITIONS "GRAPHITE2_NTRACING" -- LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}" -+ LINK_FLAGS "-nostdlib++ ${GRAPHITE_LINK_FLAGS}" - LINKER_LANGUAGE C) - set_target_properties(graphite2-file PROPERTIES - COMPILE_FLAGS "-Wall -Wextra -Wno-class-memaccess -fno-rtti -fno-exceptions" - COMPILE_DEFINITIONS "GRAPHITE2_NTRACING${TELEMETRY}" -- LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}" -+ LINK_FLAGS "-nostdlib++ ${GRAPHITE_LINK_FLAGS}" - LINKER_LANGUAGE C) - endif() +""" + +This patch is based on the linked one above from Chimera Linux. We have +to adapt it a bit because GCC lacks -nostdlib++. + +Quoting it: +"Clang has -nostdlib++, which can be used more effectively than disabling +all and then hardcoding linking against libgcc (which we do not have)" --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt -@@ -105,7 +105,7 @@ set_target_properties(graphite2 PROPERTIES PUBLIC_HEADER "${GRAPHITE_HEADERS}" +@@ -105,7 +105,6 @@ set_target_properties(graphite2 PROPERTIES PUBLIC_HEADER "${GRAPHITE_HEADERS}" if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") set_target_properties(graphite2 PROPERTIES COMPILE_FLAGS "-Wall -Wextra -Wno-unknown-pragmas -Wendif-labels -Wshadow -Wctor-dtor-privacy -Wnon-virtual-dtor -fno-rtti -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden" - LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}" -+ LINK_FLAGS "-nostdlib++ ${GRAPHITE_LINK_FLAGS}" LINKER_LANGUAGE C) if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86|i.86") add_definitions(-mfpmath=sse -msse2) -@@ -117,15 +117,7 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") - add_definitions(-Wimplicit-fallthrough -Wshorten-64-to-32) +@@ -114,22 +113,32 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + add_definitions(-Wno-class-memaccess -Wdouble-promotion) endif() -- if (${CMAKE_CXX_COMPILER} MATCHES ".*mingw.*") -- target_link_libraries(graphite2 kernel32 msvcr90 mingw32 gcc user32) -- else (${CMAKE_CXX_COMPILER} MATCHES ".*mingw.*") -- target_link_libraries(graphite2 c gcc_s) + message(STATUS "Compiler ID is: ${CMAKE_CXX_COMPILER_ID}") +- if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") +- add_definitions(-Wimplicit-fallthrough -Wshorten-64-to-32) - endif() - include(Graphite) ++ ++ include(Graphite) ++ + if (${CMAKE_CXX_COMPILER} MATCHES ".*mingw.*") + target_link_libraries(graphite2 kernel32 msvcr90 mingw32 gcc user32) + else (${CMAKE_CXX_COMPILER} MATCHES ".*mingw.*") +- if (GRAPHITE2_SANITIZERS) +- target_link_libraries(graphite2 c gcc_s) +- else () +- target_link_libraries(graphite2 c gcc) +- endif () ++ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") ++ add_definitions(-Wimplicit-fallthrough -Wshorten-64-to-32) ++ set_target_properties(graphite2 PROPERTIES ++ LINK_FLAGS "-nostdlib++ ${GRAPHITE_LINK_FLAGS}") ++ else() ++ set_target_properties(graphite2 PROPERTIES ++ LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}") ++ ++ if (GRAPHITE2_SANITIZERS) ++ target_link_libraries(graphite2 c gcc_s) ++ else() ++ target_link_libraries(graphite2 c gcc) ++ endif() ++ ++ if (BUILD_SHARED_LIBS) ++ nolib_test(stdc++ $) ++ endif () ++ endif() + endif() +- include(Graphite) - if (BUILD_SHARED_LIBS) - nolib_test(stdc++ $) - endif () ++ set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") if (0) CREATE_LIBTOOL_FILE(graphite2 "/lib${LIB_SUFFIX}") +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -44,15 +44,25 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") + COMPILE_DEFINITIONS "GRAPHITE2_STATIC;GRAPHITE2_NTRACING${TELEMETRY};_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;UNICODE") + else (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") + # don't -D GRAPHITE2_STATIC so that tests can see the API symbols in the static library ++ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") ++ set_target_properties(graphite2-base PROPERTIES ++ LINK_FLAGS "-nostdlib++ ${GRAPHITE_LINK_FLAGS}") ++ set_target_properties(graphite2-file PROPERTIES ++ LINK_FLAGS "-nostdlib++ ${GRAPHITE_LINK_FLAGS}") ++ else() ++ set_target_properties(graphite2-base PROPERTIES ++ LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}") ++ set_target_properties(graphite2-file PROPERTIES ++ LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}") ++ endif() ++ + set_target_properties(graphite2-base PROPERTIES + COMPILE_FLAGS "-Wall -Wextra -Wno-class-memaccess -fno-rtti -fno-exceptions" + COMPILE_DEFINITIONS "GRAPHITE2_NTRACING" +- LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}" + LINKER_LANGUAGE C) + set_target_properties(graphite2-file PROPERTIES + COMPILE_FLAGS "-Wall -Wextra -Wno-class-memaccess -fno-rtti -fno-exceptions" + COMPILE_DEFINITIONS "GRAPHITE2_NTRACING${TELEMETRY}" +- LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}" + LINKER_LANGUAGE C) + endif() + diff --git a/media-gfx/graphite2/graphite2-1.3.14_p20210810-r2.ebuild b/media-gfx/graphite2/graphite2-1.3.14_p20210810-r2.ebuild index 390f3b02fb00..29a6138c3bf3 100644 --- a/media-gfx/graphite2/graphite2-1.3.14_p20210810-r2.ebuild +++ b/media-gfx/graphite2/graphite2-1.3.14_p20210810-r2.ebuild @@ -39,7 +39,6 @@ BDEPEND=" PATCHES=( "${FILESDIR}/${PN}-1.3.5-includes-libs-perl.patch" - "${FILESDIR}/${PN}-1.35-fix-gcc-linking.patch" "${FILESDIR}/${PN}-1.3.14-fix-cmake-files-libdir.patch" "${FILESDIR}/${PN}-1.3.14-no-libtool-file.patch" #"${FILESDIR}/${PN}-1.3.14-fix-nodefaultlibs-deux.patch"