public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as
@ 2021-10-21  9:36 ro at gcc dot gnu.org
  2021-10-21  9:38 ` [Bug libffi/102874] " ro at gcc dot gnu.org
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: ro at gcc dot gnu.org @ 2021-10-21  9:36 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

            Bug ID: 102874
           Summary: [12 regression] src/x86/win64.S doesn't assemble with
                    Solaris as
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libffi
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ro at gcc dot gnu.org
                CC: hjl.tools at gmail dot com
  Target Milestone: ---
            Target: i?86-pc-solaris2.11, x86_64-pc-solaris2.11

The libffi 3.4.2 import badly broke Solaris/x86 bootstrap with the native
assembler:

Assembler:
        "/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 88 :
Illegal mnemonic
        Near line: ".macro epilogue"
        "/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 88 : Syntax
error
        Near line: ".macro epilogue"
config.status: creating Makefile
        "/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 95 :
Illegal mnemonic
        Near line: ".endm"
        "/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 95 : Syntax
error
        Near line: ".endm"
        "/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 100 :
Illegal mnemonic
        Near line: " epilogue"
        "/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 100 :
Syntax error
        Near line: "epilogue"

/bin/as doesn't support .macro/.endm.

I initially tried to exclude ffiw64.c and win64.S from SOURCES in
configure.host.
While this fixed the build, it made all 64-bit libffi and libgo link tests
FAIL with unresolved references to *_efi64 functions.

While I wonder why libffi on a Unix system needs win64 support, the fix seems
simple: just use #define instead of .macro/.endm to define epilogue.  The
attached patch does that and brings things back to normal.

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

* [Bug libffi/102874] [12 regression] src/x86/win64.S doesn't assemble with Solaris as
  2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
@ 2021-10-21  9:38 ` ro at gcc dot gnu.org
  2021-10-21  9:38 ` ro at gcc dot gnu.org
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ro at gcc dot gnu.org @ 2021-10-21  9:38 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

--- Comment #1 from Rainer Orth <ro at gcc dot gnu.org> ---
Created attachment 51642
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51642&action=edit
proposed patch

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

* [Bug libffi/102874] [12 regression] src/x86/win64.S doesn't assemble with Solaris as
  2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
  2021-10-21  9:38 ` [Bug libffi/102874] " ro at gcc dot gnu.org
@ 2021-10-21  9:38 ` ro at gcc dot gnu.org
  2021-10-21 11:24 ` hjl.tools at gmail dot com
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ro at gcc dot gnu.org @ 2021-10-21  9:38 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

Rainer Orth <ro at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |12.0

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

* [Bug libffi/102874] [12 regression] src/x86/win64.S doesn't assemble with Solaris as
  2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
  2021-10-21  9:38 ` [Bug libffi/102874] " ro at gcc dot gnu.org
  2021-10-21  9:38 ` ro at gcc dot gnu.org
@ 2021-10-21 11:24 ` hjl.tools at gmail dot com
  2021-10-21 21:10 ` ro at CeBiTec dot Uni-Bielefeld.DE
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: hjl.tools at gmail dot com @ 2021-10-21 11:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2021-10-21
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |WAITING

--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
Does libffi 3.4.2 work on Solaris?  If yes, why doesn't it work in gcc?
If no, please fix the upstream and backport the fix.

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

* [Bug libffi/102874] [12 regression] src/x86/win64.S doesn't assemble with Solaris as
  2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2021-10-21 11:24 ` hjl.tools at gmail dot com
@ 2021-10-21 21:10 ` ro at CeBiTec dot Uni-Bielefeld.DE
  2021-10-21 22:09 ` hjl.tools at gmail dot com
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld.DE @ 2021-10-21 21:10 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

--- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> --- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
> Does libffi 3.4.2 work on Solaris?  If yes, why doesn't it work in gcc?

It does when gcc is configured with gas, but doesn't when configured
with /bin/as.

> If no, please fix the upstream and backport the fix.

Done: https://github.com/libffi/libffi/issues/665.

Depending on how this goes upstream, we may need a local fix: leaving
gcc master broken on Solaris/x86 isn't an option!

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

* [Bug libffi/102874] [12 regression] src/x86/win64.S doesn't assemble with Solaris as
  2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2021-10-21 21:10 ` ro at CeBiTec dot Uni-Bielefeld.DE
