This patch makes GCC to wrap the host's stdint.h header when operating
in the default hosted/non-freestanding mode. It is thus up to the
user to provide a suitable standard header unless -ffreestanding gets
explicitly passed in the compilation line.
A few tests that use stdint.h are adapted to explicitly pass
-ffreestanding.
Tested in a x86_64-linux-gnu host with target bpf-unknown-none.
gcc/ChangeLog:
* config.gcc: install a wrapping stdint.h in bpf targets.
gcc/testsuite/ChangeLog:
* gcc.target/bpf/diag-funargs-2.c: Use -ffreestanding.
* gcc.target/bpf/helper-skb-ancestor-cgroup-id.c: Likewise.
* gcc.target/bpf/helper-bind.c: Likewise.
* gcc.target/bpf/diag-funargs-3.c: Likewise.
tm_file="elfos.h ${tm_file}"
tmake_file="${tmake_file} bpf/t-bpf"
use_collect2=no
- use_gcc_stdint=provide
+ use_gcc_stdint=wrap
extra_objs="btfext-out.o core-builtins.o"
target_gtfiles="$target_gtfiles \$(srcdir)/config/bpf/btfext-out.cc \$(srcdir)/config/bpf/core-builtins.cc"
;;
/* Verify proper errors are generated for functions taking too many
arguments, with aggregates and 128-bit arguments. */
/* { dg-do compile } */
-/* { dg-options "-O0" } */
+/* { dg-options "-O0 -ffreestanding" } */
#include <stdint.h>
/* Verify proper errors are generated for functions taking too many
arguments, with aggregates and 128-bit arguments. */
/* { dg-do compile } */
-/* { dg-options "-O0" } */
+/* { dg-options "-O0 -ffreestanding" } */
#include <stdint.h>
/* { dg-do compile } */
-/* { dg-options "-std=gnu99" } */
+/* { dg-options "-std=gnu99 -ffreestanding" } */
#include <stdint.h>
/* { dg-do compile } */
-/* { dg-options "-std=gnu99 -O2" } */
+/* { dg-options "-std=gnu99 -O2 -ffreestanding" } */
#include <stdint.h>