Arctic-Fox icon indicating copy to clipboard operation
Arctic-Fox copied to clipboard

using system ICU fails on NetBSD

Open rmottola opened this issue 7 months ago • 6 comments

58:15.03 In file included from /home/multix/code/Arctic-Fox/intl/unicharutil/util/nsUnicodeProperties.cpp:13,
58:15.04                  from /home/multix/code/Arctic-Fox/obj-sparc64-unknown-netbsd10.0/intl/unicharutil/util/Unified_cpp_unicharutil_util0.cpp:56:
58:15.05 /home/multix/code/Arctic-Fox/obj-sparc64-unknown-netbsd10.0/dist/system_wrappers/unicode/uchar.h:4:15: fatal error: unicode/uchar.h: No such file or directory
58:15.06     4 | #include_next <unicode/uchar.h>
58:15.06       |               ^~~~~~~~~~~~~~~~~
58:15.07 compilation terminated.
58:15.08 

I suppose a -I/usr/pkg/include or similar is not being detected, added or put somewhere.

rmottola avatar Aug 04 '25 08:08 rmottola

@alarixnia do you have a clue perhaps? This is NetBSD specific, I wonder if official tree had this issue and there was a patch/fix. Couldn't find any

On 10.0 it is in: /usr/pkg/include/unicode/uchar.h

rmottola avatar Aug 04 '25 08:08 rmottola

@alarixnia do you have a clue perhaps? This is NetBSD specific, I wonder if official tree had this issue and there was a patch/fix. Couldn't find any

On 10.0 it is in: /usr/pkg/include/unicode/uchar.h

I've given up on using system ICU, now simply using a pre-built dat file for big endian: https://cdn.netbsd.org/pub/pkgsrc/distfiles/LOCAL_PORTS/icudt58b.dat.gz

It should use pkg-config --cflags icu-uc instead of hardcoding /usr/pkg. In autoconf PKG_CHECK_MODULES is the thing to use.

alarixnia avatar Aug 04 '25 09:08 alarixnia

I've also received some reports that arcticfox no longer builds on NetBSD/powerpc. I've been using pale moon on sparc64.

alarixnia avatar Aug 04 '25 09:08 alarixnia

@alarixnia ok, I will do the same then build using supplied ICU and use the dat file of yours. System ICU works only up to 74 reliably, then a mess of C++ compiler version starts, at least on Linux.

Still it irritates me, because on Linux I am able to build successfully on G4 using system ICU 74... NetBSD can't be less :)

rmottola avatar Aug 04 '25 22:08 rmottola

I've also received some reports that arcticfox no longer builds on NetBSD/powerpc. I've been using pale moon on sparc64.

oh.. did you build yourself? which versions? I test builds on NetBSD Intel 32bit and 64bit reasonably regularly, although it is a pain, given that it needs a full build for every change, incremental builds are broken on NetBSD: reconfigure is run every time! Long time I completed a Sparc64 build, was trying right now. v46.1 had quite some build updates to test.

However, on Linux PowerPC 32bit I completed a build which runs! Couldn't test Linux/sparc64 because the environment is too new and gives issues, investigating that and hope to fix that in 46.3 or 47 series (46.2 is due soon and contains only some partial fixes for that build issue)

I wonder what specific issue then NetBSD powerpc or sparc64 would have in building

rmottola avatar Aug 04 '25 22:08 rmottola

@alarixnia v46.4 builds fine again on Linux PowerPC and SPARC64. on PPC it runs fine! on SPARC64 not, it is using internal ICU and I have issues.

Dio you just plain substitute your DAT file, e.g.

cp icudt58b.dat config/external/icu/data/icudt58l.dat
cp icudt58b.dat obj-sparc64-unknown-linux-gnu/dist/bin/icudt58l.dat

notice how one is 58b and one is 58l... and it doesn't work for me.

rmottola avatar Oct 17 '25 14:10 rmottola

@alarixnia v46.4 builds fine again on Linux PowerPC and SPARC64. on PPC it runs fine! on SPARC64 not, it is using internal ICU and I have issues.

Dio you just plain substitute your DAT file, e.g.

cp icudt58b.dat config/external/icu/data/icudt58l.dat
cp icudt58b.dat obj-sparc64-unknown-linux-gnu/dist/bin/icudt58l.dat

No, I install it separately under the proper filename.

alarixnia avatar Nov 12 '25 10:11 alarixnia

@alarixnia please explain me better.

  1. do you compile ArcticFox with internal or external ICU?
  2. If you compile internal (which I suppose) how do you i "separately" install that icu data file?

I tried building in a temp tree ICU 58.2 (on Linux 64bit big endian SPARC, should be the same) myself and then copy icudt58l.dat (not icudt58b.dat ) into the tree occourences, but it doesn't work

PS: a good way so that NetBSD doesn't build always from zero reconfiguring? This is limiting NetBSD tests for me currently

rmottola avatar Nov 12 '25 14:11 rmottola