@ 2021-10-21 22:09 ` hjl.tools at gmail dot com
  2021-11-05 13:47 ` rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: hjl.tools at gmail dot com @ 2021-10-21 22:09 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to ro@CeBiTec.Uni-Bielefeld.DE from comment #3)
> > --- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
> > Does libffi 3.4.2 work on Solaris?  If yes, why doesn't it work in gcc?
> 
> It does when gcc is configured with gas, but doesn't when configured
> with /bin/as.
> 
> > If no, please fix the upstream and backport the fix.
> 
> Done: https://github.com/libffi/libffi/issues/665.
> 
> Depending on how this goes upstream, we may need a local fix: leaving
> gcc master broken on Solaris/x86 isn't an option!

The goal is to fix libffi in both upstream and GCC.  Please do

1. Create a pull request to fix libffi upstream.
2. Submit the proposed fix to GCC.
3. After the proposed is checked into GCC, add it to libffi/LOCAL_PATCHES
so that we keep it in GCC until it is fixed in upstream and synced.

If libffi upstream is fixed before the proposed fix is checked into GCC,
you can cherry-pick the fix from libffi upstream without touching
libffi/LOCAL_PATCHES.

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

* [Bug libffi/102874] [12 regression] src/x86/win64.S doesn't assemble with Solaris as
  2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2021-10-21 22:09 ` hjl.tools at gmail dot com
@ 2021-11-05 13:47 ` rguenth at gcc dot gnu.org
  2021-11-05 15:08 ` hjl.tools at gmail dot com
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-11-05 13:47 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |build
             Status|WAITING                     |NEW
           Priority|P3                          |P1

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
Upstream bug was filed and fix proposed.  IMHO we don't need to wait and can
pull this fix temporarily.

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

* [Bug libffi/102874] [12 regression] src/x86/win64.S doesn't assemble with Solaris as
  2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2021-11-05 13:47 ` rguenth at gcc dot gnu.org
@ 2021-11-05 15:08 ` hjl.tools at gmail dot com
  2021-11-13  1:39 ` hp at gcc dot gnu.org
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: hjl.tools at gmail dot com @ 2021-11-05 15:08 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

--- Comment #6 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Richard Biener from comment #5)
> Upstream bug was filed and fix proposed.  IMHO we don't need to wait and can
> pull this fix temporarily.

Is there a pull request to fix it in upstream?

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

* [Bug libffi/102874] [12 regression] src/x86/win64.S doesn't assemble with Solaris as
  2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2021-11-05 15:08 ` hjl.tools at gmail dot com
@ 2021-11-13  1:39 ` hp at gcc dot gnu.org
  2021-11-13  6:31 ` hjl.tools at gmail dot com
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: hp at gcc dot gnu.org @ 2021-11-13  1:39 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

Hans-Peter Nilsson <hp at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hp at gcc dot gnu.org

--- Comment #7 from Hans-Peter Nilsson <hp at gcc dot gnu.org> ---
(In reply to H.J. Lu from comment #6)
> (In reply to Richard Biener from comment #5)
> > Upstream bug was filed and fix proposed.  IMHO we don't need to wait and can
> > pull this fix temporarily.
> 
> Is there a pull request to fix it in upstream?

I'll help: there -> https://github.com/libffi/libffi/pull/669

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

* [Bug libffi/102874] [12 regression] src/x86/win64.S doesn't assemble with Solaris as
  2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2021-11-13  1:39 ` hp at gcc dot gnu.org
@ 2021-11-13  6:31 ` hjl.tools at gmail dot com
  2021-11-15  9:17 ` ro at gcc dot gnu.org
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: hjl.tools at gmail dot com @ 2021-11-13  6:31 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

--- Comment #8 from H.J. Lu <hjl.tools at gmail dot com> ---
The proposed fix should be submitted to GCC and put it in
libffi/LOCAL_PATCHES after it is checked in.

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

