From: Sedat Dilek <sedat.dilek@googlemail.com>
To: Stephen Rothwell <sfr@canb.auug.org.au>,
Matthias Klose <doko@debian.org>
Cc: linux-next <linux-next@vger.kernel.org>,
debian-gcc <debian-gcc@lists.debian.org>,
binutils <binutils@sourceware.org>,
amodra@gmail.com, "H.J. Lu" <hjl.tools@gmail.com>
Subject: Re: linux-next: Tree for March 8 (BROKEN: arch/x86/kernel/entry_32.S? Debian's binutils/as?)
Date: Wed, 09 Mar 2011 11:54:00 -0000 [thread overview]
Message-ID: <AANLkTikH-Q5jnLfwNVFi2wmDOeddgo6Aq8fndVRSGj7Y@mail.gmail.com> (raw)
In-Reply-To: <AANLkTin2H9=NWp5G6N6_e=bxBTh2eS1dbUxOjT6xX98C@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3053 bytes --]
On Tue, Mar 8, 2011 at 11:44 AM, Sedat Dilek <sedat.dilek@googlemail.com> wrote:
> Hi,
>
> my build of linux-next (next-20110308, the same with the one from
> yesterday) is broken.
> (I translated the German output.)
>
> [ build.log ]
> AS arch/x86/kernel/entry_32.o
> /home/sd/src/linux-2.6/linux-2.6.38-rc7/debian/build/source_i386_none/arch/x86/kernel/entry_32.S:
> Assembler messages:
> /home/sd/src/linux-2.6/linux-2.6.38-rc7/debian/build/source_i386_none/arch/x86/kernel/entry_32.S:1421:
> Error: .size expression does not evaluate to a constant
> make[6]: *** [arch/x86/kernel/entry_32.o] Fehler 1 (Error 1)
> make[5]: *** [arch/x86/kernel] Fehler 2 (Error 2)
> make[4]: *** [arch/x86] Fehler 2 (Error 2)
> make[4]: *** Warte auf noch nicht beendete Prozesse... (Waiting for
> unfinished jobs...)
>
> I am not sure if this is a problem of Debian's binutils snapshot from
> binutils-2_21-branch (Debian-version: 2.21.0.20110302-1) from sid/i386
> or this is only a problem for x86, but I just want to let you know.
>
> FYI: The previous binutils (2.21.0.20110216-2) works fine.
>
> I have tried with reverting the last two changes to
> arch/x86/kernel/entry_32.S in linux-next:
>
> "x86: Use {push,pop}_cfi in more places" (see [1])
> "x86, asm: Cleanup unnecssary macros in asm-offsets.c" (see [2])
>
> Reverting both or [1] or [2] breaks with Debians as (2.21.0.20110302-1).
>
> BTW, [3] has a complete GIT history for the above file.
>
> So, I am unsure from where the problem exactly aroses.
> If this a known issue (and a fix around) or rings a bell to you, let
> me and others know.
>
> Thanks in advance.
>
> Regards,
> - Sedat -
>
> [1] http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=commit;h=60cf637a13932a4750da6746efd0199e8a4c341b
>
> [2] http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=commit;h=7bf04be8f48ceeeffa5b5a79734d6d6e0d59e5f8
>
> [3] http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=history;f=arch/x86/kernel/entry_32.S;h=2878821cb8c1da1d7147b26271114fa9546afe03;hb=HEAD
>
Just FYI (for the "dropped" MLs while finding the "brain bug"):
Finally, with the help of x86 folks and H.J. Lu a fix for the
linux-kernel can now be found in [1].
Commits [2] and [3] from binutils master GIT helped to dig deeper into
the right places.
So I would appreciated both to be backported to binutils-2_21-branch GIT.
@Matthias:
If you like you can use the two backported patches (see file
attachments) for a next binutils upload to Debian/sid.
As usually (and you demanded once from me) I dropped any ChangeLog
entries from the code, but kept the history in the commit-text. Also,
I documented my changes.
So the patches should cleanly apply.
Thanks.
- Sedat -
[1] https://patchwork.kernel.org/patch/621001/
[2] http://sourceware.org/git/?p=binutils.git;a=commit;h=b9521fc0be7945fc842ce1197e241a023378125d
[3] http://sourceware.org/git/?p=binutils.git;a=commit;h=cbd141bb69f791de7ea1581abe7afb34f0c61288
[-- Attachment #2: 0001-Mention-symbol-name-in-non-constant-.size-expression.patch --]
[-- Type: text/plain, Size: 3085 bytes --]
From 3708bdd06792e812acd9da711b51482c0b4b2797 Mon Sep 17 00:00:00 2001
From: Sedat Dilek <sedat.dilek@gmail.com>
Date: Tue, 8 Mar 2011 14:59:35 +0100
Subject: [PATCH 1/2] Mention symbol name in non-constant .size expression.
gas/
2011-03-05 H.J. Lu <hongjiu.lu@intel.com>
* config/obj-elf.c (elf_frob_symbol): Mention symbol name in
non-constant .size expression.
gas/testsuite/
2011-03-05 H.J. Lu <hongjiu.lu@intel.com>
* gas/elf/bad-size.err: Updated.
Conflicts:
gas/ChangeLog
gas/testsuite/ChangeLog
gas/testsuite/gas/elf/bad-size.err
2011-03-08 Sedat Dilek <sedat.dilek@gmail.com>
* Cherry-picked from commit b9521fc0be7945fc842ce1197e241a023378125d
* Drop changes in gas/ChangeLog and gas/testsuite/ChangeLog
---
gas/config/obj-elf.c | 48 ++++++++++++++++++++++++++++++++---
gas/testsuite/gas/elf/bad-size.err | 2 +
2 files changed, 45 insertions(+), 5 deletions(-)
create mode 100644 gas/testsuite/gas/elf/bad-size.err
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 969a509..d43409a 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -1879,6 +1879,7 @@ void
elf_frob_symbol (symbolS *symp, int *puntp)
{
struct elf_obj_sy *sy_obj;
+ expressionS *size;
#ifdef NEED_ECOFF_DEBUG
if (ECOFF_DEBUGGING)
@@ -1887,13 +1888,50 @@ elf_frob_symbol (symbolS *symp, int *puntp)
sy_obj = symbol_get_obj (symp);
- if (sy_obj->size != NULL)
+ size = sy_obj->size;
+ if (size != NULL)
{
- if (resolve_expression (sy_obj->size)
- && sy_obj->size->X_op == O_constant)
- S_SET_SIZE (symp, sy_obj->size->X_add_number);
+ if (resolve_expression (size)
+ && size->X_op == O_constant)
+ S_SET_SIZE (symp, size->X_add_number);
else
- as_bad (_(".size expression does not evaluate to a constant"));
+ {
+ const char *op_name = NULL;
+ const char *add_name = NULL;
+
+ if (size->X_op == O_subtract)
+ {
+ op_name = S_GET_NAME (size->X_op_symbol);
+ add_name = S_GET_NAME (size->X_add_symbol);
+ if (strcmp (op_name, FAKE_LABEL_NAME) == 0)
+ op_name = NULL;
+ if (strcmp (add_name, FAKE_LABEL_NAME) == 0)
+ add_name = NULL;
+
+ if (op_name && add_name)
+ as_bad (_(".size expression with symbols `%s' and `%s' "
+ "does not evaluate to a constant"),
+ op_name, add_name);
+ else
+ {
+ const char *name;
+
+ if (op_name)
+ name = op_name;
+ else if (add_name)
+ name = add_name;
+ else
+ name = NULL;
+
+ if (name)
+ as_bad (_(".size expression with symbol `%s' "
+ "does not evaluate to a constant"), name);
+ }
+ }
+
+ if (!op_name && !add_name)
+ as_bad (_(".size expression does not evaluate to a constant"));
+ }
free (sy_obj->size);
sy_obj->size = NULL;
}
diff --git a/gas/testsuite/gas/elf/bad-size.err b/gas/testsuite/gas/elf/bad-size.err
new file mode 100644
index 0000000..a5bfc31
--- /dev/null
+++ b/gas/testsuite/gas/elf/bad-size.err
@@ -0,0 +1,2 @@
+.*bad-size\.s: Assembler messages:
+.*bad-size\.s:6: Error:.*`_test_nop'.*
--
1.7.4.1
[-- Attachment #3: 0002-Revert-the-last-change-on-gas-elf-bad-size.err.patch --]
[-- Type: text/plain, Size: 947 bytes --]
From eff5315213e5ad4cf255e3ec536f629a015100ee Mon Sep 17 00:00:00 2001
From: Sedat Dilek <sedat.dilek@gmail.com>
Date: Tue, 8 Mar 2011 15:05:45 +0100
Subject: [PATCH 2/2] Revert the last change on gas/elf/bad-size.err.
2011-03-06 H.J. Lu <hongjiu.lu@intel.com>
* gas/elf/bad-size.err: Revert the last change.
Conflicts:
gas/testsuite/ChangeLog
2011-03-08 Sedat Dilek <sedat.dilek@gmail.com>
* Cherry-picked from commit cbd141bb69f791de7ea1581abe7afb34f0c61288
* Drop changes in gas/testsuite/ChangeLog
---
gas/testsuite/gas/elf/bad-size.err | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/gas/testsuite/gas/elf/bad-size.err b/gas/testsuite/gas/elf/bad-size.err
index a5bfc31..5e01ef2 100644
--- a/gas/testsuite/gas/elf/bad-size.err
+++ b/gas/testsuite/gas/elf/bad-size.err
@@ -1,2 +1,2 @@
.*bad-size\.s: Assembler messages:
-.*bad-size\.s:6: Error:.*`_test_nop'.*
+.*bad-size\.s:6: Error: .*
--
1.7.4.1
prev parent reply other threads:[~2011-03-09 11:54 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-08 10:44 Sedat Dilek
2011-03-08 12:44 ` Sedat Dilek
2011-03-08 14:55 ` H.J. Lu
2011-03-08 15:28 ` Sedat Dilek
2011-03-08 15:42 ` Sedat Dilek
2011-03-09 11:54 ` Sedat Dilek [this message]
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=AANLkTikH-Q5jnLfwNVFi2wmDOeddgo6Aq8fndVRSGj7Y@mail.gmail.com \
--to=sedat.dilek@googlemail.com \
--cc=amodra@gmail.com \
--cc=binutils@sourceware.org \
--cc=debian-gcc@lists.debian.org \
--cc=doko@debian.org \
--cc=hjl.tools@gmail.com \
--cc=linux-next@vger.kernel.org \
--cc=sedat.dilek@gmail.com \
--cc=sfr@canb.auug.org.au \
/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 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 read-only IMAP folder(s) and NNTP newsgroup(s).