Your message dated Mon, 23 Dec 2024 12:16:02 -0800
with message-id <87bjx2kvel.fsf@wireframe>
and subject line Re: Bug#1022246: device-tree-compiler: FTBFS on hppa -
assembler issues
has caused the Debian Bug report #1022246,
regarding device-tree-compiler: FTBFS on hppa - assembler issues
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)
--
1022246: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1022246
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Source: device-tree-compiler
Version: 1.6.1-4
Severity: normal
Tags: ftbfs patch
Dear Maintainer,
Build fails here:
AS tests/trees.o
tests/trees.S: Assembler messages:
tests/trees.S:256: Error: junk at end of line, first unrecognized character is
`''
tests/trees.S:257: Error: junk at end of line, first unrecognized character is
`''
tests/trees.S:258: Error: junk at end of line, first unrecognized character is
`''
tests/trees.S:219: Error: invalid operands (*UND* and .data sections) for `-'
The GNU assembler on hppa differs in a number of ways with the assembler
on other architectures:
1) The end-of-line character is `!'. `;' introduces a comment.
2) The `.string' directive doesn't add a null termination character.
3) It is strict about the format for characters and junk at end of line.
With the attached patch, the device-tree-compiler package builds successfully
on hppa:
https://buildd.debian.org/status/fetch.php?pkg=device-tree-compiler&arch=hppa&ver=1.6.1-4&stamp=1666457482&raw=0
Please push upstream and add to debian/patches if okay.
Thanks,
Dave Anglin
-- System Information:
Debian Release: bookworm/sid
APT prefers buildd-unstable
APT policy: (500, 'buildd-unstable'), (500, 'unstable')
Architecture: hppa (parisc64)
Kernel: Linux 5.19.16+ (SMP w/4 CPU threads)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
Index: device-tree-compiler-1.6.1/flattree.c
===================================================================
--- device-tree-compiler-1.6.1.orig/flattree.c
+++ device-tree-compiler-1.6.1/flattree.c
@@ -124,7 +124,7 @@ static void asm_emit_cell(void *e, cell_
{
FILE *f = e;
- fprintf(f, "\t.byte 0x%02x; .byte 0x%02x; .byte 0x%02x; .byte 0x%02x\n",
+ fprintf(f, "\t.byte 0x%02x\n\t.byte 0x%02x\n\t.byte 0x%02x\n\t.byte
0x%02x\n",
(val >> 24) & 0xff, (val >> 16) & 0xff,
(val >> 8) & 0xff, val & 0xff);
}
@@ -133,10 +133,17 @@ static void asm_emit_string(void *e, con
{
FILE *f = e;
+#if defined(__hppa__)
+ if (len != 0)
+ fprintf(f, "\t.stringz\t\"%.*s\"\n", len, str);
+ else
+ fprintf(f, "\t.stringz\t\"%s\"\n", str);
+#else
if (len != 0)
fprintf(f, "\t.string\t\"%.*s\"\n", len, str);
else
fprintf(f, "\t.string\t\"%s\"\n", str);
+#endif
}
static void asm_emit_align(void *e, int a)
@@ -438,7 +445,11 @@ static void dump_stringtable_asm(FILE *f
while (p < (strbuf.val + strbuf.len)) {
len = strlen(p);
+#if defined(__hppa__)
+ fprintf(f, "\t.stringz \"%s\"\n", p);
+#else
fprintf(f, "\t.string \"%s\"\n", p);
+#endif
p += len+1;
}
}
Index: device-tree-compiler-1.6.1/tests/trees.S
===================================================================
--- device-tree-compiler-1.6.1.orig/tests/trees.S
+++ device-tree-compiler-1.6.1/tests/trees.S
@@ -1,6 +1,78 @@
#include <fdt.h>
#include "testdata.h"
+#ifdef __hppa__
+#define FDTLONG(val) \
+ .byte ((val) >> 24) & 0xff ! \
+ .byte ((val) >> 16) & 0xff ! \
+ .byte ((val) >> 8) & 0xff ! \
+ .byte (val) & 0xff !
+
+#define TREE_HDR(tree) \
+ .balign 8 ! \
+ .globl tree ! \
+tree: \
+ FDTLONG(FDT_MAGIC) ! \
+ FDTLONG(tree##_end - tree) ! \
+ FDTLONG(tree##_struct - tree) ! \
+ FDTLONG(tree##_strings - tree) ! \
+ FDTLONG(tree##_rsvmap - tree) ! \
+ FDTLONG(0x11) ! \
+ FDTLONG(0x10) ! \
+ FDTLONG(0) ! \
+ FDTLONG(tree##_strings_end - tree##_strings) ! \
+ FDTLONG(tree##_struct_end - tree##_struct) !
+
+#define RSVMAP_ENTRY(addrh, addrl, lenh, lenl) \
+ FDTLONG(addrh) ! \
+ FDTLONG(addrl) ! \
+ FDTLONG(lenh) ! \
+ FDTLONG(lenl)
+
+#define EMPTY_RSVMAP(tree) \
+ .balign 8 ! \
+tree##_rsvmap: ! \
+ RSVMAP_ENTRY(0, 0, 0, 0) \
+tree##_rsvmap_end: !
+
+#define PROPHDR(tree, name, len) \
+ FDTLONG(FDT_PROP) ! \
+ FDTLONG(len) ! \
+ FDTLONG(tree##_##name - tree##_strings) !
+
+#define PROP_EMPTY(tree, name) \
+ PROPHDR(tree, name, 0) !
+
+#define PROP_INT(tree, name, val) \
+ PROPHDR(tree, name, 4) \
+ FDTLONG(val) !
+
+#define PROP_INT64(tree, name, valh, vall) \
+ PROPHDR(tree, name, 8) \
+ FDTLONG(valh) ! \
+ FDTLONG(vall) !
+
+#define PROP_STR(tree, name, str) \
+ PROPHDR(tree, name, 55f - 54f) \
+54: \
+ .stringz str ! \
+55: \
+ .balign 4 !
+
+#define BEGIN_NODE(name) \
+ FDTLONG(FDT_BEGIN_NODE) ! \
+ .stringz name ! \
+ .balign 4 !
+
+#define END_NODE \
+ FDTLONG(FDT_END_NODE) !
+
+#define STRING(tree, name, str) \
+tree##_##name: ! \
+ .stringz str !
+
+#else
+
#define FDTLONG(val) \
.byte ((val) >> 24) & 0xff ; \
.byte ((val) >> 16) & 0xff ; \
@@ -69,6 +141,7 @@ tree##_rsvmap_end: ;
#define STRING(tree, name, str) \
tree##_##name: ; \
.string str ;
+#endif
.data
@@ -253,9 +326,13 @@ truncated_string_struct_end:
truncated_string_strings:
STRING(truncated_string, good_string, "good")
truncated_string_bad_string:
+#ifdef __hppa__
+ .ascii "bad"
+#else
.byte 'b'
.byte 'a'
.byte 'd'
+#endif
/* NOTE: terminating \0 deliberately missing */
truncated_string_strings_end:
truncated_string_end:
--- End Message ---
--- Begin Message ---
Version: 1.7.0-1
On 2023-04-28, Uwe Kleine-König wrote:
> On Sat, Oct 22, 2022 at 05:08:03PM +0000, John David Anglin wrote:
>> Build fails here:
>> AS tests/trees.o
>> tests/trees.S: Assembler messages:
>> tests/trees.S:256: Error: junk at end of line, first unrecognized character
>> is `''
>> tests/trees.S:257: Error: junk at end of line, first unrecognized character
>> is `''
>> tests/trees.S:258: Error: junk at end of line, first unrecognized character
>> is `''
>> tests/trees.S:219: Error: invalid operands (*UND* and .data sections) for `-'
>>
>
> I tried to compile upstream's main branch on hppa and couldn't reproduce
> it. I guess it was fixed by
>
>
> https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=d24cc189dca6148eedf9dc9e2d45144b3851dae0
>
> which is included in v1.7.0.
And has successfully built since 1.7.0-1:
https://buildd.debian.org/status/logs.php?pkg=device-tree-compiler&arch=hppa
Marking as done.
live well,
vagrant
signature.asc
Description: PGP signature
--- End Message ---