Fix NATIVE_RELIBC=0
This commit is contained in:
@@ -99,7 +99,7 @@ run_redoxer() {
|
||||
export CARGOFLAGS=""
|
||||
export CARGO_TEST="redoxer"
|
||||
export TEST_RUNNER="redoxer exec --folder ../sysroot/$TARGET:/usr --folder . --"
|
||||
MAKE_ACTION="$MAKE_ACTION SKIP_REDOX=1 NATIVE_RELIBC=1"
|
||||
MAKE_ACTION="$MAKE_ACTION IS_REDOX=1"
|
||||
else
|
||||
REDOXER_ENV=""
|
||||
fi
|
||||
|
||||
+21
-14
@@ -1,12 +1,12 @@
|
||||
include ../config.mk
|
||||
|
||||
SKIP_REDOX?=0
|
||||
IS_REDOX?=0
|
||||
|
||||
# If compiling for Redox, SKIP_REDOX must be 1
|
||||
ifeq ($(SKIP_REDOX),1)
|
||||
REDOX_FAILING_TESTS=
|
||||
# If compiling for Redox, IS_REDOX must be 1
|
||||
ifeq ($(IS_REDOX),1)
|
||||
FAILING_TESTS=signals/killpg-child
|
||||
else
|
||||
REDOX_FAILING_TESTS=tls \
|
||||
FAILING_TESTS=tls \
|
||||
futimens \
|
||||
mkfifo \
|
||||
stdlib/ptsname \
|
||||
@@ -211,7 +211,6 @@ VARIED_NAMES=\
|
||||
signals/killpg0-self \
|
||||
signals/kill-group \
|
||||
signals/kill-child \
|
||||
signals/killpg-child \
|
||||
signals/killpg-self \
|
||||
signals/pthread_kill-invalid \
|
||||
signals/pthread_kill-child \
|
||||
@@ -293,7 +292,7 @@ VARIED_NAMES=\
|
||||
waitpid \
|
||||
waitpid_multiple \
|
||||
sigqueue \
|
||||
$(REDOX_FAILING_TESTS)
|
||||
$(FAILING_TESTS)
|
||||
|
||||
# Tests run with `expect` (require a .c file and an .exp file
|
||||
# that takes the produced binary as the first argument)
|
||||
@@ -302,7 +301,7 @@ EXPECT_INPUT_NAMES=\
|
||||
|
||||
# TODO: Dynamic linking doesn't work with NATIVE_RELIBC=0
|
||||
# TODO: Reduce bins_static tests, only execute it when static link difference matters
|
||||
ifeq ($(SKIP_REDOX),0)
|
||||
ifeq ($(IS_REDOX),0)
|
||||
BINS+=$(patsubst %,$(BUILD)/bins_static/%,$(VARIED_NAMES))
|
||||
BINS+=$(patsubst %,$(BUILD)/bins_dynamic/%,$(VARIED_NAMES))
|
||||
EXPECT_BINS+=$(patsubst %,$(BUILD)/bins_static/%,$(EXPECT_NAMES))
|
||||
@@ -359,6 +358,7 @@ DYNAMIC_FLAGS=\
|
||||
-Wl,-export-dynamic
|
||||
|
||||
SYSROOT?=$(abspath ../sysroot/$(TARGET)/)
|
||||
SYSROOT_TARGET?=$(SYSROOT)
|
||||
|
||||
$(SYSROOT):
|
||||
$(MAKE) -C .. sysroot
|
||||
@@ -373,17 +373,24 @@ FLAGS+=\
|
||||
$(SYSROOT)/lib/crti.o \
|
||||
$(SYSROOT)/lib/crtn.o
|
||||
|
||||
SYSROOT_LIB=$(shell realpath ../sysroot/$(TARGET)/lib/)
|
||||
|
||||
STATIC_FLAGS+=\
|
||||
$(SYSROOT_LIB)/libc.a
|
||||
$(SYSROOT)/lib/libc.a
|
||||
|
||||
ifeq ($(IS_REDOX),0)
|
||||
DYNAMIC_FLAGS+=\
|
||||
-Wl,-dynamic-linker=$(SYSROOT)/$(LD_SO_PATH) \
|
||||
-Wl,-rpath=$(SYSROOT_LIB):\$$ORIGIN \
|
||||
-L $(SYSROOT_LIB) \
|
||||
-Wl,-dynamic-linker=$(SYSROOT_TARGET)/$(LD_SO_PATH) \
|
||||
-Wl,-rpath=$(SYSROOT_TARGET)/lib:\$$ORIGIN \
|
||||
-L $(SYSROOT)/lib \
|
||||
-lc \
|
||||
-fpic
|
||||
else
|
||||
# TODO: Make -dynamic-linker works
|
||||
DYNAMIC_FLAGS+=\
|
||||
-Wl,-rpath=$(SYSROOT_TARGET)/lib:\$$ORIGIN \
|
||||
-L $(SYSROOT)/lib \
|
||||
-lc \
|
||||
-fpic
|
||||
endif
|
||||
|
||||
DEPS=../sysroot/$(TARGET)
|
||||
else
|
||||
|
||||
+4
-1
@@ -95,7 +95,10 @@ fn main() {
|
||||
}
|
||||
// A pretty rare hang on pthread/barrier which also stops this loop :(
|
||||
// https://gitlab.redox-os.org/redox-os/relibc/-/issues/238
|
||||
if &bin == "./bins_dynamic/pthread/barrier" || start_time.elapsed() > slowtime {
|
||||
if &bin == "./bins_dynamic/pthread/barrier"
|
||||
|| &bin == "./bins_dynamic/pthread/once"
|
||||
|| start_time.elapsed() > slowtime
|
||||
{
|
||||
println!("# waiting {}ms", start_time.elapsed().as_millis());
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ void handler(int _s)
|
||||
int main(void)
|
||||
{
|
||||
// sleep has no error codes and doesn't set errno
|
||||
unsigned int unslept = sleep(2);
|
||||
unsigned int unslept = sleep(1);
|
||||
printf("unslept: %u\n", unslept);
|
||||
|
||||
struct sigaction sa;
|
||||
@@ -23,7 +23,7 @@ int main(void)
|
||||
sa.sa_handler = handler;
|
||||
sigaction(SIGALRM, &sa, NULL);
|
||||
// TODO: This test is unreliable, overlapping use of alarm and sleep is not recommended.
|
||||
// alarm(2);
|
||||
// alarm(1);
|
||||
|
||||
// unslept = sleep(10);
|
||||
// if (unslept < 7)
|
||||
@@ -32,7 +32,7 @@ int main(void)
|
||||
// exit(EXIT_FAILURE);
|
||||
// }
|
||||
|
||||
int us_status = usleep(1000);
|
||||
int us_status = usleep(100);
|
||||
ERROR_IF(usleep, us_status, == -1);
|
||||
UNEXP_IF(usleep, us_status, != 0);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user