On Tue, Jul 22, 2008 at 11:27:13AM +0300, Boaz Harrosh wrote:
> I'm not sure I fully understand. Could you please explain what you
> found.

arch/um/include/init.h copies enough definitions from linux/compiler.h
and linux/init.h to implement initcall and exitcall et al.  It can't
include the kernel headers because it's included in userspace files,
and libc and kernel headers don't mix.

What happened was that I copied enough to make a distinction between
gcc 3.3 and higher vs lower than 3.3 (for the latter, the kernel
defines __used as attribute(__unused) for some reason).

However, since my ifdefs weren't looking at the major version, these
definitions also held for gcc 4.x.  And when I added unit-at-a-time,
the __unused started being taken seriously, and UML libc-side
initcalls were thrown out.

> Why is it that with same compiler, some systems had a problem and some
> did not? is it .config related?

I have no idea.  When Ulrich Drepper first hit this, he and I had the
same base system, same architecture, same toolchain, same config, and
I didn't see it.

I've upgraded since then, so I can't test in the same environment, but
when I add the bug back in such that it hits with gcc 4.3, I get the
crash.

So, this is very mysterious.

> Also I would prefer if the:
>    #define __used __attribute__((__used__))
> would get an #if ((__GNUC__* 100 + __GNUC_MINOR__) >= 303 )
> of its own because other wise this problem will return when
> gcc hits 5. Just as it returned now. 

I don't see the point - this is all wrapped in __GNUC__ == 3 or 4.  As
for gcc 5, linux/compiler has this to say:

#else
# error Sorry, your compiler is too old/not recognized.
#endif

So the kernel totally won't build with gcc 5.

                        Jeff

-- 
Work email - jdike at linux dot intel dot com

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
User-mode-linux-user mailing list
User-mode-linux-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user

Reply via email to