[Picolibc] meson and ninja

Larry Doolittle ldoolitt at recycle.lbl.gov
Tue Apr 28 11:30:26 PDT 2020


Despite decades of *nix experience, picolibc represents the first time I've
had to deal with meson+ninja.  This may therefore count as a noob question.

My target is riscv32-unknown-elf.  I've built toolchains for it many times.
Right now I have both gcc-8.3.0 and gcc-9.3.0 running nicely with newlib
(3.1.0 and 3.3.0, respectively), running the resulting code on picorv32.
Picolibc sounds pretty cool, and I thought I should give it a spin.

I don't see any hints in README.md about what versions of meson are valid.
Trying with stock Debian Buster's meson-0.49.2 crashes and burns for me.
Logs provided on request.  Switching to 0.54.1 from PIP, I get a boatload
of warnings like
  Target "rv64imafdc_lp64d/posix-io" has a path separator in its name.
but can at least progress to the ninja step.

Ninja-1.8.2 then crashes building object [8255/8576]
  Linking target newlib/libm/test/rv64imac_lp64/math_test
I have no interest in rv64imac.  Presumably meson picked up on this
build variant because my riscv32-unknown-elf-gcc --print-multi-lib emits
.;
rv32i/ilp32;@march=rv32i at mabi=ilp32
rv32im/ilp32;@march=rv32im at mabi=ilp32
rv32iac/ilp32;@march=rv32iac at mabi=ilp32
rv32imac/ilp32;@march=rv32imac at mabi=ilp32
rv32imafc/ilp32f;@march=rv32imafc at mabi=ilp32f
rv64imac/lp64;@march=rv64imac at mabi=lp64
rv64imafdc/lp64d;@march=rv64imafdc at mabi=lp64d

Is there a supported way to force meson to use a non-automatic 
architecture list?  All I'm really intersted in is
rv32im/ilp32;@march=rv32im at mabi=ilp32
rv32imc/ilp32;@march=rv32imc at mabi=ilp32

  - Larry


More information about the Picolibc mailing list