Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

icu: enable icu67 for all non-gcc2 architectures #7665

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

pulkomandy
Copy link
Member

Currently the x86 architectures use icu66 while other architectures (arm, sparc, risc-v) are already migrated to icu 67. This complicates icu version management in Haiku. To make things simpler, enable icu 67 for everyone.

Confirmed booting without problems on x86_64 after doing the corresponding changes on Haiku side.

@pulkomandy
Copy link
Member Author

pulkomandy commented Dec 26, 2022

Relaved changes on Haiku side: https://review.haiku-os.org/c/haiku/+/5966

I also tried ICU 70 but got a build error in HaikuWebKit:

/sources/haikuwebkit-HaikuWebKit-1.9.2/Source/WebCore/platform/text/LocaleICU.cpp: In function 'WTF::String WebCore::getDateFormatPattern(void* const*)':
/sources/haikuwebkit-HaikuWebKit-1.9.2/Source/WebCore/platform/text/LocaleICU.cpp:153:49: error: 'TRUE' was not declared in this scope
  153 |     int32_t length = udat_toPattern(dateFormat, TRUE, 0, 0, &status);

This is because U_DEFINE_FALSE_AND_TRUE is off by default since ICU 68: https://unicode-org.github.io/icu-docs/apidoc/dev/icu4c/umachine_8h.html#a369ea1fcd48fe78dbfc267086d746031

So we need to patch WebKit first before we can migrate to newer ICU versions, or build with this enabled (I'd rather not, it would be nice to remove these old TRUE and FALSE defines).

@waddlesplash
Copy link
Member

We need to leave the older version around for a while before everything is rebuilt to avoid breaking things. I would also prefer we jump straight to the latest version; either we can patch WebKit if needed, or we can just build WebKit against the older version for the time being.

Currently the x86 architectures use icu66 while other architectures
(arm, sparc, risc-v) are already migrated to icu 67. This complicates
icu version management in Haiku. To make things simpler, enable icu 67
for everyone.

Confirmed booting without problems on x86_64 after doing the
corresponding changes on Haiku side.
@pulkomandy
Copy link
Member Author

If we build WebKit against the older version, we have to ship that in Haiku anyway since WebKit will depend on it. The patch on WebKit is just replacing "TRUE" with "true", should not be a problem.

@pulkomandy
Copy link
Member Author

I tried ICU 72 and Haiku does not boot. Until this can be fixed (I have no idea how to debug it) it would be nice to switch to 67 at least?

@waddlesplash
Copy link
Member

Until this can be fixed (I have no idea how to debug it) it would be nice to switch to 67 at least?

Anything in syslog? Presumably something crashed during launch_roster startup, this should appear in the syslog (for nightly builds at least.) Try booting in QEMU with serial out enabled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

None yet

2 participants