All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] Kill CONFIG_BUILD_ELF64 from Kconfig
@ 2007-02-13  9:18 Franck Bui-Huu
  2007-02-13  9:18 ` [PATCH 1/3] Remove '-mno-explicit-relocs' option when CONFIG_BUILD_ELF64 Franck Bui-Huu
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Franck Bui-Huu @ 2007-02-13  9:18 UTC (permalink / raw)
  To: ralf; +Cc: linux-mips, anemo, macro

Hi,

This patchset results from the following thread we had a couple weeks
ago:

http://marc.theaimsgroup.com/?l=linux-mips&m=117000798317188&w=2

Once this patchset is applied, we do not need to configure
CONFIG_BUILD_ELF64 manually. Instead, the makefile should do the right
thing for us:

    - It passes '-msym32' switch to gcc according to the platform's
      load address.

    - We can still force Kbuild to not use '-msym32' whatever the
      value of the load address by passing "BUILD_ELF32=no" when
      invoking make.

Patch #3 renames CONFIG_BUILD_ELF64 into CONFIG_64BIT_BUILD_ELF32. It
simplifies the places where it's used.

This patchset assumes that the compiler will fail if it doesn't
support '-msym32' switch. Therefore we needn't to test gcc's version
when testing CONFIG_64BIT_BUILD_ELF32 value.

Please, consider.

		Franck

---
 arch/mips/Kconfig             |   15 ---------------
 arch/mips/Makefile            |   23 ++++++++++++++++++-----
 include/asm-mips/page.h       |    2 +-
 include/asm-mips/pgtable-64.h |    2 +-
 include/asm-mips/stackframe.h |   12 ++++++------
 5 files changed, 26 insertions(+), 28 deletions(-)

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

* [PATCH 1/3] Remove '-mno-explicit-relocs' option when CONFIG_BUILD_ELF64
  2007-02-13  9:18 [RFC] Kill CONFIG_BUILD_ELF64 from Kconfig Franck Bui-Huu
@ 2007-02-13  9:18 ` Franck Bui-Huu
  2007-02-13  9:18 ` [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64 Franck Bui-Huu
  2007-02-13  9:18 ` [PATCH 3/3] Rename CONFIG_BUILD_ELF64 into CONFIG_64BIT_BUILD_ELF32 Franck Bui-Huu
  2 siblings, 0 replies; 19+ messages in thread
From: Franck Bui-Huu @ 2007-02-13  9:18 UTC (permalink / raw)
  To: ralf; +Cc: linux-mips, anemo, macro

From: Franck Bui-Huu <fbuihuu@gmail.com>

This patch removes '-mno-explicit-relocs' usage when
CONFIG_BUILD_ELF64 is set since this option was only required
with the old hack to truncate addresses at the assembly level
where "-mabi=64 -Wa,-mabi=32" was used.

This should yield a small code size improvement for inline
assembly, where the R constraint is used.

The idea is coming from Maciej <macro@linux-mips.org>.

Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
 arch/mips/Makefile |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index c68b5d3..4240ca1 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -60,9 +60,7 @@ vmlinux-32		= vmlinux.32
 vmlinux-64		= vmlinux
 
 cflags-y		+= -mabi=64
-ifdef CONFIG_BUILD_ELF64
-cflags-y		+= $(call cc-option,-mno-explicit-relocs)
-else
+ifndef CONFIG_BUILD_ELF64
 cflags-y		+= $(call cc-option,-msym32)
 endif
 endif
-- 
1.4.4.3.ge6d4

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

