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

Can't build on OpenBSD 7.5 amd64 #208

Open
catap opened this issue Jul 5, 2024 · 24 comments
Open

Can't build on OpenBSD 7.5 amd64 #208

catap opened this issue Jul 5, 2024 · 24 comments

Comments

@catap
Copy link

catap commented Jul 5, 2024

Hey,

I've tried to build it on OpenBSD 7.5. I had used mozcfg-i386OpenBSD as .mozconfig. The build is failed as:

0:30.47 In file included from /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/affentry.cxx:76:
 0:30.47 In file included from /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/affentry.hxx:76:
 0:30.48 In file included from /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/affixmgr.hxx:81:
 0:30.48 In file included from /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/hashmgr.hxx:79:
 0:30.48 In file included from /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/filemgr.hxx:75:
 0:30.48 In file included from /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/hunzip.hxx:47:
 0:30.48 In file included from /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/system_wrappers/fstream:4:
 0:30.48 In file included from /usr/include/c++/v1/fstream:193:
 0:30.48 In file included from /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/stl_wrappers/istream:52:
 0:30.48 In file included from /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/system_wrappers/istream:4:
 0:30.48 In file included from /usr/include/c++/v1/istream:165:
 0:30.48 In file included from /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/stl_wrappers/ostream:52:
 0:30.48 In file included from /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/system_wrappers/ostream:4:
 0:30.49 In file included from /usr/include/c++/v1/ostream:172:
 0:30.49 In file included from /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/system_wrappers/locale:4:
 0:30.49 /usr/include/c++/v1/locale:2827:22: error: no member named 'HunspellAllocator' in namespace 'std'; did you mean simply 'HunspellAllocator'?
 0:30.49     _Tp* __t = (_Tp*)std::realloc(__owns ? __b.get() : 0, __new_cap);
 0:30.49                      ^
 0:30.49 /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/glue/mozHunspellAllocator.h:12:7: note: 'HunspellAllocator' declared here
 0:30.49 class HunspellAllocator : public mozilla::CountingAllocatorBase<HunspellAllocator>
 0:30.49       ^
 0:30.49 In file included from /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/affixmgr.cxx:81:
 0:30.49 In file included from /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/affixmgr.hxx:81:
 0:30.49 In file included from /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/hashmgr.hxx:79:
 0:30.49 In file included from /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/filemgr.hxx:75:
 0:30.49 In file included from /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/hunzip.hxx:47:
 0:30.50 In file included from /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/system_wrappers/fstream:4:
 0:30.50 In file included from /usr/include/c++/v1/fstream:193:
 0:30.50 In file included from /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/stl_wrappers/istream:52:
 0:30.50 In file included from /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/system_wrappers/istream:4:
 0:30.50 In file included from /usr/include/c++/v1/istream:165:
 0:30.50 In file included from /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/stl_wrappers/ostream:52:
 0:30.50 In file included from /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/system_wrappers/ostream:4:
 0:30.50 In file included from /usr/include/c++/v1/ostream:172:
 0:30.50 In file included from /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/system_wrappers/locale:4:
 0:30.50 /usr/include/c++/v1/locale:2827:22: error: no member named 'HunspellAllocator' in namespace 'std'; did you mean simply 'HunspellAllocator'?
 0:30.50     _Tp* __t = (_Tp*)std::realloc(__owns ? __b.get() : 0, __new_cap);
 0:30.51                      ^
 0:30.51 /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/glue/mozHunspellAllocator.h:12:7: note: 'HunspellAllocator' declared here
 0:30.51 class HunspellAllocator : public mozilla::CountingAllocatorBase<HunspellAllocator>
 0:30.51       ^
 0:30.51 1 error generated.
 0:30.51 
 0:30.51 In the directory  /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/extensions/spellcheck/hunspell/src
 0:30.51 The following command failed to execute properly:
 0:30.51 clang++ -o affentry.o -c -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/stl_wrappers -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/system_wrappers -include /home/catap/src/Arctic-Fox/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DHUNSPELL_STATIC -DOS_POSIX=1 -DOS_BSD=1 -DOS_OPENBSD=1 -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/extensions/spellcheck/hunspell/src -I/home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/glue -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/ipc/ipdl/_ipdlheaders -I/home/catap/src/Arctic-Fox/ipc/chromium/src -I/home/catap/src/Arctic-Fox/ipc/glue -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/include -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/include/nspr -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/mozilla-config.h -MD -MP -MF .deps/affentry.o.pp -Qunused-arguments -I/usr/X11R6/include -Qunused-arguments -Wall -Wc++11-compat -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wwrite-strings -Wc++11-compat-pedantic -Wc++14-compat -Wc++14-compat-pedantic -Wc++1z-compat -Wclass-varargs -Wimplicit-fallthrough -Wloop-analysis -Wthread-safety -Wunreachable-code -Wno-invalid-offsetof -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-unknown-warning-option -Wno-return-type-c-linkage -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -g -O -fomit-frame-pointer /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/affentry.cxx
 0:30.51 gmake[5]: *** [/home/catap/src/Arctic-Fox/config/rules.mk:919: affentry.o] Error 1
 0:30.51 gmake[5]: *** Waiting for unfinished jobs....
 0:30.51 Unified_cpp_dom_messagechannel0.o
 0:30.52 1 error generated.
 0:30.52 
 0:30.52 In the directory  /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/extensions/spellcheck/hunspell/src
 0:30.52 The following command failed to execute properly:
 0:30.53 clang++ -o affixmgr.o -c -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/stl_wrappers -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/system_wrappers -include /home/catap/src/Arctic-Fox/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DHUNSPELL_STATIC -DOS_POSIX=1 -DOS_BSD=1 -DOS_OPENBSD=1 -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/extensions/spellcheck/hunspell/src -I/home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/glue -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/ipc/ipdl/_ipdlheaders -I/home/catap/src/Arctic-Fox/ipc/chromium/src -I/home/catap/src/Arctic-Fox/ipc/glue -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/include -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/include/nspr -I/home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /home/catap/src/Arctic-Fox/obj-amd64-unknown-openbsd7.5/mozilla-config.h -MD -MP -MF .deps/affixmgr.o.pp -Qunused-arguments -I/usr/X11R6/include -Qunused-arguments -Wall -Wc++11-compat -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wwrite-strings -Wc++11-compat-pedantic -Wc++14-compat -Wc++14-compat-pedantic -Wc++1z-compat -Wclass-varargs -Wimplicit-fallthrough -Wloop-analysis -Wthread-safety -Wunreachable-code -Wno-invalid-offsetof -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-unknown-warning-option -Wno-return-type-c-linkage -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -g -O -fomit-frame-pointer /home/catap/src/Arctic-Fox/extensions/spellcheck/hunspell/src/affixmgr.cxx
