[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] Newest Native Binutils release....



MiKRO a écrit :
The problem is in ld/genscripts.sh.
oh yes, I found it yestarday, too :) I see you took more intelligent
approach, I just linked sh -> /bin/bash and problem was solved :)

Putting #!/bin/bash at the top, works, too !
This is a real bug, I'm going to post a bug report to the binutils team.
Same for the getop problem: the defined is tested in the BFD code, but never defined in the configure script !

1) The makeinfo package from Sparemint has to be installed in order to
make the build success

I must admit I cheated here ;-) I got the makeinfo error during the configure step (or make ?), then I installed the RPM, but I didn't want to restart the whole build, so I tweaked the Makefile in doc in order to do nothing and always success. Dirty, but quick !

But as soon as some code needs to be linked, I've got: no -lc found!
When I use gcc -L/usr/lib hello.c, it works, else that error.

Sorry, sorry, I'm the culprit...
I made a big cleanup in the linker script recently, but I removed too much... However, there is absolutely no problem with the cross-compiler...

If you want to make a quick fix:
Edit the file ld/scripttempl/m68kmint.sc (or mint.sc ?)
Add the following line at the top :
${RELOCATING+${LIB_SEARCH_DIRS}}

Then go to your build dir, in ld.
Remove the subdirectory ldscripts, m68kmint.c, m68kmint.o and ld.
Then type make: the linker scripts will be regenerated and embedded into ld. You just have to put ld in /usr/bin and it will work !

Another gcc-related question :) What is the final ouput for 'install'
process in 3-stage build? In --disable-bootstrap it's clear -- I
compile gcc4 using gcc2 and this ouput will be installed. But with
bootstrap, there are three gcc4s built and I'm not sure which one is
installed then -- gcc4 compiled against gcc4? or that first one? gcc4
against gcc2?

Big question... I never managed to make a fully automated 3-stage build. I think it works only with well-known libc, such as glibc or newlib. I don't think it could work with the MiNTLib (because it doesn't use configure). Anyway, I always use make install DESTDIR=some_dir in order to install it to a specific directory. The directory can then be zipped... or RPMized !

And the last thing -- I'd like to compile, as mentioned,
68060-optimized gcc4. I modified two file
t-mint:

MULTILIB_OPTIONS = m68020-60/m68060 68881
MULTILIB_DIRNAMES =
MULTILIB_MATCHES = m68020-60=m68020-40 m68020-60=m68030
m68020-60=m68040 m68060=m68060
MULTILIB_EXCEPTIONS = m68060/68881
(to produce 030+68881, 030 and 060 gcc libs)

here I don't understand what is the difference between not specifying
68881 and specifying msoft-float library. In the first case, I can't
use any float operations at all?

then there's file called m68k-none.h. there are various definitions
for TARGET_CPU_DEFAULT (should be defined by configure? how?) and I
don't see 68060 here (just M68K_CPU_m68040) to produce 68060 code by
default. It's safe to add M68K_CPU_m68060 with integer 5 and to
#define TARGET_CPU_DEFAULT M68K_CPU_68060?

for me is the biggest mystery, where are all these constants defined,
no single header file with #define MASK_68040 etc...

Good questions... you'll have to investigate !

Just a word about multilib:
In GCC 4.1 (dont remember the exact version), the multilib settings of libiberty was broken, it messed up the different versions. Do I disabled the build of multilib for the target somewhere in the main configure. It was not a problem for a cross compiler, but I have some doubts for a native build... However, you managed to build it without libiberty problems. I saw some interesting things in the recent GCC changelog. That multilib problem with libiberty may have been fixed. So we may enable it again.

We are going to see lightening fast MiNT software :-)

--
Vincent Rivière