Closed omarandlorraine closed 1 year ago
Hey there,
What is your development environment? I am guessing it is a Linux distro, but to confirm, please give the output of uname -a
and also the output of arm-none-eabi-gcc --version
.
Also, please make a new issue for the /games/atc issue you've experienced, as it is cleaner to deal with each problem separately of each other.
I will look into your PR. Thanks again for the cooperation!
please give the output of
uname -a
Linux [redacted] 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
and also the output of
arm-none-eabi-gcc --version
arm-none-eabi-gcc (15:10.3-2021.07-4) 10.3.1 20210621 (release)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I'll try and file an issue for the atc problem soon.
@omarandlorraine Please update to the latest commit 97d57678f6d2dd48ecb893c4751ad7cc89347406 where -fcommon was enabled for arm, and report back if it fixes the linking issues you have experienced.
Please update to the latest commit https://github.com/chettrick/discobsd/commit/97d57678f6d2dd48ecb893c4751ad7cc89347406 where -fcommon was enabled for arm, and report back if it fixes the linking issues you have experienced.
I can confirm, that adventure builds and some other binaries build that previously didn't. This is using
arm-none-eabi-gcc (15:12.2.rel1-1) 12.2.1 20221205
My build does have some errors:
Created filesystem at partition 1 of distrib/stm32/sdcard.img - 102400 kbytes
/home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/crt0.o: No such file or directory
/home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libc.a: No such file or directory
/home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libm.a: No such file or directory
/home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libcurses.a: No such file or directory
/home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libgpanel.a: No such file or directory
/home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libreadline.a: No such file or directory
/home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libtermlib.a: No such file or directory
/home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libwiznet.a: No such file or directory
but I believe this is an unrelated error
The commit message https://github.com/chettrick/discobsd/commit/97d57678f6d2dd48ecb893c4751ad7cc89347406 has the wording
Enable -fcommon for arm/stm32 until base is -fno-common clean.
which seems to imply that -fno-common cleanness is something we're aiming for; have I understood this correctly?
My build does have some errors:
Created filesystem at partition 1 of distrib/stm32/sdcard.img - 102400 kbytes /home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/crt0.o: No such file or directory /home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libc.a: No such file or directory /home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libm.a: No such file or directory /home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libcurses.a: No such file or directory /home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libgpanel.a: No such file or directory /home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libreadline.a: No such file or directory /home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libtermlib.a: No such file or directory /home/somebody/discobsd/distrib/obj/destdir.stm32/usr/lib/libwiznet.a: No such file or directory
but I believe this is an unrelated error
Yes, this error is most likely due to an unresolved issue with FreeBSD's version of BSD make. Try with GNU make and see if your build completes without any errors.
Note also that the built in libraries (/usr/lib/lib*.a
) aren't actually usable in DiscoBSD/stm32, as I haven't yet ported an assembler that handles Thumb-2. Those libraries work with DiscoBSD/pic32 though (same as RetroBSD for pic32) and can be used with /tools/virtualmips
to compile and run the example code in /usr/share/examples
.
The commit message https://github.com/chettrick/discobsd/commit/97d57678f6d2dd48ecb893c4751ad7cc89347406 has the wording
Enable -fcommon for arm/stm32 until base is -fno-common clean.
which seems to imply that -fno-common cleanness is something we're aiming for; have I understood this correctly?
Yes, eventually I would like to set -fno-common
as the default. Most base utilities will need to be either fixed or updated to a more modern version from one of the BSDs.
I will merge this pull request, as that makes one less program to update.
Yes, this error is most likely due to an unresolved issue with FreeBSD's version of BSD make. Try with GNU make and see if your build completes without any errors.
Oh yes, you're right.
I will merge this pull request, as that makes one less program to update.
Brilliant!
Shall I carry on with atc (separate pull request) and whatever else I find, or?
I had difficulty building discobsd because of how a header file for the game
adventure
didn't use extern in the way modern gcc expects, so here's a commit that fixed it.I'm having the same problem with another game, atc. From the output of
gmake
:I think what this means is that some of the libraries (libm, libcurses, libtermcap, libc) each one has the same symbol declared several times). But I am not sure (yet!) how to fix these up.