Open AJenbo opened 1 year ago
that's related to the exception tables
please retry
Looks like i'm still getting the issue
then I'm doing something wrong:
... uhm yes. cmake is still using gcc 6.5.0b....
some headers differ in the definition of the types. Thus uint32_t
get sometimes resolved to unsigned int
and sometimes to unsigned long
.
e.g.:
> m68k-amigaos-c++filt __ZN10devilution13IsCustomEventEj
devilution::IsCustomEvent(unsigned int)
> m68k-amigaos-c++filt __ZN10devilution13IsCustomEventEm
devilution::IsCustomEvent(unsigned long)
Those functions can't be found, since they are different.
=> fix your includes!
@bebbo We do not do anything custom with the includes, we simply use the Amiga GCC container as-is. Sounds like the issue is with the container.
@glebm but some files include cstdint and some don't
/**
* @file interfac.cpp
*
* Implementation of load screens.
*/
#include <cstdint>
I've sent https://github.com/diasurgical/devilutionX/pull/6095 adding the missing <cstdint>
includes to our own code (don't know if all of our dependencies do it correctly though).
However, it seems to me like there is a deeper issue here, like why are there different definitions of uint32_t
in the default system headers in the container.
it links here, still complains a bit:
_deps/libfmt-build/libfmt.a(format.cc.obj): duplicate section `.text._ZN3fmt2v96detail11utf8_decodeEPKcPmPi' has different contents
_deps/libfmt-build/libfmt.a(format.cc.obj): duplicate section `.text._ZN3fmt2v96detail15write_codepointILm2EcNS0_8appenderEEET1_S4_cm' has different contents
_deps/libfmt-build/libfmt.a(format.cc.obj): duplicate section `.text._ZN3fmt2v96detail16write_escaped_cpINS0_8appenderEcEET_S4_RKNS1_18find_escape_resultIT0_EE' has different contents
_deps/libfmt-build/libfmt.a(format.cc.obj): duplicate section `.text._ZN3fmt2v96detail11utf8_decodeEPKcPmPi' has different contents
_deps/libfmt-build/libfmt.a(format.cc.obj): duplicate section `.text._ZN3fmt2v96detail15write_codepointILm2EcNS0_8appenderEEET1_S4_cm' has different contents
_deps/libfmt-build/libfmt.a(format.cc.obj): duplicate section `.text._ZN3fmt2v96detail16write_escaped_cpINS0_8appenderEcEET_S4_RKNS1_18find_escape_resultIT0_EE' has different contents
but links... ... starts and gurus... an older version here seemed to work
Yeah that's what I thought would happen. We're not in control of libfmt code. The root cause of this should be fixed in the container.
Well, the remaining messages are just an info. I checked one and it differs because each references the same string constant at different addresses,,,
We're down to the following errors on CI:
_deps/libfmt-build/libfmt.a(format.cc.obj): duplicate section `.text._ZN3fmt2v96detail15write_codepointILm2EcNS0_8appenderEEET1_S4_cm' has different contents
_deps/libfmt-build/libfmt.a(format.cc.obj): duplicate section `.text._ZN3fmt2v96detail15write_codepointILm2EcNS0_8appenderEEET1_S4_cm' has different contents
/opt/m68k-amigaos-gcc10/lib/gcc/m68k-amigaos/13.1.1/../../../../m68k-amigaos/bin/ld: Source/CMakeFiles/libdevilutionx.dir/missiles.cpp.obj:(.text._ZN10devilution12_GLOBAL__N_121UpdateMissileVelocityERNS_7MissileENS_7PointOfIiEEi+0x4e): undefined reference to `hypot'
/opt/m68k-amigaos-gcc10/lib/gcc/m68k-amigaos/13.1.1/../../../../m68k-amigaos/bin/ld: Source/CMakeFiles/libdevilutionx.dir/missiles.cpp.obj: in function `_GLOBAL__sub_D__ZN10devilution8MissilesB5cxx11E':
Source/CMakeFiles/libdevilutionx.dir/missiles.cpp.obj:(.text._ZN10devilution12_GLOBAL__N_121UpdateMissileVelocityERNS_7MissileENS_7PointOfIiEEi+0xe8): undefined reference to `hypot'
/opt/m68k-amigaos-gcc10/lib/gcc/m68k-amigaos/13.1.1/../../../../m68k-amigaos/bin/ld: /opt/m68k-amigaos-gcc10/lib/gcc/m68k-amigaos/13.1.1/libm020/libm881/libstdc++.a(c++locale.o):(.text._ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi+0x28): undefined reference to `strtold'
your https://github.com/bebbo/libnix/ library is not uptodate
Yep, that was it! Now green on CI 🎉 https://app.circleci.com/pipelines/github/diasurgical/devilutionX/17638/workflows/c243890a-ec5d-48d8-9eb2-c7ec45758d6f/jobs/111614/artifacts
Thanks for debugging this with us!
Dose it still stall on boot?
yup - but meanwhile I get a black screen with a nice cursor... maybe I need some support files?
here is the shareware data: https://github.com/diasurgical/devilutionx-assets/releases/download/v2/spawn.mpq
The asserts/devilutionx.mpq should be populated when you build, but just in case that is an issue then you can also just grab it from one of the other builds: https://github.com/diasurgical/devilutionX/suites/12836963140/artifacts/691621110
@bebbo did you have an luck running the game? Have you tried comparing it with a build using GCC6 and see if that one starts on the system?
it starts if compiled with gcc6.5 It crashes if compiled with gcc13.1
Hmm how can we figure out what could be the issues
Looks like the app actually runs, but it fails when doing file operations:
guess we need a simpler case where it fails to hunt that problem down.
After switching from the latest GCC 13.1 branch everything compile, but we get a few linker errors at the end (see below).
PR for switching DevilutionX from GCC 6 to 13.1 for Amiga builds: https://github.com/diasurgical/devilutionX/pull/6056
Full buildlog: https://app.circleci.com/pipelines/github/diasurgical/devilutionX/17565/workflows/dde45506-b193-477c-93c3-c02ecfbebe9b/jobs/111298
Linker error: