Fix Makefile spurious rebuilds

Add mem* functions to stdio
Add constant int functions
This commit is contained in:
Jeremy Soller
2018-03-27 20:14:22 -06:00
parent 6999363916
commit afdc80629f
5 changed files with 34 additions and 9 deletions
+5
View File
@@ -49,21 +49,26 @@ test: all
$(BUILD)/debug/libc.a: $(SRC)
cargo build $(CARGOFLAGS)
touch $@
$(BUILD)/debug/crt0.o: $(SRC)
cargo rustc --manifest-path src/crt0/Cargo.toml $(CARGOFLAGS) -- --emit obj=$@
touch $@
$(BUILD)/release/libc.a: $(SRC)
cargo build --release $(CARGOFLAGS)
touch $@
$(BUILD)/release/crt0.o: $(SRC)
cargo rustc --release --manifest-path src/crt0/Cargo.toml $(CARGOFLAGS) -- --emit obj=$@
touch $@
$(BUILD)/openlibm: openlibm
rm -rf $@ $@.partial
mkdir -p $(BUILD)
cp -r $< $@.partial
mv $@.partial $@
touch $@
$(BUILD)/openlibm/libopenlibm.a: $(BUILD)/openlibm
make CC=$(CC) CFLAGS=-fno-stack-protector -C $< libopenlibm.a
+9
View File
@@ -0,0 +1,9 @@
#ifndef _BITS_STDIO_H
#define _BITS_STDIO_H
int memcmp(const void *s1, const void *s2, size_t n);
void *memcpy(void *dest, const void *src, size_t n);
void *memmove(void *dest, const void *src, size_t n);
void *memset(void *s, int c, size_t n);
#endif /* _BITS_STDIO_H */
+18 -8
View File
@@ -1,38 +1,56 @@
#ifndef _STDINT_H
#define _STDINT_H
#define INT8_C(value) ((int8_t) value)
#define INT8_MIN -0x80
#define INT8_MAX 0x7F
typedef signed char int8_t;
#define UINT8_C(value) ((uint8_t) __CONCAT(value, U))
#define UINT8_MIN 0x00
#define UINT8_MAX 0xFF
typedef unsigned char uint8_t;
#define INT16_C(value) value
#define INT16_MIN -0x8000
#define INT16_MAX 0x7FFF
typedef signed short int16_t;
#define UINT16_C(value) __CONCAT(value, U)
#define UINT16_MIN 0x0000
#define UINT16_MAX 0xFFFF
typedef unsigned short uint16_t;
#define INT32_C(value) __CONCAT(value, L)
#define INT32_MIN -0x80000000
#define INT32_MAX 0x7FFFFFFF
typedef signed long int32_t;
#define UINT32_C(value) __CONCAT(value, UL)
#define UINT32_MIN 0x00000000
#define UINT32_MAX 0xFFFFFFFF
typedef unsigned long uint32_t;
#define INT64_C(value) __CONCAT(value, LL)
#define INT64_MIN -0x8000000000000000
#define INT64_MAX 0x7FFFFFFFFFFFFFFF
typedef signed long long int64_t;
#define UINT64_C(value) __CONCAT(value, ULL)
#define UINT64_MIN 0x0000000000000000
#define UINT64_MAX 0xFFFFFFFFFFFFFFFF
typedef unsigned long long uint64_t;
#define INTMAX_C(value) __CONCAT(value, LL)
#define INTMAX_MIN INT64_MIN
#define INTMAX_MAX INT64_MAX
typedef int64_t intmax_t;
#define UINTMAX_C(value) __CONCAT(value, ULL)
#define UINTMAX_MIN UINT64_MIN
#define UINTMAX_MAX UINT64_MAX
typedef uint64_t uintmax_t;
#define INTPTR_MIN INT64_MIN
#define INTPTR_MAX INT64_MAX
typedef int64_t intptr_t;
@@ -41,14 +59,6 @@ typedef int64_t intptr_t;
#define UINTPTR_MAX UINT64_MAX
typedef uint64_t uintptr_t;
#define INTMAX_MIN INT64_MIN
#define INTMAX_MAX INT64_MAX
typedef int64_t intmax_t;
#define UINTMAX_MIN UINT64_MIN
#define UINTMAX_MAX UINT64_MAX
typedef uint64_t uintmax_t;
#define SIZE_MAX UINT64_MAX
#endif /* _STDINT_H */
+1 -1
View File
@@ -1,4 +1,4 @@
sys_includes = ["sys/types.h"]
sys_includes = ["stdint.h", "sys/types.h"]
include_guard = "_SYS_MMAN_H"
language = "C"
+1
View File
@@ -1,5 +1,6 @@
sys_includes = ["stddef.h", "stdint.h"]
include_guard = "_STRING_H"
trailer = "#include <bits/string.h>"
language = "C"
[enum]