On Wed, 24 Jul 2024 12:50:23 +0200 Santiago Vila <sanv...@debian.org> wrote:
Package: src:win32-loader
Version: 0.10.6
Severity: serious
Tags: ftbfs

During a rebuild of all packages in unstable, your package failed to build:

i686-w64-mingw32-as --defsym IMAGE_BASE=0x400000 -march=i486  -o instdlg.o 
/<<PKGBUILDDIR>>/helpers/instdlg/instdlg.s
/<<PKGBUILDDIR>>/helpers/instdlg/instdlg.s: Assembler messages:
/<<PKGBUILDDIR>>/helpers/instdlg/instdlg.s:161: Warning: end of file in string; 
'"' inserted
/<<PKGBUILDDIR>>/helpers/instdlg/instdlg.s:94:   Info: macro invoked from here
/<<PKGBUILDDIR>>/helpers/instdlg/instdlg.s:161:    Info: macro invoked from here

makensis -V3 "-XUnicode True" -DVERSION=0.10.6 -D4DIGITS_DATE=2022.03.21.2258 
-D_OUTFILE_NAME=build/win32-loader_0.10.6_all.exe -DBUILD_DIR=build -DNOCD=yes -DPXE=yes -DNOCD=yes 
-DOPTIONS_TXT="+net +pxe" main.nsi
MakeNSIS v3.10-2 - Copyright 1999-2023 Contributors
See the file COPYING for license details.
Credits can be found in the Users Manual.

Command line defined: "VERSION=0.10.6"
Command line defined: "4DIGITS_DATE=2022.03.21.2258"
Command line defined: "_OUTFILE_NAME=build/win32-loader_0.10.6_all.exe"
Command line defined: "BUILD_DIR=build"
Command line defined: "NOCD=yes"
Command line defined: "PXE=yes"
Command line defined: "NOCD=yes"
Command line defined: "OPTIONS_TXT=+net +pxe"
Processing config: /etc/nsisconf.nsh
Processing script file: "main.nsi" (UTF8)
Error: Can't find IDC_LIST1 (1016) in the custom UI!
!include: error in script: "download.nsi" on line 42
Error in script "main.nsi" on line 127 -- aborting creation process




Dear Maintainer,
I tried to have a look at this failure.

It looks like makensis is failing to manipulate
an executable build/helpers/instdlg/instdlg.exe.
This seems to happen because the layout/content
of instdlg.o is different than expected.
The object instdlg.o get generated from helpers/instdlg/instdlg.s.

It starts to get visible since binutils-mingw-w64-i686
migrated into Trixie/testing at 2024-07-08.

I did a git-bisect of sourceware.org/git/binutils-gdb.git and
found below commit [1] to be the first which shows this different behaviour.

The file instdlg.s also uses nested macros with string parameters [3].
This looks like it should generate UTF16 wide strings in the object file.
And since the new gas version there are plenty of warnings related to it 
visible.

The layout of the generated binary instdlg.o is with the new version
different [2], and I assume therefore nsis is failing.


But I am not completely sure if the generated instdlg.o
is valid and expected, and nsis needs to be able to handle it.
Or GNU assembler should really generate object files in the old layout?


I hope it is ok to CC Jan as author of the commit in GNU assembler.

Kind regards,
Bernhard



[1]
69cab370cf666f2e7692158ac7dffc6a65207f4a is the first broken commit
commit 69cab370cf666f2e7692158ac7dffc6a65207f4a
Author: Jan Beulich <jbeul...@suse.com>
Date:   Fri May 24 12:22:54 2024 +0200

    gas: adjust handling of quotes for .irpc
The present handling of inner double quotes can lead to very strange
    diagnostics. Follow one of the two possible interpretations of the doc:
    @dots{} referring to possibly multiple white space separated
    @var{values}, each of which may be quoted. The original implementation,
    prior to 465e5617233f ("PR gas/3856"), hints at the other possible
    interpretation: When quoted there's only a single @var{values}, with
    inner quotes taken as ordinary characters. That, however, seems overall
    less useful to me.
While touching the documentation, mirror the (inverse) spelling
    correction (@section line inconsistent with actual description) to .irp
    as well.

 gas/doc/as.texi                       | 15 ++++++++-------
 gas/macro.c                           | 20 ++++++--------------
 gas/testsuite/gas/macros/irpc-quote.l | 18 ++++++++++++++++++
 gas/testsuite/gas/macros/irpc-quote.s |  6 ++++++
 gas/testsuite/gas/macros/macros.exp   |  2 ++
 5 files changed, 40 insertions(+), 21 deletions(-)
 create mode 100644 gas/testsuite/gas/macros/irpc-quote.l
 create mode 100644 gas/testsuite/gas/macros/irpc-quote.s


[2]
build/helpers/instdlg/instdlg.o
2.42-4+11.5                                                                   | 
2.42.50.20240625-1+11.6
00000120  48 04 00 40 06 00 00 00  00 00 2c 01 8c 00 00 00  |H..@......,.....|| 
48 04 00 40 06 00 00 00  00 00 2c 01 8c 00 00 00  |H..@......,.....|
00000130  00 00 00 00 08 00 00 00  00 01 4d 00 53 00 20 00  |..........M.S. .|| 00 00 0a 
00 00 00 08 00  00 00 00 01 4d 00 53 00  |............M.S.| <<<
00000140  53 00 68 00 65 00 6c 00  6c 00 20 00 44 00 6c 00  |S.h.e.l.l. .D.l.|| 
20 00 53 00 68 00 65 00  6c 00 6c 00 20 00 44 00  | .S.h.e.l.l. .D.|
00000150  67 00 00 00 00 00 00 00  00 00 00 00 00 00 01 50  |g..............P|| 
6c 00 67 00 00 00 00 00  00 00 00 00 00 00 00 00  |l.g.............|
00000160  01 00 1a 00 3c 00 0e 00  03 04 00 00 ff ff 80 00  |....<...........|| 01 
50 01 00 1a 00 3c 00  0e 00 03 04 00 00 ff ff  |.P....<.........|
00000170  00 00 00 00 00 00 00 00  00 00 00 00 00 00 80 50  |...............P|| 
80 00 0a 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000180  00 00 0a 00 2c 01 0b 00  ec 03 00 00 4d 00 53 00  |....,.......M.S.|| 
00 00 80 50 00 00 0a 00  2c 01 0b 00 ec 03 00 00  |...P....,.......|


[3]
https://sources.debian.org/src/win32-loader/0.10.6/helpers/instdlg/instdlg.s/#L161
https://sources.debian.org/src/win32-loader/0.10.6/helpers/instdlg/instdlg.s/#L81
https://sources.debian.org/src/win32-loader/0.10.6/helpers/instdlg/instdlg.s/#L53

Reply via email to