@rmottola
Copy link
Owner

rmottola commented Jul 16, 2024

Same error here on OpenBSD 7.5. Works on linux with gcc14 and on FreeBSD with clang12.

Please try using system spellchecker. Install hunspell and add to mozconfig

ac_add_options --enable-system-hunspell

don't know what is different here for OpenBSD, maybe clang version, didn't play around.

@rmottola
Copy link
Owner

On x86 32bit 7.5 clang16 with system hunspell I fail now with:

 5:18.78 In file included from /home/multix/code/Arctic-Fox/obj-i386-unknown-openbsd7.5/dist/stl_wrappers/vector:52:
 5:18.79 In file included from /home/multix/code/Arctic-Fox/obj-i386-unknown-openbsd7.5/dist/system_wrappers/vector:4:
 5:18.79 /usr/include/c++/v1/vector:860:7: error: call to '__throw_out_of_range' is ambiguous
 5:18.79       std::__throw_out_of_range("vector");
 5:18.79       ^~~~~~~~~~~~~~~~~~~~~~~~~
 5:18.79 /home/multix/code/Arctic-Fox/obj-i386-unknown-openbsd7.5/dist/include/mozilla/throw_gcc.h:108:1: note: candidate function
 5:18.79 __throw_out_of_range(const char* msg)
 5:18.79 ^
 5:18.79 /usr/include/c++/v1/stdexcept:265:6: note: candidate function
 5:18.79 void __throw_out_of_range(const char*__msg)
 5:18.79      ^

@catap
Copy link
Author

catap commented Aug 2, 2024

Sorry for long reply.

I had installed hunspell already and it was picked by configure.

Arctic-Fox $ pkg_info | grep hunspell
hunspell-1.7.2      spelling, stemming, morphological analysis and generation
Arctic-Fox $ 

Anyway, if I add ac_add_options --enable-system-hunspell nothing is changed.

@rmottola
Copy link
Owner

rmottola commented Aug 6, 2024

@catap interestingly, I tried on 7.0 with system clang and it still compiles and works there, so it must be some kind if incompatibility of 7.5

@catap
Copy link
Author

catap commented Aug 6, 2024

Well, between 7.5 and 7.0... more than 2 years of development. Trace the issue is quite complicated.

@rmottola
Copy link
Owner

rmottola commented Aug 6, 2024

I know, but still a useful check that the AF code didn't break where it did work already.

@catap
Copy link
Author

catap commented Aug 6, 2024

Here a way to run different BSD via github action https://github.com/catap/shell , it probably can be used to build a CI to catch if something is broken.

Anyway, I'm digging into hunspell right now, if I discover something, I let you know.

@catap
Copy link
Author

catap commented Aug 7, 2024

Well, #211 fixes my issue and I was able to build it.

@catap
Copy link
Author

catap commented Aug 8, 2024

@rmottola my bet that you can build it on 7.4 without any issue. And the root cause of this issue is openbsd/src@dc37c87 and a chunk:

