On Wed, Dec 26, 2007 at 02:26:09PM -0800, Quantum Skyline wrote:
> Hi,
> 
> I've been trying to modify the UML makefiles in the 2.6.23.9 kernel to 
> compile against a different C library, but I'm running into trouble 
> getting parts of UML to compile with GCC 4.2.1.  In particular, files in 
> os-Linux that use functions like __uml_setup are causing GCC to throw 
> errors.
> 
> For example, when I try to compile arch/um/os-Linux/aio.c in my 
> environment, I get the following:
> 
> gcc-4.2.1-rev -Wp,-MD,arch/um/os-Linux/.aio.o.d  -Wall -Wundef 
> -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common 
> -Werror-implicit-function-declaration -Os -D__arch_um__ 
> -DSUBARCH=\"i386\" -Dvmap=kernel_vmap 
> -Din6addr_loopback=kernel_in6addr_loopback 
> -Din6addr_any=kernel_in6addr_any -march=i686 
> I know that __uml_setup and friends are defined in 
> arch/um/include/init.h and it is being included, but it seems like GCC 
> is not using it.  If I comment out __uml_setup, other files which have 
> functions starting with two underscores like __uml_initcall also cause 
> compilation to fail.
> 
> Can anyone give some hints to solve this problem?

Probably you need the patch below.

                                Jeff

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

From: Jeff Dike <[EMAIL PROTECTED]>

init.h started breaking now for some reason.  It turns out that there wasn't a
definition of __used.  Fixed this by copying the relevant stuff from
compiler.h in the userspace case, and including compiler.h in the kernel case.

Signed-off-by: Jeff Dike <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---

 arch/um/include/init.h |    9 +++++++++
 1 file changed, 9 insertions(+)

diff -puN 
arch/um/include/init.h~uml-arch-um-include-inith-needs-a-definition-of-__used 
arch/um/include/init.h
--- 
a/arch/um/include/init.h~uml-arch-um-include-inith-needs-a-definition-of-__used
+++ a/arch/um/include/init.h
@@ -40,6 +40,15 @@
 typedef int (*initcall_t)(void);
 typedef void (*exitcall_t)(void);
 
+#ifndef __KERNEL__
+#if __GNUC_MINOR__ >= 3
+# define __used                        __attribute__((__used__))
+#else
+# define __used                        __attribute__((__unused__))
+#endif
+#else
+#include <linux/compiler.h>
+#endif
 /* These are for everybody (although not all archs will actually
    discard it in modules) */
 #define __init         __attribute__ ((__section__ (".init.text")))
_

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to