* [Bug libffi/102874] [12 regression] src/x86/win64.S doesn't assemble with Solaris as
  2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2021-11-13  6:31 ` hjl.tools at gmail dot com
@ 2021-11-15  9:17 ` ro at gcc dot gnu.org
  2021-11-15  9:30 ` cvs-commit at gcc dot gnu.org
  2021-11-15  9:42 ` ro at gcc dot gnu.org
  11 siblings, 0 replies; 13+ messages in thread
From: ro at gcc dot gnu.org @ 2021-11-15  9:17 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

Rainer Orth <ro at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                URL|                            |https://gcc.gnu.org/piperma
                   |                            |il/gcc-patches/2021-Novembe
                   |                            |r/584438.html
           Assignee|unassigned at gcc dot gnu.org      |ro at gcc dot gnu.org

--- Comment #9 from Rainer Orth <ro at gcc dot gnu.org> ---
Mine, patch posted.

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

* [Bug libffi/102874] [12 regression] src/x86/win64.S doesn't assemble with Solaris as
  2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2021-11-15  9:17 ` ro at gcc dot gnu.org
@ 2021-11-15  9:30 ` cvs-commit at gcc dot gnu.org
  2021-11-15  9:42 ` ro at gcc dot gnu.org
  11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-15  9:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Rainer Orth <ro@gcc.gnu.org>:

https://gcc.gnu.org/g:a91f844ef449d0dd1cf2e0e47b0ade0d8a6304e1

commit r12-5262-ga91f844ef449d0dd1cf2e0e47b0ade0d8a6304e1
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Mon Nov 15 10:24:27 2021 +0100

    libffi: Use #define instead of .macro in  src/x86/win64.S [PR102874]

    The libffi 3.4.2 import badly broke Solaris/x86 bootstrap with the native
    assembler:

    Assembler:
            "/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 88 :
    Illegal mnemonic
            Near line: ".macro epilogue"
            "/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 88 :
Syntax
    error
            Near line: ".macro epilogue"
            "/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 95 :
    Illegal mnemonic
            Near line: ".endm"
            "/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 95 :
Syntax
    error
            Near line: ".endm"
            "/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 100 :
    Illegal mnemonic
            Near line: " epilogue"
            "/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 100 :
    Syntax error
            Near line: "epilogue"

    Solaris as doesn't support .macro/.endm.

    Fixed by using #define instead of the unportable .macro.

    Tested on i386-pc-solaris2.11 and x86_64-pc-linux-gnu.

    The bug has been reported upstream
    (https://github.com/libffi/libffi/issues/665); a corresponding pull
    request is also pending (https://github.com/libffi/libffi/pull/669).


    2021-10-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

            libffi:
            PR libffi/102874
            * src/x86/win64.S (epilogue): Use #define instead of .macro.

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

* [Bug libffi/102874] [12 regression] src/x86/win64.S doesn't assemble with Solaris as
  2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2021-11-15  9:30 ` cvs-commit at gcc dot gnu.org
@ 2021-11-15  9:42 ` ro at gcc dot gnu.org
  11 siblings, 0 replies; 13+ messages in thread
From: ro at gcc dot gnu.org @ 2021-11-15  9:42 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102874

Rainer Orth <ro at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #11 from Rainer Orth <ro at gcc dot gnu.org> ---
Fixed for GCC 12.

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

end of thread, other threads:[~2021-11-15  9:42 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-21  9:36 [Bug libffi/102874] New: [12 regression] src/x86/win64.S doesn't assemble with Solaris as ro at gcc dot gnu.org
2021-10-21  9:38 ` [Bug libffi/102874] " ro at gcc dot gnu.org
2021-10-21  9:38 ` ro at gcc dot gnu.org
2021-10-21 11:24 ` hjl.tools at gmail dot com
2021-10-21 21:10 ` ro at CeBiTec dot Uni-Bielefeld.DE
2021-10-21 22:09 ` hjl.tools at gmail dot com
2021-11-05 13:47 ` rguenth at gcc dot gnu.org
2021-11-05 15:08 ` hjl.tools at gmail dot com
2021-11-13  1:39 ` hp at gcc dot gnu.org
2021-11-13  6:31 ` hjl.tools at gmail dot com
2021-11-15  9:17 ` ro at gcc dot gnu.org
2021-11-15  9:30 ` cvs-commit at gcc dot gnu.org
2021-11-15  9:42 ` ro at gcc dot gnu.org

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).