pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Possible fix for www/firefox on NetBSD 8



On Thu, 14 May 2020 at 02:32:29 +0200, Tobias Nygren wrote:
> NetBSD 8.2 users please test this change and check
> if it results in a working browser? Thank you.
> 
> --- mozilla-common.mk   7 May 2020 10:14:16 -0000       1.166
> +++ mozilla-common.mk   13 May 2020 22:08:00 -0000
> @@ -248,6 +248,18 @@ PKG_CC=            ${PREFIX}/bin/clang
>  PKG_CXX=       ${PREFIX}/bin/clang++
>  BUILDLINK_DEPMETHOD.clang=     build
>  .include "../../lang/clang/buildlink3.mk"
> +.if !empty(MACHINE_PLATFORM:MNetBSD-8.*-*)
> +.include "../../lang/gcc8/buildlink3.mk"
> +CWRAPPERS_PREPEND.cxx+= \
> + -L${BUILDLINK_PREFIX.gcc8}/gcc8/lib \
> + ${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.gcc8}/gcc8/lib \
> + -stdlib++-isystem \
> + ${BUILDLINK_PREFIX.gcc8}/gcc8/include/c++ \
> + -stdlib++-isystem \
> + ${BUILDLINK_PREFIX.gcc8}/gcc8/include/c++/${MACHINE_GNU_PLATFORM} \
> + -stdlib++-isystem \
> + ${BUILDLINK_PREFIX.gcc8}/gcc8/include/c++/backward
> +.endif
>  BUILDLINK_DEPMETHOD.rust=      build
>  BUILDLINK_API_DEPENDS.rust+=   rust>=1.41.0
>  .include "../../lang/rust/buildlink3.mk"

Hi Tobias,

With your patch, Firefox 76.0.1 built successfully for me on NetBSD 8.2,
except it fails during the packaging phase, since it ends up linking
against GCC's libstdc++ from pkgsrc:

=> Checking for missing run-time search paths in firefox-76.0.1
ERROR: /usr/pkg/gcc8/lib/libstdc++.so.7: gcc8-8.4.0 is not a runtime dependency
ERROR: /usr/pkg/gcc8/lib/libstdc++.so.7: gcc8-8.4.0 is not a runtime dependency
ERROR: /usr/pkg/gcc8/lib/libstdc++.so.7: gcc8-8.4.0 is not a runtime dependency
*** Error code 1

To continue the test, I added:

BUILDLINK_DEPMETHOD.gcc8=      full

Which gave me a working Firefox.

(Patches consolidated, if anyone else wants to test:)

--- mozilla-common.mk.orig
+++ mozilla-common.mk
@@ -248,6 +248,19 @@
 PKG_CXX=       ${PREFIX}/bin/clang++
 BUILDLINK_DEPMETHOD.clang=     build
 .include "../../lang/clang/buildlink3.mk"
+.if !empty(MACHINE_PLATFORM:MNetBSD-8.*-*)
+BUILDLINK_DEPMETHOD.gcc8=      full
+.include "../../lang/gcc8/buildlink3.mk"
+CWRAPPERS_PREPEND.cxx+= \
+ -L${BUILDLINK_PREFIX.gcc8}/gcc8/lib \
+ ${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.gcc8}/gcc8/lib \
+ -stdlib++-isystem \
+ ${BUILDLINK_PREFIX.gcc8}/gcc8/include/c++ \
+ -stdlib++-isystem \
+ ${BUILDLINK_PREFIX.gcc8}/gcc8/include/c++/${MACHINE_GNU_PLATFORM} \
+ -stdlib++-isystem \
+ ${BUILDLINK_PREFIX.gcc8}/gcc8/include/c++/backward
+.endif
 BUILDLINK_DEPMETHOD.rust=      build
 BUILDLINK_API_DEPENDS.rust+=   rust>=1.41.0
 .include "../../lang/rust/buildlink3.mk"

(An older incarnation of this package -- back when it used GCC, rather
than forcing clang -- did something related with GCC_REQD and
USE_PKGSRC_GCC_RUNTIME= yes. There's the whole gcc vs. gcc-libs thing,
and packages not supposed to set USE_PKGSRC_GCC_RUNTIME, etc. So my
addition is probably worse than that, but, that aside, it works for me,
which is really what you're asking. Thanks for this!)

Regards,

Dave




Home | Main Index | Thread Index | Old Index