-
Notifications
You must be signed in to change notification settings - Fork 13
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
FREEMINT: Add FreeMiNT toolchain #50
base: master
Are you sure you want to change the base?
Conversation
@ccawley2011 that's very nice of you. Is there a log somewhere to look at? I see that you have discovered my toolchain Makefile, I use it quite often on my Arch Linux machine, so it should really be just a matter of calling that Makefile with the right parameters. When you clone my repository, you can do either: or
That should do the trick and produces stuff in $HOME/gnu-tools/{m68000, m68020-60, m5475}. If |
Wouldn't it be easier to just install the ppa archive from vincent rather than compiling mintlib from source? |
C++11 support (required by ScummVM) is available since gcc 4.8 officially, so unless Vincent decides to upgrade, I'd say it would not. If you are asking about mintlib specifically then perhaps it's best to use the latest one, Vincent's is often very outdated as he doesn't update the package very often. |
Not very often, but he did not long ago, so that should be fairly recent. Another possibility would be to just fetch the snapshots and install them, just like we dont in freemint when compiling other packages like toswin2. But those are just tar archives, not debian packages. |
Indeed, that's also an option. I guess @ccawley2011 has taken the easy approach here, one command compiles everything needed. |
I've attached a build log when attempting to build with |
That's odd. Can you please patch |
Well but i won't merge that pull-request into mintlib, since that will break parallel makes there again. BTW, for c++11 you'll need a newer version of gcc, but not necessarily a newer version of mintlib. It might also depend which c++11 features are actually used, some of them were already implemented in earlier versions. See https://gcc.gnu.org/projects/cxx-status.html#cxx11 |
|
||
helpers_package(fribidi) | ||
|
||
# TODO: GEM, LDG and pth, for SDL |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gemlib can be installed from https://github.com/freemint/gemlib
IMHO pth is an overkill even for the SDL port, there's no real use case for threads on our platform. Also, it makes the port really FreeMiNT-specific (it isn't the only OS for the Atari platform), so I've always used --disable-threads in my SDL builds.
LDG can be found at https://sourceforge.net/projects/ldg and it has a bit awkward build process (especially for 68020+ and ColdFire) but I can help you out if you want.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMHO pth is an overkill even for the SDL port, there's no real use case for threads on our platform. Also, it makes the port really FreeMiNT-specific (it isn't the only OS for the Atari platform), so I've always used --disable-threads in my SDL builds.
Does SDL audio work without threads? I know that using interrupts is unreliable on other platforms like the Nintendo DS because the mixer isn't always fast enough.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As I have always disabled them and released quite a few SDL ports, I'm inclined to say that it does. There could be some corner cases but I'm not aware of them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the worst case we can again re-enable them.
# TODO: GEM, LDG and pth, for SDL | ||
|
||
# COPY packages/libsdl1.2 lib-helpers/packages/libsdl1.2/ | ||
helpers_package(libsdl1.2, --disable-video-opengl --disable-threads) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, so you actually do disable them. In that case pth
is really not needed.
|
||
do_http_fetch m68k-atari-mint-build "https://github.com/mikrosk/m68k-atari-mint-build/archive/${TOOLCHAIN_VERSION}.tar.gz" 'tar xzf' | ||
|
||
# TODO: Build the m68020-60 and 5475 toolchains as well |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, I have now realised that you don't need to build those at all.
They are useful only for building native (68020+ / ColdFire) compilers. The usual way on our platform is to override CFLAGS / CXXFLAGS, i.e. adding -m68020-60
/ -mcpu=5475
, usually along with -fomit-frame-pointer
(which is not very useful and has a performance hit).
Another approach would be to override ENV INSTALL_DIR
and PREFIX
so they point to the proper sys-root
for given CPU (i.e. no multilib setup but separated environment for every CPU) but mintlib
, gemlib
and others require some tweaks for such scenario (i.e. not to build their multilib variants what is done by default).
Btw, I have successfully run |
TODO:
binutils
,gcc
,mintlib
,mintbin
andfdlibm
.