• Status Closed
  • Percent Complete
    100%
  • Task Type Bug Report
  • Category Packages
  • Assigned To
    Andreas Baumann
  • Operating System pentium4
  • Severity Low
  • Priority Medium
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Arch Linux 32
Opened by Andreas Baumann - 25.02.2022
Last edited by Andreas Baumann - 25.03.2022

FS#239 - [ffmpeg] and [ffmepg4.4] fail to build

libswscale/x86/rgb2rgb_template.c: In function ‘interleaveBytes_sse2’:
libswscale/x86/rgb2rgb_template.c:1838:9: error: the register ‘xmm2’ cannot be clobbered in ‘asm’ for the current target
 1838 |         __asm__(
      |         ^

Also on i486 symbols are missing if not using LTO and probing of libraries like x264/x265 fail.

Closed by  Andreas Baumann
25.03.2022 11:46
Reason for closing:  Fixed
Admin
Andreas Baumann commented on 20.03.2022 15:26

On 486, though x264 is there, I get:

ERROR: libx264 not found

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.libera.chat.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.

I have no clue why..

Admin
Andreas Baumann commented on 20.03.2022 16:14

And though I explicitely disable lto with configure flags it insists to build
with LTO.

Admin
Andreas Baumann commented on 23.03.2022 19:33

Now I get tons of link errors:

/usr/bin/ld: libswscale/libswscale.so: undefined reference to `mask24b'
/usr/bin/ld: libpostproc/libpostproc.so: undefined reference to `w05'
/usr/bin/ld: libpostproc/libpostproc.so: undefined reference to `b01'
/usr/bin/ld: libpostproc/libpostproc.so: undefined reference to `b80'
/usr/bin/ld: libavcodec/libavcodec.so: undefined reference to `pd_2'
/usr/bin/ld: libpostproc/libpostproc.so: undefined reference to `w04'
/usr/bin/ld: libswscale/libswscale.so: undefined reference to `mask24h'
/usr/bin/ld: libswscale/libswscale.so: undefined reference to `bFC'
/usr/bin/ld: libpostproc/libpostproc.so: undefined reference to `b00'
/usr/bin/ld: libswscale/libswscale.so: undefined reference to `bF8'
/usr/bin/ld: libswscale/libswscale.so: undefined reference to `mask24l'
/usr/bin/ld: libpostproc/libpostproc.so: undefined reference to `w20'
/usr/bin/ld: libswscale/libswscale.so: undefined reference to `mask24r'
/usr/bin/ld: libswscale/libswscale.so: undefined reference to `mul15_hi'
/usr/bin/ld: libswscale/libswscale.so: undefined reference to `mmx_ff'
/usr/bin/ld: libpostproc/libpostproc.so: undefined reference to `b08'
/usr/bin/ld: libswscale/libswscale.so: undefined reference to `mul16_mid'
/usr/bin/ld: libswscale/libswscale.so: undefined reference to `mul15_mid'
/usr/bin/ld: libavcodec/libavcodec.so: undefined reference to `pd_1'
/usr/bin/ld: libpostproc/libpostproc.so: undefined reference to `deringThreshold'
/usr/bin/ld: libswscale/libswscale.so: undefined reference to `mask24g'
...
Admin
Andreas Baumann commented on 23.03.2022 19:34

This is pentium4..

Admin
Andreas Baumann commented on 24.03.2022 05:48

This is pretty annoying: enabling LTO leads to assembly errors:

libswscale/x86/swscale_template.c: In function ‘yuv2bgr24_X_ar_mmx’:
libswscale/x86/swscale_template.c:623:5: error: ‘asm’ operand has impossible constraints
  623 |     YSCALEYUV2PACKEDX_ACCURATE
      |     ^

Disabling LTO only half-disabled LTO (I still see -flto in places and
it results in "undefined references".

This package is basically broken.. (which makes things tricky, as too many
packages need it).

Disabling more assembly code might result in terrible performance..

Admin
Andreas Baumann commented on 24.03.2022 06:01

ok, –disable-asm, at least things build then and packages can be installed again.
Don't blame me, if the performace is really bad..
(i686 and pentium4 work this way)

Admin
Andreas Baumann commented on 24.03.2022 06:06

On i486 still issues around:

/gcc/i486-pc-linux-gnu/11.2.0/../../../libx264.so: undefined reference to `x264_cabac_renorm_shift'
/gcc/i486-pc-linux-gnu/11.2.0/../../../libx264.so: undefined reference to `x264_cabac_transition'
/gcc/i486-pc-linux-gnu/11.2.0/../../../libx264.so: undefined reference to `x264_decimate_table8'
/gcc/i486-pc-linux-gnu/11.2.0/../../../libx264.so: undefined reference to `x264_decimate_table4'
/gcc/i486-pc-linux-gnu/11.2.0/../../../libx264.so: undefined reference to `x264_cabac_range_lps'
Admin
Andreas Baumann commented on 24.03.2022 06:17

gcc -Wl,-O1,–sort-common,–as-needed,-z,relro,-z,now -flto -Wl,–as-needed -Wl,-z,noexecstack -pthread -

in configure. And I disable LTO with –disable-lto?

Admin
Andreas Baumann commented on 24.03.2022 06:23

Ok, happens also without LTO (and devtools makepkg.conf for i486 contains a 'lto'
per default, which might not be that smart).

Admin
Andreas Baumann commented on 24.03.2022 06:34

Well, disabled X.264 on i486 for now.

Admin
Andreas Baumann commented on 24.03.2022 10:27

fixed on i686 and pentium4, in stable and testing.

Admin
Andreas Baumann commented on 25.03.2022 09:10

Now they build in a i486 chroot on 64-bit but not on a 486 VM:

ERROR: librsvg-2.0 not found using pkg-config

weird.

Maybe librsvg-og is missing a pkg-config file, or it is an older version.

Admin
Andreas Baumann commented on 25.03.2022 09:23

So, if meson decides to have -Db_lto=auto everywhere, and if !lto in makepkg.conf is not
disabling it, then we will have a lot of issues on i486 with LTO.

LTO in i486 is disabled because the toolchain fails to build currently with LTO support
enabled.

Admin
Andreas Baumann commented on 25.03.2022 09:27

pacman -Ql librsvg-og | grep pc
librsvg-og /usr/lib/pkgconfig/librsvg-2.0.pc

so, maybe this is a similar issue like with x.264, something broke fundamenaly
when probing for certain library properties?

Admin
Andreas Baumann commented on 25.03.2022 09:42

/usr/bin/ld: warning: libcroco-0.6.so.3, needed by /usr/lib/gcc/i486-pc-linux-gnu/11
.2.0/../../../librsvg-2.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: /usr/lib/gcc/i486-pc-linux-gnu/11.2.0/../../../librsvg-2.so: undefined
reference to `cr_parser_set_sac_handler'
/usr/bin/ld: /usr/lib/gcc/i486-pc-linux-gnu/11.2.0/../../../librsvg-2.so: undefined reference to `cr_selector_ref'

This is libcroco, why this is not a dependency of librsvg?

So let's rebuild librsvg-og against libcroco..

Admin
Andreas Baumann commented on 25.03.2022 09:45

Should have been a dependency long time ago, when librsvg was still the C library..

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing