mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
In a 64bit-clean environment, blowfish fails:
make[6]: Leaving directory
'/builddir/build/BUILD/xen-4.19.1/tools/tests/x86_emulator'
In file included from /usr/include/features.h:535,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdint.h:26,
from
/usr/lib/gcc/x86_64-xenserver-linux/12/include/stdint.h:9,
from blowfish.c:18:
/usr/include/gnu/stubs.h:7:11: fatal error: gnu/stubs-32.h: No such
file or directory
7 | # include <gnu/stubs-32.h>
| ^~~~~~~~~~~~~~~~
compilation terminated.
make[6]: *** [testcase.mk:15: blowfish.bin] Error 1
because of lack of glibc-i386-devel or equivelent. It's non-fatal, but
reduces the content in test_x86_emulator, which we do care about running.
Instead, convert all emulator testcases to being freestanding builds, resuing
the tools/firmware/include/ headers.
This in turn requires making firmware's stdint.h compatible with 64bit builds.
We now have compiler types for every standard type we use.
Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
26 lines
853 B
Makefile
26 lines
853 B
Makefile
XEN_ROOT = $(CURDIR)/../../..
|
|
CFLAGS :=
|
|
include $(XEN_ROOT)/tools/Rules.mk
|
|
|
|
$(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
|
|
|
|
CFLAGS += -ffreestanding -nostdinc -I$(XEN_ROOT)/tools/firmware/include
|
|
CFLAGS += -fno-stack-protector -g0 $($(TESTCASE)-cflags)
|
|
|
|
LDFLAGS_DIRECT += $(shell { $(LD) -v --warn-rwx-segments; } >/dev/null 2>&1 && echo --no-warn-rwx-segments)
|
|
|
|
.PHONY: all
|
|
all: $(TESTCASE).bin
|
|
|
|
%.bin: %.c
|
|
$(CC) $(filter-out -M% .%,$(CFLAGS)) -c $<
|
|
$(LD) $(LDFLAGS_DIRECT) -N -Ttext 0x100000 -o $*.tmp $*.o
|
|
$(OBJCOPY) -O binary -R .note.gnu.property $*.tmp $@
|
|
rm -f $*.tmp
|
|
|
|
%-opmask.bin: opmask.S
|
|
$(CC) $(filter-out -M% .%,$(CFLAGS)) -c $< -o $(basename $@).o
|
|
$(LD) $(LDFLAGS_DIRECT) -N -Ttext 0x100000 -o $(basename $@).tmp $(basename $@).o
|
|
$(OBJCOPY) -O binary -R .note.gnu.property $(basename $@).tmp $@
|
|
rm -f $(basename $@).tmp
|