linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH] ia64 fixes
@ 2003-11-24  3:59 Arnd Bergmann
  2003-11-24 17:09 ` Martin Hicks
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Arnd Bergmann @ 2003-11-24  3:59 UTC (permalink / raw)
  To: linux-hotplug

On Monday 24 November 2003 18:09, Martin Hicks wrote:

> My makefile-foo is probably sub-par.  If someone could figure out a good
> way to get things right for 64bit platforms, then that would be good.
This patch works for s390x and should be architecture-independent.
Unfortunately, I have found that both the s390 and x86-64 kernel headers
have trivial bugs that prevent building klibc against them.

> I'm not entirely sure why I had to change $(GCC) to $(LD) in the link
> step.  If I don't I get a warning:
>
> /usr/bin/ld: Warning: type of symbol 'errno' changed from 1 to 6 in
> /usr/lib/gcc-lib/ia64-linux/3.3.2/../../../libc.a(errno.o)
>
> Maybe we're missing a flag on the final link, while using $(GCC)?  The
> old Makefile.klibc used $(LD), which allowed me to track down this
> problem.

Hmm, it does sound like a real problem. If you are using a glibc with
tls enabled, simply using 'extern int errno;' is guaranteed to fail.
Does 'find -name \*.o | xargs readelf -a | grep errno' reveal anything
interesting?

> @@ -93,6 +96,10 @@
>         CFLAGS+=-pipe
>  endif
>  
> +ifeq ($(strip $(ARCH)),ia64)
> +       BITSd
> +endif
> +

The information can be taken from klibc/arch/${ARCH}/MCONFIG.

> -       $(CC) $(LDFLAGS) -o $(ROOT) $(CRT0) $(OBJS) $(LIB_OBJS) $(ARCH_LIB_OBJS)
> +       $(LD) $(LDFLAGS) -o $(ROOT) $(CRT0) $(OBJS) $(LIB_OBJS) $(ARCH_LIB_OBJS)

Using ld instead of gcc breaks 32 bit platforms, unless you manually add libgcc
like we do for the klibc build (64 bit division is a library function).
I've also added a definition for LD, so it becomes usable for cross-compiling.

	Arnd <><

=== Makefile 1.37 vs edited ==--- 1.37/Makefile	Mon Nov 24 06:38:00 2003
+++ edited/Makefile	Mon Nov 24 04:38:01 2003
@@ -55,6 +55,7 @@
 # to compile vs uClibc, that can be done here as well.
 CROSS = #/usr/i386-linux-uclibc/usr/bin/i386-uclibc-
 CC = $(CROSS)gcc
+LD = $(CROSS)gcc
 AR = $(CROSS)ar
 STRIP = $(CROSS)strip
 RANLIB = $(CROSS)ranlib
@@ -109,6 +110,7 @@
 ifeq ($(strip $(KLIBC)),true)
 	KLIBC_DIR	= klibc/klibc
 	INCLUDE_DIR	:= $(KLIBC_DIR)/include
+	include $(KLIBC_DIR)/arch/$(ARCH)/MCONFIG
 	# arch specific objects
 	LIBGCC		= $(shell $(CC) --print-libgcc)
 	ARCH_LIB_OBJS =	\
@@ -117,8 +119,10 @@
 
 
 	CRT0 = $(KLIBC_DIR)/crt0.o
-	LIBC =	$(ARCH_LIB_OBJS) $(LIB_OBJS)
-	CFLAGS += -nostdinc -I$(INCLUDE_DIR) -I$(INCLUDE_DIR)/bits32 -I$(GCCINCDIR) -Iklibc/linux/include -D__KLIBC__
+	LIBC =	$(ARCH_LIB_OBJS) $(LIB_OBJS) $(CRT0)
+	CFLAGS += -nostdinc -I$(INCLUDE_DIR) -I$(KLIBC_DIR)/arch/$(ARCH)/include \
+		-I$(INCLUDE_DIR)/bits$(BITSIZE) -I$(GCCINCDIR) -Iklibc/linux/include \
+		-D__KLIBC__
 	LIB_OBJS  	LDFLAGS = --static --nostdlib -nostartfiles
 else
@@ -169,7 +173,7 @@
 
 
 $(ROOT): $(GEN_HEADERS) $(OBJS)
-	$(CC) $(LDFLAGS) -o $(ROOT) $(CRT0) $(OBJS) $(LIB_OBJS) $(ARCH_LIB_OBJS)
+	$(LD) $(LDFLAGS) -o $(ROOT) $(CRT0) $(OBJS) $(LIB_OBJS) $(ARCH_LIB_OBJS)
 	$(STRIPCMD) $(ROOT)
 
 clean:
=== tdb/tdb.h 1.1 vs edited ==--- 1.1/tdb/tdb.h	Tue Aug  5 02:26:58 2003
+++ edited/tdb/tdb.h	Mon Nov 24 04:29:13 2003
@@ -25,6 +25,7 @@
 extern "C" {
 #endif
 
+#include <signal.h>
 
 /* flags to tdb_store() */
 #define TDB_REPLACE 1


	Arnd <><



-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-11-24 22:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-11-24  3:59 [PATCH] ia64 fixes Arnd Bergmann
2003-11-24 17:09 ` Martin Hicks
2003-11-24 18:08 ` Martin Hicks
2003-11-24 21:00 ` Martin Hicks
2003-11-24 22:15 ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).