* [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64
  2007-02-13  9:18 [RFC] Kill CONFIG_BUILD_ELF64 from Kconfig Franck Bui-Huu
  2007-02-13  9:18 ` [PATCH 1/3] Remove '-mno-explicit-relocs' option when CONFIG_BUILD_ELF64 Franck Bui-Huu
@ 2007-02-13  9:18 ` Franck Bui-Huu
  2007-02-13 16:12   ` Atsushi Nemoto
  2007-02-13 16:18   ` Ralf Baechle
  2007-02-13  9:18 ` [PATCH 3/3] Rename CONFIG_BUILD_ELF64 into CONFIG_64BIT_BUILD_ELF32 Franck Bui-Huu
  2 siblings, 2 replies; 19+ messages in thread
From: Franck Bui-Huu @ 2007-02-13  9:18 UTC (permalink / raw)
  To: ralf; +Cc: linux-mips, anemo, macro

From: Franck Bui-Huu <fbuihuu@gmail.com>

We do not rely on user anymore to setup this config correctly.
Instead we make our choice depending on the load address.

If we want to force Kbuild to use ELF64 format whatever
the load address we can still do:

        $ make BUILD_ELF32=no

Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
 arch/mips/Kconfig  |   15 ---------------
 arch/mips/Makefile |   23 ++++++++++++++++++++---
 2 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 54acbf5..89020b6 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -2009,21 +2009,6 @@ source "fs/Kconfig.binfmt"
 config TRAD_SIGNALS
 	bool
 
-config BUILD_ELF64
-	bool "Use 64-bit ELF format for building"
-	depends on 64BIT
-	help
-	  A 64-bit kernel is usually built using the 64-bit ELF binary object
-	  format as it's one that allows arbitrary 64-bit constructs.  For
-	  kernels that are loaded within the KSEG compatibility segments the
-	  32-bit ELF format can optionally be used resulting in a somewhat
-	  smaller binary, but this option is not explicitly supported by the
-	  toolchain and since binutils 2.14 it does not even work at all.
-
-	  Say Y to use the 64-bit format or N to use the 32-bit one.
-
-	  If unsure say Y.
-
 config BINFMT_IRIX
 	bool "Include IRIX binary compatibility"
 	depends on CPU_BIG_ENDIAN && 32BIT && BROKEN
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 4240ca1..626771c 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -60,9 +60,6 @@ vmlinux-32		= vmlinux.32
 vmlinux-64		= vmlinux
 
 cflags-y		+= -mabi=64
-ifndef CONFIG_BUILD_ELF64
-cflags-y		+= $(call cc-option,-msym32)
-endif
 endif
 
 
@@ -614,6 +611,26 @@ else
 JIFFIES			= jiffies_64
 endif
 
+#
+# Automatically detect the build format. By default we choose
+# the elf format according to the load address.
+# We can always force a build with a 64-bits symbol format by
+# passing 'BUILD_ELF32=no' option to the make's command line.
+#
+ifdef CONFIG_64BIT
+  ifndef BUILD_ELF32
+    ifeq ($(shell expr $(load-y) \< 0xffffffff80000000), 0)
+      BUILD_ELF32 = y
+    endif
+  endif
+
+  ifeq ("$(BUILD_ELF32)", "y")
+    cflags-y += -msym32
+  else
+    cflags-y += -DCONFIG_BUILD_ELF64
+  endif
+endif # CONFIG_64BIT
+
 AFLAGS		+= $(cflags-y)
 CFLAGS		+= $(cflags-y)
 
-- 
1.4.4.3.ge6d4

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

* [PATCH 3/3] Rename CONFIG_BUILD_ELF64 into CONFIG_64BIT_BUILD_ELF32
  2007-02-13  9:18 [RFC] Kill CONFIG_BUILD_ELF64 from Kconfig Franck Bui-Huu
  2007-02-13  9:18 ` [PATCH 1/3] Remove '-mno-explicit-relocs' option when CONFIG_BUILD_ELF64 Franck Bui-Huu
  2007-02-13  9:18 ` [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64 Franck Bui-Huu
@ 2007-02-13  9:18 ` Franck Bui-Huu
  2 siblings, 0 replies; 19+ messages in thread
From: Franck Bui-Huu @ 2007-02-13  9:18 UTC (permalink / raw)
  To: ralf; +Cc: linux-mips, anemo, macro

From: Franck Bui-Huu <fbuihuu@gmail.com>

Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
 arch/mips/Makefile            |    6 ++----
 include/asm-mips/page.h       |    2 +-
 include/asm-mips/pgtable-64.h |    2 +-
 include/asm-mips/stackframe.h |   12 ++++++------
 4 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 626771c..fa08d07 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -625,11 +625,9 @@ ifdef CONFIG_64BIT
   endif
 
   ifeq ("$(BUILD_ELF32)", "y")
-    cflags-y += -msym32
-  else
-    cflags-y += -DCONFIG_BUILD_ELF64
+    cflags-y += -msym32 -DCONFIG_64BIT_BUILD_ELF32
   endif
-endif # CONFIG_64BIT
+endif
 
 AFLAGS		+= $(cflags-y)
 CFLAGS		+= $(cflags-y)
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h
index d3fbd83..d37a24c 100644
--- a/include/asm-mips/page.h
+++ b/include/asm-mips/page.h
@@ -149,7 +149,7 @@ typedef struct { unsigned long pgprot; } pgprot_t;
 /*
  * __pa()/__va() should be used only during mem init.
  */
-#if defined(CONFIG_64BIT) && !defined(CONFIG_BUILD_ELF64)
+#ifdef CONFIG_64BIT_BUILD_ELF32
 #define __pa_page_offset(x)	((unsigned long)(x) < CKSEG0 ? PAGE_OFFSET : CKSEG0)
 #else
 #define __pa_page_offset(x)	PAGE_OFFSET
diff --git a/include/asm-mips/pgtable-64.h b/include/asm-mips/pgtable-64.h
index a5b1871..55be7b5 100644
--- a/include/asm-mips/pgtable-64.h
+++ b/include/asm-mips/pgtable-64.h
@@ -104,7 +104,7 @@
 #define VMALLOC_START		MAP_BASE
 #define VMALLOC_END	\
 	(VMALLOC_START + PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE)
-#if defined(CONFIG_MODULES) && !defined(CONFIG_BUILD_ELF64) && \
+#if defined(CONFIG_MODULES) && defined(CONFIG_64BIT_BUILD_ELF32) && \
 	VMALLOC_START != CKSSEG
 /* Load modules into 32bit-compatible segment. */
 #define MODULE_START	CKSSEG
diff --git a/include/asm-mips/stackframe.h b/include/asm-mips/stackframe.h
index 1fae5dc..917ffa5 100644
--- a/include/asm-mips/stackframe.h
+++ b/include/asm-mips/stackframe.h
@@ -70,14 +70,14 @@
 #else
 		MFC0	k0, CP0_CONTEXT
 #endif
-#if defined(CONFIG_BUILD_ELF64) || (defined(CONFIG_64BIT) && __GNUC__ < 4)
+#if defined(CONFIG_32BIT) || defined(CONFIG_64BIT_BUILD_ELF32)
+		lui	k1, %hi(kernelsp)
+#else
 		lui	k1, %highest(kernelsp)
 		daddiu	k1, %higher(kernelsp)
 		dsll	k1, 16
 		daddiu	k1, %hi(kernelsp)
 		dsll	k1, 16
-#else
-		lui	k1, %hi(kernelsp)
 #endif
 		LONG_SRL	k0, PTEBASE_SHIFT
 		LONG_ADDU	k1, k0
@@ -95,14 +95,14 @@
 		.endm
 #else
 		.macro	get_saved_sp	/* Uniprocessor variation */
-#if defined(CONFIG_BUILD_ELF64) || (defined(CONFIG_64BIT) && __GNUC__ < 4)
+#if defined(CONFIG_32BIT) || defined(CONFIG_64BIT_BUILD_ELF32)
+		lui	k1, %hi(kernelsp)
+#else
 		lui	k1, %highest(kernelsp)
 		daddiu	k1, %higher(kernelsp)
 		dsll	k1, k1, 16
 		daddiu	k1, %hi(kernelsp)
 		dsll	k1, k1, 16
-#else
-		lui	k1, %hi(kernelsp)
 #endif
 		LONG_L	k1, %lo(kernelsp)(k1)
 		.endm
-- 
1.4.4.3.ge6d4

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

* Re: [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64
  2007-02-13  9:18 ` [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64 Franck Bui-Huu
@ 2007-02-13 16:12   ` Atsushi Nemoto
  2007-02-13 17:02     ` Franck Bui-Huu
  2007-02-13 16:18   ` Ralf Baechle
  1 sibling, 1 reply; 19+ messages in thread
From: Atsushi Nemoto @ 2007-02-13 16:12 UTC (permalink / raw)
  To: vagabon.xyz; +Cc: ralf, linux-mips, macro

On Tue, 13 Feb 2007 10:18:08 +0100, Franck Bui-Huu <vagabon.xyz@gmail.com> wrote:
> +  ifeq ("$(BUILD_ELF32)", "y")
> +    cflags-y += -msym32

ifeq ($(BUILD_ELF32),y)

is enough, isn't it?
---
Atsushi Nemoto

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

* Re: [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64
  2007-02-13  9:18 ` [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64 Franck Bui-Huu
  2007-02-13 16:12   ` Atsushi Nemoto
@ 2007-02-13 16:18   ` Ralf Baechle
  2007-02-13 17:09     ` Franck Bui-Huu
  1 sibling, 1 reply; 19+ messages in thread
From: Ralf Baechle @ 2007-02-13 16:18 UTC (permalink / raw)
  To: Franck Bui-Huu; +Cc: linux-mips, anemo, macro

On Tue, Feb 13, 2007 at 10:18:08AM +0100, Franck Bui-Huu wrote:

> +    cflags-y += -DCONFIG_BUILD_ELF64
                   ^^^^^^^^^^^^^^^^^^^^

Preprocessor symbol names starting CONFIG_ are reserved for Kbuild.

  Ralf

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

* Re: [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64
  2007-02-13 16:12   ` Atsushi Nemoto
@ 2007-02-13 17:02     ` Franck Bui-Huu
  0 siblings, 0 replies; 19+ messages in thread
From: Franck Bui-Huu @ 2007-02-13 17:02 UTC (permalink / raw)
  To: Atsushi Nemoto; +Cc: ralf, linux-mips, macro

On 2/13/07, Atsushi Nemoto <anemo@mba.ocn.ne.jp> wrote:
> On Tue, 13 Feb 2007 10:18:08 +0100, Franck Bui-Huu <vagabon.xyz@gmail.com> wrote:
> > +  ifeq ("$(BUILD_ELF32)", "y")
> > +    cflags-y += -msym32
>
> ifeq ($(BUILD_ELF32),y)
>
> is enough, isn't it?

yes it is, I'll change it.

thanks
-- 
               Franck

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

* Re: [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64
  2007-02-13 16:18   ` Ralf Baechle
@ 2007-02-13 17:09     ` Franck Bui-Huu
  2007-02-13 20:05       ` Franck Bui-Huu
  2007-02-14  1:28       ` Atsushi Nemoto
  0 siblings, 2 replies; 19+ messages in thread
From: Franck Bui-Huu @ 2007-02-13 17:09 UTC (permalink / raw)
  To: Ralf Baechle; +Cc: linux-mips, anemo, macro

On 2/13/07, Ralf Baechle <ralf@linux-mips.org> wrote:
> On Tue, Feb 13, 2007 at 10:18:08AM +0100, Franck Bui-Huu wrote:
>
> > +    cflags-y += -DCONFIG_BUILD_ELF64
>                    ^^^^^^^^^^^^^^^^^^^^
>
> Preprocessor symbol names starting CONFIG_ are reserved for Kbuild.
>

Ok but keeping this name avoid to change all places where
CONFIG_BUILD_ELF64 is used.

It should be done by patch #3 instead where CONFIG_BUILD_ELF64 is
renamed into CONFIG_64BIT_BUILD_ELF32. Any suggestions for a better
name ?
-- 
               Franck

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

* Re: [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64
  2007-02-13 17:09     ` Franck Bui-Huu
@ 2007-02-13 20:05       ` Franck Bui-Huu
  2007-02-14  1:28       ` Atsushi Nemoto
  1 sibling, 0 replies; 19+ messages in thread
From: Franck Bui-Huu @ 2007-02-13 20:05 UTC (permalink / raw)
  To: Ralf Baechle; +Cc: linux-mips, anemo, macro

On 2/13/07, Franck Bui-Huu <vagabon.xyz@gmail.com> wrote:
> On 2/13/07, Ralf Baechle <ralf@linux-mips.org> wrote:
> > On Tue, Feb 13, 2007 at 10:18:08AM +0100, Franck Bui-Huu wrote:
> >
> > > +    cflags-y += -DCONFIG_BUILD_ELF64
> >                    ^^^^^^^^^^^^^^^^^^^^
> >
> > Preprocessor symbol names starting CONFIG_ are reserved for Kbuild.
> >
>
> Ok but keeping this name avoid to change all places where
> CONFIG_BUILD_ELF64 is used.
>
> It should be done by patch #3 instead where CONFIG_BUILD_ELF64 is
> renamed into CONFIG_64BIT_BUILD_ELF32. Any suggestions for a better
> name ?

What about KBUILD_64BIT_ELF32 with 'KBUILD' meaning that it comes from
Kbuild itself and not from any Kconfig files ?

-- 
               Franck

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

* Re: [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64
  2007-02-13 17:09     ` Franck Bui-Huu
  2007-02-13 20:05       ` Franck Bui-Huu
@ 2007-02-14  1:28       ` Atsushi Nemoto
  2007-02-14  8:20         ` Franck Bui-Huu
  2007-02-14 11:42         ` Maciej W. Rozycki
  1 sibling, 2 replies; 19+ messages in thread
From: Atsushi Nemoto @ 2007-02-14  1:28 UTC (permalink / raw)
  To: vagabon.xyz; +Cc: ralf, linux-mips, macro

On Tue, 13 Feb 2007 18:09:32 +0100, "Franck Bui-Huu" <vagabon.xyz@gmail.com> wrote:
> It should be done by patch #3 instead where CONFIG_BUILD_ELF64 is
> renamed into CONFIG_64BIT_BUILD_ELF32. Any suggestions for a better
> name ?

I think "ELF32" or "ELF64" word is improper while this is irrelevant
to ELF format.  This makes confusion with CONFIG_BOOT_ELF32.

How about simple BUILD_SYM32?  And replase BUILD_ELF32 with
BUILD_SYM32 too?

---
Atsushi Nemoto

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

* Re: [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64
  2007-02-14  1:28       ` Atsushi Nemoto
@ 2007-02-14  8:20         ` Franck Bui-Huu
  2007-02-14 16:14           ` Atsushi Nemoto
  2007-02-14 11:42         ` Maciej W. Rozycki
  1 sibling, 1 reply; 19+ messages in thread
From: Franck Bui-Huu @ 2007-02-14  8:20 UTC (permalink / raw)
  To: Atsushi Nemoto; +Cc: ralf, linux-mips, macro

On 2/14/07, Atsushi Nemoto <anemo@mba.ocn.ne.jp> wrote:
> On Tue, 13 Feb 2007 18:09:32 +0100, "Franck Bui-Huu" <vagabon.xyz@gmail.com> wrote:
> > It should be done by patch #3 instead where CONFIG_BUILD_ELF64 is
> > renamed into CONFIG_64BIT_BUILD_ELF32. Any suggestions for a better
> > name ?
>
> I think "ELF32" or "ELF64" word is improper while this is irrelevant
> to ELF format.  This makes confusion with CONFIG_BOOT_ELF32.
>
> How about simple BUILD_SYM32?  And replase BUILD_ELF32 with
> BUILD_SYM32 too?
>

That's a good point. What about replacing BUILD by KBUILD meaning this
macro is coming from Kbuild itsel ?

And maybe it would be interesting to make obvious that this macro
implies 64-bits kernel. What about something like KBUILD_64BIT_SYM32
and replace 'BUILD_ELF32=no' by 'KBUILD_SYM32=no' ?
-- 
               Franck

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

* Re: [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64
  2007-02-14  1:28       ` Atsushi Nemoto
  2007-02-14  8:20         ` Franck Bui-Huu
@ 2007-02-14 11:42         ` Maciej W. Rozycki
  1 sibling, 0 replies; 19+ messages in thread
From: Maciej W. Rozycki @ 2007-02-14 11:42 UTC (permalink / raw)
  To: Atsushi Nemoto; +Cc: vagabon.xyz, ralf, linux-mips

On Wed, 14 Feb 2007, Atsushi Nemoto wrote:

> How about simple BUILD_SYM32?  And replase BUILD_ELF32 with
> BUILD_SYM32 too?

 It sounds reasonable to me.

  Maciej

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

* Re: [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64
  2007-02-14  8:20         ` Franck Bui-Huu
@ 2007-02-14 16:14           ` Atsushi Nemoto
  2007-02-15  8:36             ` Franck Bui-Huu
  0 siblings, 1 reply; 19+ messages in thread
From: Atsushi Nemoto @ 2007-02-14 16:14 UTC (permalink / raw)
  To: vagabon.xyz; +Cc: ralf, linux-mips, macro

On Wed, 14 Feb 2007 09:20:22 +0100, "Franck Bui-Huu" <vagabon.xyz@gmail.com> wrote:
> That's a good point. What about replacing BUILD by KBUILD meaning this
> macro is coming from Kbuild itsel ?

No objections.

> And maybe it would be interesting to make obvious that this macro
> implies 64-bits kernel. What about something like KBUILD_64BIT_SYM32
> and replace 'BUILD_ELF32=no' by 'KBUILD_SYM32=no' ?

Same here.  I just think introducing one name is better than two name.
I also feel "make KBUILD_SYM32=0" is more consistent.

---
Atsushi Nemoto

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

* Re: [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64
  2007-02-14 16:14           ` Atsushi Nemoto
@ 2007-02-15  8:36             ` Franck Bui-Huu
  0 siblings, 0 replies; 19+ messages in thread
From: Franck Bui-Huu @ 2007-02-15  8:36 UTC (permalink / raw)
  To: Atsushi Nemoto; +Cc: ralf, linux-mips, macro

On 2/14/07, Atsushi Nemoto <anemo@mba.ocn.ne.jp> wrote:
> Same here.  I just think introducing one name is better than two name.
> I also feel "make KBUILD_SYM32=0" is more consistent.
>

Yes I agree KBUILD_SYM32 seems better for command line usage but I
think it won't be used widely unlike in code usage where
KBUILD_64BIT_SYM32 is better because it's really self explaned and not
ambigous: "build a 64 bits kernel with 32 bits symbols".

And I think it's more important.

-- 
               Franck

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

* Re: [PATCH 1/3] Remove '-mno-explicit-relocs' option when CONFIG_BUILD_ELF64
  2007-08-13 19:30     ` Daniel Jacobowitz
@ 2007-08-14 16:22       ` Franck Bui-Huu
  0 siblings, 0 replies; 19+ messages in thread
From: Franck Bui-Huu @ 2007-08-14 16:22 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: linux-mips

Daniel Jacobowitz wrote:
> Yes, I rebased them on top of linux-mips HEAD as of Thursday.
> 

Ok, I rebased them too, and compare them to your diff and got almost
the same result except that you seem to not use the last patch 3/3
version. But it shouldn't hurt.

> My kernel crashed, so I gave your patchset a try, and it got a lot
> further and crashed somewhere different.
> 

It just means that before applying the patchset your kernel was
wrongly configured: you probably set "CONFIG_BUILD_ELF64=y" whereas
your kernel load address is in CKSEG0, is that correct ?

If so, your current issue may be related to a completely different
area and maybe a git-bisect session could help but don't forget to set
"CONFIG_BUILD_ELF64=n" before.

Oh, maybe before doing the git-bisect session, there's one thing you
could try: when building the kernel with the patchset applied do:

		$ make KBUILD_SYM32=no

It's equivalent to "CONFIG_BUILD_ELF64=y" _but_ the kernel will use
the correct definitions for kernel address translations.

In any cases, your dmesg could help.

		Franck

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

* Re: [PATCH 1/3] Remove '-mno-explicit-relocs' option when CONFIG_BUILD_ELF64
  2007-08-09 19:39   ` Franck Bui-Huu
@ 2007-08-13 19:30     ` Daniel Jacobowitz
  2007-08-14 16:22       ` Franck Bui-Huu
  0 siblings, 1 reply; 19+ messages in thread
From: Daniel Jacobowitz @ 2007-08-13 19:30 UTC (permalink / raw)
  To: Franck Bui-Huu; +Cc: linux-mips

[-- Attachment #1: Type: text/plain, Size: 1404 bytes --]

On Thu, Aug 09, 2007 at 09:39:24PM +0200, Franck Bui-Huu wrote:
> > I tried to boot my
> > Sentosa again today, and needed a slightly updated version of them.
> > 
> 
> What do you mean by "slightly updated version" ? Did you rebase them
> on top the current linux-mips tree, or something ? If not, what's your
> kernel version ?

Yes, I rebased them on top of linux-mips HEAD as of Thursday.

> > I'm not positive I did the update correctly, though, since the board
> > panics in swapper after jumping to a bogus pointer.
> > 
> 
> Sorry I don't understand this. Do you mean:
> 
>   a) My kernel crashed, so I gave your patchset a try but it's still
>      crahshing
> 
>   b) My kernel crashed, so I gave your patchset a try and it makes my
>      kernel running fine.
> 
> I assume you're saying a).

My kernel crashed, so I gave your patchset a try, and it got a lot
further and crashed somewhere different.

> Can you give a try to 2.6.23-rc2 because it includes commit
> b1c65b3988c6e29ac371ab1cbbf6c4f8fb7092f8 which might fix your
> issue. That would be a side effect but it gives us a hint on your
> problem.
> 
> Also your .config, dmesg files are welcome.

I was starting from HEAD, so this patch was already included.  I've
attached .config and the updated patch I was using; I'm afraid I don't
have the board connected at the moment to get the crash log.

-- 
Daniel Jacobowitz
CodeSourcery

[-- Attachment #2: mips-sym32.diff --]
[-- Type: text/x-diff, Size: 4070 bytes --]

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 6595928..40367b5 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1853,21 +1853,6 @@ source "fs/Kconfig.binfmt"
 config TRAD_SIGNALS
 	bool
 
-config BUILD_ELF64
-	bool "Use 64-bit ELF format for building"
-	depends on 64BIT
-	help
-	  A 64-bit kernel is usually built using the 64-bit ELF binary object
-	  format as it's one that allows arbitrary 64-bit constructs.  For
-	  kernels that are loaded within the KSEG compatibility segments the
-	  32-bit ELF format can optionally be used resulting in a somewhat
-	  smaller binary, but this option is not explicitly supported by the
-	  toolchain and since binutils 2.14 it does not even work at all.
-
-	  Say Y to use the 64-bit format or N to use the 32-bit one.
-
-	  If unsure say Y.
-
 config BINFMT_IRIX
 	bool "Include IRIX binary compatibility"
 	depends on CPU_BIG_ENDIAN && 32BIT && BROKEN
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 32c1c8f..ce7e02e 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -60,11 +60,6 @@ vmlinux-32		= vmlinux.32
 vmlinux-64		= vmlinux
 
 cflags-y		+= -mabi=64
-ifdef CONFIG_BUILD_ELF64
-cflags-y		+= $(call cc-option,-mno-explicit-relocs)
-else
-cflags-y		+= $(call cc-option,-msym32)
-endif
 endif
 
 all-$(CONFIG_BOOT_ELF32)	:= $(vmlinux-32)
@@ -578,6 +573,24 @@ else
 JIFFIES			= jiffies_64
 endif
 
+#
+# Automatically detect the build format. By default we choose
+# the elf format according to the load address.
+# We can always force a build with a 64-bits symbol format by
+# passing 'KBUILD_SYM32=no' option to the make's command line.
+#
+ifdef CONFIG_64BIT
+  ifndef KBUILD_SYM32
+    ifeq ($(shell expr $(load-y) \< 0xffffffff80000000), 0)
+      KBUILD_SYM32 = y
+    endif
+  endif
+
+  ifeq ($(KBUILD_SYM32), y)
+    cflags-y += -msym32 -DKBUILD_64BIT_SYM32
+  endif
+endif
+
 AFLAGS		+= $(cflags-y)
 CFLAGS		+= $(cflags-y) \
 			-D"VMLINUX_LOAD_ADDRESS=$(load-y)"
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h
index b92dd8c..c90fe56 100644
--- a/include/asm-mips/page.h
+++ b/include/asm-mips/page.h
@@ -142,7 +142,7 @@ typedef struct { unsigned long pgprot; } pgprot_t;
 /*
  * __pa()/__va() should be used only during mem init.
  */
-#if defined(CONFIG_64BIT) && !defined(CONFIG_BUILD_ELF64)
+#ifdef KBUILD_64BIT_SYM32
 #define __pa(x)								\
 ({									\
     unsigned long __x = (unsigned long)(x);				\
diff --git a/include/asm-mips/pgtable-64.h b/include/asm-mips/pgtable-64.h
index 49f5a1a..a8aed9c 100644
--- a/include/asm-mips/pgtable-64.h
+++ b/include/asm-mips/pgtable-64.h
@@ -104,7 +104,7 @@
 #define VMALLOC_START		MAP_BASE
 #define VMALLOC_END	\
 	(VMALLOC_START + PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE)
-#if defined(CONFIG_MODULES) && !defined(CONFIG_BUILD_ELF64) && \
+#if defined(CONFIG_MODULES) && defined(KBUILD_64BIT_SYM32) && \
 	VMALLOC_START != CKSSEG
 /* Load modules into 32bit-compatible segment. */
 #define MODULE_START	CKSSEG
diff --git a/include/asm-mips/stackframe.h b/include/asm-mips/stackframe.h
index ed33366..59334f5 100644
--- a/include/asm-mips/stackframe.h
+++ b/include/asm-mips/stackframe.h
@@ -91,14 +91,14 @@
 #else
 		MFC0	k0, CP0_CONTEXT
 #endif
-#if defined(CONFIG_BUILD_ELF64) || (defined(CONFIG_64BIT) && __GNUC__ < 4)
+#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)
+		lui	k1, %hi(kernelsp)
+#else
 		lui	k1, %highest(kernelsp)
 		daddiu	k1, %higher(kernelsp)
 		dsll	k1, 16
 		daddiu	k1, %hi(kernelsp)
 		dsll	k1, 16
-#else
-		lui	k1, %hi(kernelsp)
 #endif
 		LONG_SRL	k0, PTEBASE_SHIFT
 		LONG_ADDU	k1, k0
@@ -116,14 +116,14 @@
 		.endm
 #else
 		.macro	get_saved_sp	/* Uniprocessor variation */
-#if defined(CONFIG_BUILD_ELF64) || (defined(CONFIG_64BIT) && __GNUC__ < 4)
+#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)
+		lui	k1, %hi(kernelsp)
+#else
 		lui	k1, %highest(kernelsp)
 		daddiu	k1, %higher(kernelsp)
 		dsll	k1, k1, 16
 		daddiu	k1, %hi(kernelsp)
 		dsll	k1, k1, 16
-#else
-		lui	k1, %hi(kernelsp)
 #endif
 		LONG_L	k1, %lo(kernelsp)(k1)
 		.endm

[-- Attachment #3: .config --]
[-- Type: text/plain, Size: 20425 bytes --]

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.23-rc2
# Thu Aug  9 11:07:19 2007
#
CONFIG_MIPS=y

#
# Machine selection
#
# CONFIG_MACH_ALCHEMY is not set
# CONFIG_BASLER_EXCITE is not set
# CONFIG_MIPS_COBALT is not set
# CONFIG_MACH_DECSTATION is not set
# CONFIG_MACH_JAZZ is not set
# CONFIG_LEMOTE_FULONG is not set
# CONFIG_MIPS_ATLAS is not set
# CONFIG_MIPS_MALTA is not set
# CONFIG_MIPS_SEAD is not set
# CONFIG_MIPS_SIM is not set
# CONFIG_MARKEINS is not set
# CONFIG_MACH_VR41XX is not set
# CONFIG_PNX8550_JBS is not set
# CONFIG_PNX8550_STB810 is not set
# CONFIG_PMC_MSP is not set
# CONFIG_PMC_YOSEMITE is not set
# CONFIG_QEMU is not set
# CONFIG_SGI_IP22 is not set
# CONFIG_SGI_IP27 is not set
# CONFIG_SGI_IP32 is not set
# CONFIG_SIBYTE_CRHINE is not set
# CONFIG_SIBYTE_CARMEL is not set
# CONFIG_SIBYTE_CRHONE is not set
# CONFIG_SIBYTE_RHONE is not set
# CONFIG_SIBYTE_SWARM is not set
# CONFIG_SIBYTE_LITTLESUR is not set
CONFIG_SIBYTE_SENTOSA=y
# CONFIG_SIBYTE_PTSWARM is not set
# CONFIG_SIBYTE_BIGSUR is not set
# CONFIG_SNI_RM is not set
# CONFIG_TOSHIBA_JMR3927 is not set
# CONFIG_TOSHIBA_RBTX4927 is not set
# CONFIG_TOSHIBA_RBTX4938 is not set
# CONFIG_WR_PPMC is not set
CONFIG_SIBYTE_SB1250=y
CONFIG_SIBYTE_SB1xxx_SOC=y
# CONFIG_CPU_SB1_PASS_1 is not set
CONFIG_CPU_SB1_PASS_2_1250=y
# CONFIG_CPU_SB1_PASS_2_2 is not set
# CONFIG_CPU_SB1_PASS_4 is not set
# CONFIG_CPU_SB1_PASS_2_112x is not set
# CONFIG_CPU_SB1_PASS_3 is not set
CONFIG_CPU_SB1_PASS_2=y
CONFIG_SIBYTE_HAS_LDT=y
CONFIG_SIBYTE_ENABLE_LDT_IF_PCI=y
# CONFIG_SIMULATION is not set
# CONFIG_SB1_CEX_ALWAYS_FATAL is not set
# CONFIG_SB1_CERR_STALL is not set
CONFIG_SIBYTE_CFE=y
# CONFIG_SIBYTE_CFE_CONSOLE is not set
# CONFIG_SIBYTE_BUS_WATCHER is not set
# CONFIG_SIBYTE_SB1250_PROF is not set
# CONFIG_SIBYTE_TBPROF is not set
CONFIG_SIBYTE_HAS_ZBUS_PROFILING=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_TIME=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
CONFIG_DMA_COHERENT=y
CONFIG_EARLY_PRINTK=y
CONFIG_SYS_HAS_EARLY_PRINTK=y
# CONFIG_HOTPLUG_CPU is not set
# CONFIG_NO_IOPORT is not set
CONFIG_CPU_BIG_ENDIAN=y
# CONFIG_CPU_LITTLE_ENDIAN is not set
CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
CONFIG_SWAP_IO_SPACE=y
CONFIG_BOOT_ELF32=y
CONFIG_MIPS_L1_CACHE_SHIFT=5

#
# CPU selection
#
# CONFIG_CPU_LOONGSON2 is not set
# CONFIG_CPU_MIPS32_R1 is not set
# CONFIG_CPU_MIPS32_R2 is not set
# CONFIG_CPU_MIPS64_R1 is not set
# CONFIG_CPU_MIPS64_R2 is not set
# CONFIG_CPU_R3000 is not set
# CONFIG_CPU_TX39XX is not set
# CONFIG_CPU_VR41XX is not set
# CONFIG_CPU_R4300 is not set
# CONFIG_CPU_R4X00 is not set
# CONFIG_CPU_TX49XX is not set
# CONFIG_CPU_R5000 is not set
# CONFIG_CPU_R5432 is not set
# CONFIG_CPU_R6000 is not set
# CONFIG_CPU_NEVADA is not set
# CONFIG_CPU_R8000 is not set
# CONFIG_CPU_R10000 is not set
# CONFIG_CPU_RM7000 is not set
# CONFIG_CPU_RM9000 is not set
CONFIG_CPU_SB1=y
CONFIG_SYS_HAS_CPU_SB1=y
CONFIG_WEAK_ORDERING=y
CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y

#
# Kernel type
#
# CONFIG_32BIT is not set
CONFIG_64BIT=y
CONFIG_PAGE_SIZE_4KB=y
# CONFIG_PAGE_SIZE_8KB is not set
# CONFIG_PAGE_SIZE_16KB is not set
# CONFIG_PAGE_SIZE_64KB is not set
# CONFIG_SIBYTE_DMA_PAGEOPS is not set
CONFIG_MIPS_MT_DISABLED=y
# CONFIG_MIPS_MT_SMP is not set
# CONFIG_MIPS_MT_SMTC is not set
CONFIG_SB1_PASS_2_WORKAROUNDS=y
CONFIG_SB1_PASS_2_1_WORKAROUNDS=y
CONFIG_CPU_HAS_LLSC=y
CONFIG_CPU_HAS_SYNC=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_IRQ_PER_CPU=y
CONFIG_CPU_SUPPORTS_HIGHMEM=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_RESOURCES_64BIT=y
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
CONFIG_SMP=y
CONFIG_SYS_SUPPORTS_SMP=y
CONFIG_NR_CPUS_DEFAULT_2=y
CONFIG_NR_CPUS=2
# CONFIG_HZ_48 is not set
# CONFIG_HZ_100 is not set
# CONFIG_HZ_128 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_256 is not set
# CONFIG_HZ_1000 is not set
# CONFIG_HZ_1024 is not set
CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
CONFIG_HZ=250
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_BKL=y
# CONFIG_KEXEC is not set
CONFIG_SECCOMP=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
# CONFIG_TASK_XACCT is not set
# CONFIG_USER_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=15
# CONFIG_CPUSETS is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
# CONFIG_HOTPLUG is not set
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_BLK_DEV_BSG is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"

#
# Bus options (PCI, PCMCIA, EISA, ISA, TC)
#
CONFIG_HW_HAS_PCI=y
CONFIG_PCI=y
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCI_DEBUG is not set
CONFIG_MMU=y

#
# PCCARD (PCMCIA/CardBus) support
#

#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_MIPS32_COMPAT=y
CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_MIPS32_O32=y
CONFIG_MIPS32_N32=y
CONFIG_BINFMT_ELF32=y

#
# Power management options
#
# CONFIG_PM is not set

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
CONFIG_NET_KEY=y
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set

#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set

#
# Wireless
#
# CONFIG_CFG80211 is not set
# CONFIG_WIRELESS_EXT is not set
# CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
CONFIG_BLK_DEV_NBD=y
# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=9220
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y
# CONFIG_PHANTOM is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
CONFIG_IDE=y
CONFIG_IDE_MAX_HWIFS=4
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDETAPE=y
CONFIG_BLK_DEV_IDEFLOPPY=y
# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_PROC_FS=y

#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_BLK_DEV_IDEPCI is not set
# CONFIG_IDEPCI_PCIBUS_ORDER is not set
# CONFIG_BLK_DEV_IDE_SWARM is not set
# CONFIG_IDE_ARM is not set
# CONFIG_BLK_DEV_IDEDMA is not set
# CONFIG_BLK_DEV_HD is not set

#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set
# CONFIG_SCSI_DMA is not set
# CONFIG_SCSI_NETLINK is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set

#
# Fusion MPT device support
#
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_IEEE1394 is not set
# CONFIG_I2O is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_ARCNET is not set
# CONFIG_PHYLIB is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_AX88796 is not set
CONFIG_NET_SB1250_MAC=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_DM9000 is not set
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
# CONFIG_NET_PCI is not set
CONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
CONFIG_NETDEV_10000=y
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set
# CONFIG_NETXEN_NIC is not set
# CONFIG_MLX4_CORE is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set

#
# Input device support
#
# CONFIG_INPUT is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
CONFIG_SERIO_RAW=m
# CONFIG_GAMEPORT is not set

#
# Character devices
#
# CONFIG_VT is not set
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_COMPUTONE is not set
# CONFIG_ROCKETPORT is not set
# CONFIG_CYCLADES is not set
# CONFIG_DIGIEPCA is not set
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
# CONFIG_MOXA_SMARTIO_NEW is not set
# CONFIG_ISI is not set
# CONFIG_SYNCLINKMP is not set
# CONFIG_SYNCLINK_GT is not set
# CONFIG_N_HDLC is not set
# CONFIG_SPECIALIX is not set
# CONFIG_SX is not set
# CONFIG_RIO is not set
# CONFIG_STALDRV is not set

#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_SB1250_DUART=y
CONFIG_SERIAL_SB1250_DUART_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_IPMI_HANDLER is not set
# CONFIG_WATCHDOG is not set
CONFIG_HW_RANDOM=m
# CONFIG_RTC is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_DRM is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
# CONFIG_I2C is not set

#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_HWMON_DEBUG_CHIP is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set

#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
CONFIG_DAB=y

#
# Graphics support
#
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
# CONFIG_FB is not set

#
# Sound
#
# CONFIG_SOUND is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
# CONFIG_USB is not set

#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_INFINIBAND is not set
# CONFIG_RTC_CLASS is not set

#
# DMA Engine support
#
# CONFIG_DMA_ENGINE is not set

#
# DMA Clients
#

#
# DMA Devices
#

#
# Userspace I/O
#
# CONFIG_UIO is not set

#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
CONFIG_FUSE_FS=y

#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set

#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set

#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_ECRYPT_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set

#
# Network File Systems
#
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
# CONFIG_NFSD is not set
CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_BIND34 is not set
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y

#
# Native Language Support
#
# CONFIG_NLS is not set

#
# Distributed Lock Manager
#
# CONFIG_DLM is not set

#
# Profiling support
#
# CONFIG_PROFILING is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
CONFIG_FORCED_INLINING=y
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_FAULT_INJECTION is not set
CONFIG_CROSSCOMPILE=y
CONFIG_CMDLINE=""
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_SB1XXX_CORELIS is not set
# CONFIG_RUNTIME_DEBUG is not set

#
# Security options
#
CONFIG_KEYS=y
CONFIG_KEYS_DEBUG_PROC_KEYS=y
# CONFIG_SECURITY is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_XCBC is not set
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_WP512=m
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
CONFIG_CRYPTO_BLOWFISH=y
CONFIG_CRYPTO_TWOFISH=y
CONFIG_CRYPTO_TWOFISH_COMMON=y
CONFIG_CRYPTO_SERPENT=y
CONFIG_CRYPTO_AES=m
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
CONFIG_CRYPTO_TEA=m
# CONFIG_CRYPTO_ARC4 is not set
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_MICHAEL_MIC=y
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_TEST is not set
CONFIG_CRYPTO_HW=y

#
# Library routines
#
CONFIG_BITREVERSE=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y

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

* Re: [PATCH 1/3] Remove '-mno-explicit-relocs' option when CONFIG_BUILD_ELF64
  2007-08-09 15:18 ` Daniel Jacobowitz
@ 2007-08-09 19:39   ` Franck Bui-Huu
  2007-08-13 19:30     ` Daniel Jacobowitz
  0 siblings, 1 reply; 19+ messages in thread
From: Franck Bui-Huu @ 2007-08-09 19:39 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: linux-mips

Daniel Jacobowitz wrote:
> On Thu, Feb 15, 2007 at 02:04:18PM +0100, Franck Bui-Huu wrote:
>> From: Franck Bui-Huu <fbuihuu@gmail.com>
>>
>> This patch removes '-mno-explicit-relocs' usage when
>> CONFIG_BUILD_ELF64 is set since this option was only required
>> with the old hack to truncate addresses at the assembly level
>> where "-mabi=64 -Wa,-mabi=32" was used.
>>
>> This should yield a small code size improvement for inline
>> assembly, where the R constraint is used.
>>
>> The idea is coming from Maciej <macro@linux-mips.org>.
> 
> It looks like nothing ever came of these patches?  

yes it seems a common rule which is applied to the patches I send to
this mailing list ;)

> I tried to boot my
> Sentosa again today, and needed a slightly updated version of them.
> 

What do you mean by "slightly updated version" ? Did you rebase them
on top the current linux-mips tree, or something ? If not, what's your
kernel version ?

> I'm not positive I did the update correctly, though, since the board
> panics in swapper after jumping to a bogus pointer.
> 

Sorry I don't understand this. Do you mean:

  a) My kernel crashed, so I gave your patchset a try but it's still
     crahshing

  b) My kernel crashed, so I gave your patchset a try and it makes my
     kernel running fine.

I assume you're saying a).

Can you give a try to 2.6.23-rc2 because it includes commit
b1c65b3988c6e29ac371ab1cbbf6c4f8fb7092f8 which might fix your
issue. That would be a side effect but it gives us a hint on your
problem.

Also your .config, dmesg files are welcome.

		Franck

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

* Re: [PATCH 1/3] Remove '-mno-explicit-relocs' option when CONFIG_BUILD_ELF64
  2007-02-15 13:04 [PATCH 1/3] Remove '-mno-explicit-relocs' option when CONFIG_BUILD_ELF64 Franck Bui-Huu
@ 2007-08-09 15:18 ` Daniel Jacobowitz
  2007-08-09 19:39   ` Franck Bui-Huu
  0 siblings, 1 reply; 19+ messages in thread
From: Daniel Jacobowitz @ 2007-08-09 15:18 UTC (permalink / raw)
  To: Franck Bui-Huu; +Cc: linux-mips

On Thu, Feb 15, 2007 at 02:04:18PM +0100, Franck Bui-Huu wrote:
> From: Franck Bui-Huu <fbuihuu@gmail.com>
> 
> This patch removes '-mno-explicit-relocs' usage when
> CONFIG_BUILD_ELF64 is set since this option was only required
> with the old hack to truncate addresses at the assembly level
> where "-mabi=64 -Wa,-mabi=32" was used.
> 
> This should yield a small code size improvement for inline
> assembly, where the R constraint is used.
> 
> The idea is coming from Maciej <macro@linux-mips.org>.

It looks like nothing ever came of these patches?  I tried to boot my
Sentosa again today, and needed a slightly updated version of them.

I'm not positive I did the update correctly, though, since the board
panics in swapper after jumping to a bogus pointer.

-- 
Daniel Jacobowitz
CodeSourcery

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

* [PATCH 1/3] Remove '-mno-explicit-relocs' option when CONFIG_BUILD_ELF64
@ 2007-02-15 13:04 Franck Bui-Huu
  2007-08-09 15:18 ` Daniel Jacobowitz
  0 siblings, 1 reply; 19+ messages in thread
From: Franck Bui-Huu @ 2007-02-15 13:04 UTC (permalink / raw)
  To: linux-mips

From: Franck Bui-Huu <fbuihuu@gmail.com>

This patch removes '-mno-explicit-relocs' usage when
CONFIG_BUILD_ELF64 is set since this option was only required
with the old hack to truncate addresses at the assembly level
where "-mabi=64 -Wa,-mabi=32" was used.

This should yield a small code size improvement for inline
assembly, where the R constraint is used.

The idea is coming from Maciej <macro@linux-mips.org>.

Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
 arch/mips/Makefile |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index c68b5d3..4240ca1 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -60,9 +60,7 @@ vmlinux-32		= vmlinux.32
 vmlinux-64		= vmlinux
 
 cflags-y		+= -mabi=64
-ifdef CONFIG_BUILD_ELF64
-cflags-y		+= $(call cc-option,-mno-explicit-relocs)
-else
+ifndef CONFIG_BUILD_ELF64
 cflags-y		+= $(call cc-option,-msym32)
 endif
 endif
-- 
1.4.4.3.ge6d4

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

end of thread, other threads:[~2007-08-14 16:22 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-13  9:18 [RFC] Kill CONFIG_BUILD_ELF64 from Kconfig Franck Bui-Huu
2007-02-13  9:18 ` [PATCH 1/3] Remove '-mno-explicit-relocs' option when CONFIG_BUILD_ELF64 Franck Bui-Huu
2007-02-13  9:18 ` [PATCH 2/3] Automatically set CONFIG_BUILD_ELF64 Franck Bui-Huu
2007-02-13 16:12   ` Atsushi Nemoto
2007-02-13 17:02     ` Franck Bui-Huu
2007-02-13 16:18   ` Ralf Baechle
2007-02-13 17:09     ` Franck Bui-Huu
2007-02-13 20:05       ` Franck Bui-Huu
2007-02-14  1:28       ` Atsushi Nemoto
2007-02-14  8:20         ` Franck Bui-Huu
2007-02-14 16:14           ` Atsushi Nemoto
2007-02-15  8:36             ` Franck Bui-Huu
2007-02-14 11:42         ` Maciej W. Rozycki
2007-02-13  9:18 ` [PATCH 3/3] Rename CONFIG_BUILD_ELF64 into CONFIG_64BIT_BUILD_ELF32 Franck Bui-Huu
2007-02-15 13:04 [PATCH 1/3] Remove '-mno-explicit-relocs' option when CONFIG_BUILD_ELF64 Franck Bui-Huu
2007-08-09 15:18 ` Daniel Jacobowitz
2007-08-09 19:39   ` Franck Bui-Huu
2007-08-13 19:30     ` Daniel Jacobowitz
2007-08-14 16:22       ` Franck Bui-Huu

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.