Opened 3 months ago

Closed 6 weeks ago

#12777 closed Bug report (wontfix)

FTBFS on i386 - Debian

Reported by: Phil Wyett Owned by:
Priority: normal Component: FileZilla Client
Keywords: Cc:
Component version: Operating system type:
Operating system version:

Description

Last two version are not building correctly on i386.

See attached.

Attachments (1)

filezilla_ftbfs_i386.txt (1.9 MB ) - added by Phil Wyett 3 months ago.
Build log

Download all attachments as: .zip

Change History (6)

by Phil Wyett, 3 months ago

Attachment: filezilla_ftbfs_i386.txt added

Build log

comment:1 by Tim Kosse, 3 months ago

Status: newmoreinfo

This looks to be a bug in the header files coming with gcc.

Look at this minimal reproducer, merely targeting SSE2 causes the headers to pull in stuff for AVX512.

~$ cat test.c
#pragma GCC target("sse2")
#include <immintrin.h>
int main(){return 0;}
~$ gcc test.c
In file included from /usr/lib/gcc/i686-linux-gnu/12/include/immintrin.h:98,
                 from test.c:2:
/usr/lib/gcc/i686-linux-gnu/12/include/avx512fp16intrin.h:38:9: error: '_Float16' is not supported on this target
   38 | typedef _Float16 __v8hf __attribute__ ((__vector_size__ (16)));
      |         ^~~~~~~~
/usr/lib/gcc/i686-linux-gnu/12/include/avx512fp16intrin.h:39:9: error: '_Float16' is not supported on this target
   39 | typedef _Float16 __v16hf __attribute__ ((__vector_size__ (32)));
      |         ^~~~~~~~
/usr/lib/gcc/i686-linux-gnu/12/include/avx512fp16intrin.h:40:9: error: '_Float16' is not supported on this target
   40 | typedef _Float16 __v32hf __attribute__ ((__vector_size__ (64)));
...

Please bring this to the attention of your gcc package maintainer or contact gcc upstream directly. Please report back the outcome of the discussion.

comment:2 by Phil Wyett, 3 months ago

Status: moreinfonew

Thanks Tim. Had no time to look at this. But at a glance it does look GCC related.

Bug has been reassigned to package GCC in Debian.

I will confirm when issue resolved, so that this bug can be closed.

comment:3 by Phil Wyett, 3 months ago

The Debian GCC team are claiming it actually be a bug in filezilla.

Debian under i386 does not support SSE2.

See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1020327#40

comment:4 by Tim Kosse, 3 months ago

Status: newmoreinfo

The compiler does support SSE2 if you enable it, e.g. with the #pragma in the snippet.

Also, why does the same snippet of code work fine in older versions of Debian with older versions of gcc?

This very much looks like either a wrong #ifdef in the GCC headers, or enabling SSE2 via the #pragma (as opposed to -msse2) doesn't actually enable the functionality that SSE2 brings.

See https://gcc.gnu.org/onlinedocs/gcc/x86-Function-Attributes.html#index-target_0028_0022sse2_0022_0029-function-attribute_002c-x86 and https://gcc.gnu.org/onlinedocs/gcc/Half-Precision.html

I also found an interesting comment about a deeper underlying issue here: https://patchwork.ozlabs.org/project/gcc/patch/f3b2de01-c5c9-19dd-96bc-1cdd81240121@suse.com/

comment:5 by Phil Wyett, 6 weeks ago

Resolution: wontfix
Status: moreinfoclosed

As the GCC team from Debian is not really interested, the intention will be to drop i386/x32 architecture support from the package(s) built for Debian.

Note: See TracTickets for help on using tickets.