Skip to content

mold i686 segfault when run with clang 14.0.2 #483

Open
@satmandu

Description

@satmandu

Issue is from trying to rebuild python2 with clang 14.0.1 and mold 1.2.1 on ChromeOS

conftest.c

/* confdefs.h */
#define _GNU_SOURCE 1
#define _NETBSD_SOURCE 1
#define __BSD_VISIBLE 1
#define _BSD_TYPES 1
#define _DARWIN_C_SOURCE 1
#define _XOPEN_SOURCE 600
#define _XOPEN_SOURCE_EXTENDED 1
#define _POSIX_C_SOURCE 200112L
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}

Failed invocation from configure from config.log:

clang -Wno-unused-command-line-argument -Wno-ignored-optimization-argument -O2 -pipe -flto -ffat-lto-objects -fPIC -fuse-ld=mold -v  -flto  conftest.c
clang version 14.0.1 (https://github.com/llvm/llvm-project.git 0e27d08cdeb338766a477fba071b3df7a06ea6e2)
Target: i686-cros-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
Found candidate GCC installation: /usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11
Selected GCC installation: /usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11
Candidate multilib: .;@m32
Selected multilib: .;@m32
 "/usr/local/bin/clang-14" -cc1 -triple i686-cros-linux-gnu -emit-llvm-bc -flto=full -flto-unit -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name conftest.c -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu pentium4 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -fcoverage-compilation-dir=/usr/local/tmp -resource-dir /usr/local/lib/clang/14.0.1 -internal-isystem /usr/local/lib/clang/14.0.1/include -internal-isystem /usr/local/include -internal-isystem /usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11/../../../../i686-cros-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -Wno-unused-command-line-argument -Wno-ignored-optimization-argument -fdebug-compilation-dir=/usr/local/tmp -ferror-limit 19 -fgnuc-version=4.2.1 -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /usr/local/tmp/conftest-a7c5fe.o -x c conftest.c
clang -cc1 version 14.0.1 based upon LLVM 14.0.1 default target i686-cros-linux-gnu
ignoring nonexistent directory "/usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11/../../../../i686-cros-linux-gnu/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/clang/14.0.1/include
 /usr/local/include
 /usr/include
End of search list.
 "/usr/local/bin/ld.mold" --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o a.out /usr/local/bin/../lib/crt1.o /usr/local/bin/../lib/crti.o /usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11/crtbegin.o -L/usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11 -L/usr/local/bin/../lib -L/lib -L/usr/lib -plugin /usr/local/bin/../lib/LLVMgold.so -plugin-opt=mcpu=pentium4 -plugin-opt=O2 /usr/local/tmp/conftest-a7c5fe.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11/crtend.o /usr/local/bin/../lib/crtn.o
clang-14: error: unable to execute command: Segmentation fault (core dumped)
clang-14: error: linker command failed due to signal (use -v to see invocation)

When run without mold:

clang -Wno-unused-command-line-argument -Wno-ignored-optimization-argument -O2 -pipe -flto -ffat-lto-objects -fPIC -v  -flto  conftest.c
clang version 14.0.1 (https://github.com/llvm/llvm-project.git 0e27d08cdeb338766a477fba071b3df7a06ea6e2)
Target: i686-cros-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
Found candidate GCC installation: /usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11
Selected GCC installation: /usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11
Candidate multilib: .;@m32
Selected multilib: .;@m32
 "/usr/local/bin/clang-14" -cc1 -triple i686-cros-linux-gnu -emit-llvm-bc -flto=full -flto-unit -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name conftest.c -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu pentium4 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -fcoverage-compilation-dir=/usr/local/tmp -resource-dir /usr/local/lib/clang/14.0.1 -internal-isystem /usr/local/lib/clang/14.0.1/include -internal-isystem /usr/local/include -internal-isystem /usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11/../../../../i686-cros-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -Wno-unused-command-line-argument -Wno-ignored-optimization-argument -fdebug-compilation-dir=/usr/local/tmp -ferror-limit 19 -fgnuc-version=4.2.1 -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /usr/local/tmp/conftest-c10b20.o -x c conftest.c
clang -cc1 version 14.0.1 based upon LLVM 14.0.1 default target i686-cros-linux-gnu
ignoring nonexistent directory "/usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11/../../../../i686-cros-linux-gnu/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/clang/14.0.1/include
 /usr/local/include
 /usr/include
End of search list.
 "/usr/local/bin/ld" --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o a.out /usr/local/bin/../lib/crt1.o /usr/local/bin/../lib/crti.o /usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11/crtbegin.o -L/usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11 -L/usr/local/bin/../lib -L/lib -L/usr/lib -plugin /usr/local/bin/../lib/LLVMgold.so -plugin-opt=mcpu=pentium4 -plugin-opt=O2 /usr/local/tmp/conftest-c10b20.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/local/bin/../lib/gcc/i686-cros-linux-gnu/11/crtend.o /usr/local/bin/../lib/crtn.o

Test container can be invoked via:

#!/bin/bash
docker pull satmandu/crewbuild:alex-i686.m58
docker run --platform linux/386 --rm -v $(pwd)/pkg_cache:/usr/local/tmp/packages -v $(pwd):/output -h $(hostname)-i686 -it satmandu/crewbuild:alex-i686.m58 /usr/local/bin/setarch i686 sudo -i -u chronos /usr/local/bin/bash -i

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions