Re: Please include const-sections into linux-next

Andi Kleen
2011-10-16T21:57:31Z

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

vate email?
>
> OK, so after fixing up that one, the next failure is:
>
> drivers/net/fealnx.c:95: error: version causes a section type conflict
> drivers/net/fealnx.c:1944: error: fealnx_pci_tbl causes a section type
> conflict

Hmm, this is weird (just like the other error)
I wonder if the pa-risc tool chain has some general problems with sections

On a successful build with the same config could you send me the output of

make drivers/net/fealnx.s
and
make drivers/net/fealnx.i

in the same config privately? From that I can see if there's something else
in init.rodata that does not match my i386 build.

One alternative to track it down would be to apply the attached
patch to the gcc, then gcc would print it out.

-Andi

[-- Attachment #2: section-conflict --]
[-- Type: application/octet-stream, Size: 1521 bytes --]

commit b74d9e7a4a76afe4fd769881525f89f89324be8c
Author: ak <ak@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu Jun 9 06:22:17 2011 +0000

better warning for section conflict

gcc/:

2011-06-08 Andi Kleen <ak@linux.intel.com>

* varasm.c (get_section): Print location of other conflict
for section conflicts.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174836 138bc75d-0d04-0410-961f-82ee72b054a4

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 820bcbd..1c9fa02 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2011-06-08 Andi Kleen <ak@linux.intel.com>

+ * varasm.c (get_section): Print location of other conflict
+ for section conflicts.
+
+2011-06-08 Andi Kleen <ak@linux.intel.com>
+
* config/i386/driver-i386.c (host_detect_local_cpu):
Add model 0x2d Intel CPU.

diff --git a/gcc/varasm.c b/gcc/varasm.c
index 3311c86..a0a0582 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -313,7 +313,11 @@ get_section (const char *name, unsigned int flags, tree decl)
if (decl == 0)
decl = sect->named.decl;
gcc_assert (decl);
- error ("%+D causes a section type conflict", decl);
+ error ("%+D causes a section type conflict with %D",
+ decl, sect->named.decl);
+ if (decl != sect->named.decl)
+ inform (DECL_SOURCE_LOCATION (sect->named.decl),
+ "%qD was declared here", sect->named.decl);
/* Make sure we don't error about one section multiple times. */
sect->common.flags |= SECTION_OVERRIDE;
}