[Bug 1988079] [NEW] GCC-12.1.0-2ubuntu1~22.04 (jammy) dav1d segfaults when building with -flto=auto
Ferdi
1988079 at bugs.launchpad.net
Mon Aug 29 18:19:43 UTC 2022
Public bug reported:
When building Dav1d with GCC 12.1.0 from the Ubuntu-toolchain-r ppa the
resulting binary always segfaults when the -flto=auto flag is set.
Without the -flto=auto flag the resulting binary works as intended.
When using GCC 12.1.0 with -flto=auto in other distributions (debian for
example) the resulting binary works fine.
The issue was first reported here:
https://code.videolan.org/videolan/dav1d/-/issues/402 as it was
perceived by me as an error in their code, but they could only reproduce
this on ubuntu systems and not on other distributions.
The Meson build system
Version: 0.62.2
Source dir: /home/ferdi/ffmpeg_sources/dav1d
Build dir: /home/ferdi/ffmpeg_sources/dav1d/build
Build type: native build
Project name: dav1d
Project version: 1.0.0
C compiler for the host machine: ccache cc (gcc 12.1.0 "cc (Ubuntu 12.1.0-2ubuntu1~22.04) 12.1.0")
C linker for the host machine: cc ld.bfd 2.38
Host machine cpu family: x86_64
Host machine cpu: x86_64
Fetching value of define "__ILP32__" :
Run-time dependency threads found: YES
Checking for function "clock_gettime" : YES
Library dl found: YES
Checking for function "dlsym" with dependency -ldl: YES
Library m found: YES
Check usable header "stdatomic.h" : YES
Check usable header "unistd.h" : YES
Check usable header "io.h" : NO
Check usable header "pthread_np.h" : NO
Checking for function "getopt_long" : YES
Checking for function "_aligned_malloc" : NO
Checking for function "posix_memalign" : YES
Checking for function "pthread_getaffinity_np" with dependency threads: YES
Compiler for C supports arguments -fvisibility=hidden: YES
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Werror=vla: YES
Compiler for C supports arguments -Wno-maybe-uninitialized: YES
Compiler for C supports arguments -Wno-missing-field-initializers: YES
Compiler for C supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Werror=missing-prototypes: YES
Compiler for C supports arguments -Wshorten-64-to-32: NO
Compiler for C supports arguments -fomit-frame-pointer: YES
Compiler for C supports arguments -ffast-math: YES
Compiler for C supports arguments -mpreferred-stack-boundary=6: YES
Fetching value of define "__AVX__" : 1
Program nasm found: YES (/home/ferdi/bin/nasm)
Configuring config.asm using configuration
Configuring config.h using configuration
Configuring version.h using configuration
Header <xxhash.h> has symbol "XXH3_createState" : YES
Configuring cli_config.h using configuration
Build targets in project: 10
dav1d 1.0.0
User defined options
default_library: static
libdir : /home/ferdi/ffmpeg_build/lib
prefix : /home/ferdi/ffmpeg_build
enable_tests : false
enable_tools : true
Found ninja-1.11.0 at /usr/bin/ninja
ferdi at Biodanza01:~/ffmpeg_sources/dav1d/build$ env | grep FLAGS
CXXFLAGS=-march=native -O3 -pipe -flto=auto
LDFLAGS=-fuse-ld=mold
CFLAGS=-march=native -O3 -pipe -flto=auto
ferdi at Biodanza01:~/ffmpeg_sources/dav1d/build$ ninja
[111/111] Linking target tools/dav1d
ferdi at Biodanza01:~/ffmpeg_sources/dav1d/build$ cd tools
ferdi at Biodanza01:~/ffmpeg_sources/dav1d/build/tools$ ./dav1d -i ~/Downloads/video/testvideo/test1.ivf --l 100 -o test.yuv
dav1d 1.0.0-46-gcd5e415 - by VideoLAN
Segmentation fault
** Affects: gcc-12 (Ubuntu)
Importance: Undecided
Status: New
** Summary changed:
- GCC-12.1.0-2ubuntu1~22.04 (jammy) dav1d problem when building with -flto=auto
+ GCC-12.1.0-2ubuntu1~22.04 (jammy) dav1d segfaults when building with -flto=auto
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-12 in Ubuntu.
https://bugs.launchpad.net/bugs/1988079
Title:
GCC-12.1.0-2ubuntu1~22.04 (jammy) dav1d segfaults when building with
-flto=auto
Status in gcc-12 package in Ubuntu:
New
Bug description:
When building Dav1d with GCC 12.1.0 from the Ubuntu-toolchain-r ppa
the resulting binary always segfaults when the -flto=auto flag is set.
Without the -flto=auto flag the resulting binary works as intended.
When using GCC 12.1.0 with -flto=auto in other distributions (debian
for example) the resulting binary works fine.
The issue was first reported here:
https://code.videolan.org/videolan/dav1d/-/issues/402 as it was
perceived by me as an error in their code, but they could only
reproduce this on ubuntu systems and not on other distributions.
The Meson build system
Version: 0.62.2
Source dir: /home/ferdi/ffmpeg_sources/dav1d
Build dir: /home/ferdi/ffmpeg_sources/dav1d/build
Build type: native build
Project name: dav1d
Project version: 1.0.0
C compiler for the host machine: ccache cc (gcc 12.1.0 "cc (Ubuntu 12.1.0-2ubuntu1~22.04) 12.1.0")
C linker for the host machine: cc ld.bfd 2.38
Host machine cpu family: x86_64
Host machine cpu: x86_64
Fetching value of define "__ILP32__" :
Run-time dependency threads found: YES
Checking for function "clock_gettime" : YES
Library dl found: YES
Checking for function "dlsym" with dependency -ldl: YES
Library m found: YES
Check usable header "stdatomic.h" : YES
Check usable header "unistd.h" : YES
Check usable header "io.h" : NO
Check usable header "pthread_np.h" : NO
Checking for function "getopt_long" : YES
Checking for function "_aligned_malloc" : NO
Checking for function "posix_memalign" : YES
Checking for function "pthread_getaffinity_np" with dependency threads: YES
Compiler for C supports arguments -fvisibility=hidden: YES
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Werror=vla: YES
Compiler for C supports arguments -Wno-maybe-uninitialized: YES
Compiler for C supports arguments -Wno-missing-field-initializers: YES
Compiler for C supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Werror=missing-prototypes: YES
Compiler for C supports arguments -Wshorten-64-to-32: NO
Compiler for C supports arguments -fomit-frame-pointer: YES
Compiler for C supports arguments -ffast-math: YES
Compiler for C supports arguments -mpreferred-stack-boundary=6: YES
Fetching value of define "__AVX__" : 1
Program nasm found: YES (/home/ferdi/bin/nasm)
Configuring config.asm using configuration
Configuring config.h using configuration
Configuring version.h using configuration
Header <xxhash.h> has symbol "XXH3_createState" : YES
Configuring cli_config.h using configuration
Build targets in project: 10
dav1d 1.0.0
User defined options
default_library: static
libdir : /home/ferdi/ffmpeg_build/lib
prefix : /home/ferdi/ffmpeg_build
enable_tests : false
enable_tools : true
Found ninja-1.11.0 at /usr/bin/ninja
ferdi at Biodanza01:~/ffmpeg_sources/dav1d/build$ env | grep FLAGS
CXXFLAGS=-march=native -O3 -pipe -flto=auto
LDFLAGS=-fuse-ld=mold
CFLAGS=-march=native -O3 -pipe -flto=auto
ferdi at Biodanza01:~/ffmpeg_sources/dav1d/build$ ninja
[111/111] Linking target tools/dav1d
ferdi at Biodanza01:~/ffmpeg_sources/dav1d/build$ cd tools
ferdi at Biodanza01:~/ffmpeg_sources/dav1d/build/tools$ ./dav1d -i ~/Downloads/video/testvideo/test1.ivf --l 100 -o test.yuv
dav1d 1.0.0-46-gcd5e415 - by VideoLAN
Segmentation fault
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-12/+bug/1988079/+subscriptions
More information about the foundations-bugs
mailing list