Uploaded image for project: 'Funtoo From Scratch'
  1. Funtoo From Scratch
  2. FFS-20

musl: under cross-compilation certain SIMD instructions cannot be used

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Normal Normal
    • None

      This so far affects rsync, when building under in musl.

      lib/snprintf.c: In function 'dopr':
      lib/snprintf.c:504:44: warning: this statement may fall through [-Wimplicit-fallthrough=]
        504 |                                 cnk->flags |= DP_F_UP;
            |                                            ^
      lib/snprintf.c:505:25: note: here
        505 |                         case 'x':
            |                         ^~~~
      lib/snprintf.c:514:44: warning: this statement may fall through [-Wimplicit-fallthrough=]
        514 |                                 cnk->flags |= DP_F_UP;
            |                                            ^
      lib/snprintf.c:515:25: note: here
        515 |                         case 'a':
            |                         ^~~~
      x86_64-unknown-linux-musl-gcc -m64 -I. -I. -I./zlib -I./popt -g -O2 -DHAVE_CONFIG_H -Wall -W -pedantic-errors -Wno-pedantic  -c flist.c -o flist.o
      Wrote: rsync-ssl.1.html
      Wrote: rsync-ssl.1
      Wrote: rsyncd.conf.5.html
      Wrote: rsyncd.conf.5
      ./simd-checksum-x86_64.cpp: In function 'uint32_t get_checksum1_cpp(char*, int32_t)':
      ./simd-checksum-x86_64.cpp:89:52: error: multiversioning needs 'ifunc' which is not supported on this target
         89 | __attribute__ ((target("default"))) MVSTATIC int32 get_checksum1_avx2_64(schar* buf, int32 len, int32 i, uint32* ps1, uint32* ps2) { return i; }
            |                                                    ^~~~~~~~~~~~~~~~~~~~~
      ./simd-checksum-x86_64.cpp:480:1: error: use of multiversioned function without a default
        480 | }
            | ^
      ./simd-checksum-x86_64.cpp:91:52: error: multiversioning needs 'ifunc' which is not supported on this target
         91 | __attribute__ ((target("default"))) MVSTATIC int32 get_checksum1_ssse3_32(schar* buf, int32 len, int32 i, uint32* ps1, uint32* ps2) { return i; }
            |                                                    ^~~~~~~~~~~~~~~~~~~~~~
      ./simd-checksum-x86_64.cpp:480:1: error: use of multiversioned function without a default
        480 | }
            | ^
      

            Unassigned Unassigned
            oleg oleg
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: