All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: linux-hotplug@vger.kernel.org
Subject: Re: [PATCH] ia64 fixes
Date: Mon, 24 Nov 2003 03:59:56 +0000	[thread overview]
Message-ID: <marc-linux-hotplug-106969818316528@msgid-missing> (raw)

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

             reply	other threads:[~2003-11-24  3:59 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-24  3:59 Arnd Bergmann [this message]
2003-11-24 17:09 ` [PATCH] ia64 fixes Martin Hicks
2003-11-24 18:08 ` Martin Hicks
2003-11-24 21:00 ` Martin Hicks
2003-11-24 22:15 ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-linux-hotplug-106969818316528@msgid-missing \
    --to=arnd@arndb.de \
    --cc=linux-hotplug@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.