@@ -2868,7 +2824,7 @@ __double_or_nothing(unique_ptr<_Tp, void(*)(void*)>& __b, _Tp*& __n, _Tp*& __e)
     if (__new_cap == 0)
         __new_cap = sizeof(_Tp);
     size_t __n_off = static_cast<size_t>(__n - __b.get());
-    _Tp* __t = (_Tp*)realloc(__owns ? __b.get() : 0, __new_cap);
+    _Tp* __t = (_Tp*)std::realloc(__owns ? __b.get() : 0, __new_cap);
     if (__t == 0)
         __throw_bad_alloc();
     if (__owns)

Before that realloc was replaced into HunspellAllocator::CountingRealloc and it works. After that it is replaced into std::HunspellAllocator::CountingRealloc and we have this wired issue.

@catap
Copy link
Author

catap commented Aug 8, 2024

@rmottola here the same issue on FreeBSD https://forums.mozillazine.org/viewtopic.php?t=3117607 with the same Clang/LLVM which is in base at OpenBSD.

@catap
Copy link
Author

catap commented Aug 8, 2024

Well, this issue is triggered by this changes llvm/llvm-project@841399a which is included into LLVM-16

I not sure how can it be fixed properly

@rmottola
Copy link
Owner

rmottola commented Aug 8, 2024

On x86 32bit 7.5 clang16 with system hunspell I fail now with:

 5:18.78 In file included from /home/multix/code/Arctic-Fox/obj-i386-unknown-openbsd7.5/dist/stl_wrappers/vector:52:
 5:18.79 In file included from /home/multix/code/Arctic-Fox/obj-i386-unknown-openbsd7.5/dist/system_wrappers/vector:4:
 5:18.79 /usr/include/c++/v1/vector:860:7: error: call to '__throw_out_of_range' is ambiguous
 5:18.79       std::__throw_out_of_range("vector");
 5:18.79       ^~~~~~~~~~~~~~~~~~~~~~~~~
 5:18.79 /home/multix/code/Arctic-Fox/obj-i386-unknown-openbsd7.5/dist/include/mozilla/throw_gcc.h:108:1: note: candidate function
 5:18.79 __throw_out_of_range(const char* msg)
 5:18.79 ^
 5:18.79 /usr/include/c++/v1/stdexcept:265:6: note: candidate function
 5:18.79 void __throw_out_of_range(const char*__msg)
 5:18.79      ^

this should be fixed, I fixed it for FreeBSD.

@catap
Copy link
Author

catap commented Aug 19, 2024

Do you have any idea how to fix it?

@rmottola
Copy link
Owner

Do you have any idea how to fix it?

do you mean the realloc vs std::realloc issue? not yet. I am hit by it on FreeBSD after I updated. Things I read around are contradictory right now. I confirm it is a clang/llvm issue.
I was not able to build a running browser on FreeBSD or OpenBSD with gcc though.
I can build using GCC on FreeBSD but it fails to start. I will continue testing the next coming days.

The issue seems to be more complicated in Firefox and derivates due to system wrappers and #defines

@rmottola
Copy link
Owner

@catap
Copy link
Author

catap commented Aug 20, 2024

Yeah, this link quite wired and it ends (or at leas I understand it that way) that author switched to use old binary that isn't solution here.

@rmottola
Copy link
Owner

Yes, using an older version is not an option. But seeing the error on seamonkey shows it is not an ArcticFox specific issue.

@rmottola
Copy link
Owner

On FreeBSD I tried removing hunspell glue files from unified sources (as was a hint in the palemoon forum) but it did not help

@catap
Copy link
Author

catap commented Sep 14, 2024

Can you try #211 on FreeBSD? I think it will fix this issue for now, but I have no idea how to fix it in the generic way.

@rmottola
Copy link
Owner

@catap I will... I just tryed #211 on FreeBSD with a couple of patches... it builds. But it crashes of startup!! darn. I will anyway try OpenBSD too, just do see.

@rmottola
Copy link
Owner

@catap I also tried on OpenBSD today. It builds, but then crashes on startup too.

@catap
Copy link
Author

catap commented Sep 18, 2024

So, it's doomed :)

BTW, Pale Moon had quite a story with attempt to bring it into OpenBSD. You may read the last discussion here: https://forum.palemoon.org/viewtopic.php?f=5&t=30732&p=247364 and the whole sotre https://web.archive.org/web/20240723175908/https://github.com/jasperla/openbsd-wip/issues/86 which was saved on only in archive :)

@rmottola
Copy link
Owner

Doomed... well, until a better solution is found by somebody... Maybe somebody builds PaleMoon on FreeBSD or OpenBSD with clang or anyway same llvm version. I don't know how things fare with SeaMonkey.. or perhaps they maintain older ESR versions of Firefox like NetBSD does.

We don't have an issue in a dependent library, so the cited issue PaleMoon doesn't apply.

Also, ArcticFox right now doesn't impose any limitations on branding. No issues were found yet. I understand PaleMoon's reasons though.

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

No branches or pull requests

2 participants