}
void __libc_free(void *ptr) __attribute__((alias("_alloc_libc_free")));
void free(void *ptr) __attribute__((weak,alias("_alloc_libc_free")));
-@@ -268,3 +249,83 @@
+@@ -268,3 +249,79 @@
}
void* realloc(void* ptr, size_t size) __attribute__((weak,alias("__libc_realloc")));
+struct alignlist *_aligned_blocks;
+
+/* Return memory to the heap. */
-+int __libc_free_aligned(void *ptr);
+int __libc_free_aligned(void *ptr) {
+ struct alignlist *l;
+ register size_t size;
+ return 0;
+}
+
-+void * memalign (size_t alignment, size_t size);
+void * memalign (size_t alignment, size_t size) {
+ void * result;
+ unsigned long int adj;
+ return result;
+}
+
-+int posix_memalign(void **memptr, size_t alignment, size_t size);
+int posix_memalign(void **memptr, size_t alignment, size_t size)
+{
+ if(alignment % sizeof(void*) != 0) return EINVAL;
+ return (*memptr != NULL) ? 0 : ENOMEM;
+}
+
-+void * valloc (size_t size);
+void * valloc (size_t size) {
-+ return memalign(PAGE_SIZE, size);
++ return memalign(__DIET_PAGE_SIZE, size);
+}
$(OBJDIR)/%.o: %.c
tcc -I. -Iinclude -c $< -o $@
-- $(COMMENT) -$(CROSS)strip -x -R .comment -R .note $@
+- -$(STRIP) -x -R .comment -R .note $@
else
$(OBJDIR)/pstart.o: start.S
- $(CROSS)$(CC) $(INC) $(CFLAGS) -DPROFILING -c $< -o $@
-@@ -171,11 +170,9 @@
+ $(CCC) $(INC) $(CFLAGS) -DPROFILING -c $< -o $@
+@@ -171,12 +170,10 @@
- $(OBJDIR)/pthread_%.o: libpthread/pthread_%.c
- $(CROSS)$(CC) $(INC) $(CFLAGS) -c $< -o $@
-- $(COMMENT) -$(CROSS)strip -x -R .comment -R .note $@
+ $(OBJDIR)/pthread_%.o: libpthread/pthread_%.c | $(OBJDIR)
+ $(CCC) $(INC) $(CFLAGS) $(EXTRACFLAGS) -c $< -o $@
+- -$(STRIP) -x -R .comment -R .note $@
+ $(OBJDIR)/stack_smash_handler2.o: EXTRACFLAGS:=-fno-omit-frame-pointer
- $(OBJDIR)/%.o: %.c
- $(CROSS)$(CC) $(INC) $(CFLAGS) -c $< -o $@ -D__dietlibc__
-- $(COMMENT) -$(CROSS)strip -x -R .comment -R .note $@
- endif
+ $(OBJDIR)/%.o: %.c | $(OBJDIR)
+ $(CCC) $(INC) $(CFLAGS) $(EXTRACFLAGS) -c $< -o $@ -D__dietlibc__
+- -$(STRIP) -x -R .comment -R .note $@
- ifeq ($(shell $(CC) -v 2>&1 | grep "gcc version"),gcc version 4.0.0)
+ $(addprefix $(OBJDIR)/,$(NO_STACK_PROTECTOR)) \
+ $(addprefix $(PICODIR)/,$(NO_STACKPROTECTOR)): EXTRACFLAGS+=-fno-stack-protector
@@ -246,18 +243,15 @@
- $(PICODIR)/pthread_%.o: libpthread/pthread_%.c
- $(CROSS)$(CC) $(INC) $(CFLAGS) -fPIC -D__DYN_LIB -c $< -o $@
-- $(COMMENT) $(CROSS)strip -x -R .comment -R .note $@
+ $(PICODIR)/pthread_%.o: libpthread/pthread_%.c | $(PICODIR)
+ $(CCC) $(INC) $(CFLAGS) $(EXTRACFLAGS) -fPIC -D__DYN_LIB -c $< -o $@
+- $(STRIP) -x -R .comment -R .note $@
- $(PICODIR)/%.o: %.c
- $(CROSS)$(CC) $(INC) $(CFLAGS) -fPIC -D__DYN_LIB -c $< -o $@
-- $(COMMENT) $(CROSS)strip -x -R .comment -R .note $@
+ $(PICODIR)/%.o: %.c | $(PICODIR)
+ $(CCC) $(INC) $(CFLAGS) $(EXTRACFLAGS) -fPIC -D__DYN_LIB -c $< -o $@
+- $(STRIP) -x -R .comment -R .note $@
- $(PICODIR)/dstart.o: start.S
- $(CROSS)$(CC) $(INC) $(CFLAGS) -fPIC -D__DYN_LIB -c $< -o $@
+ $(PICODIR)/dstart.o: start.S | $(PICODIR)
+ $(CCC) $(INC) $(CFLAGS) $(EXTRACFLAGS) -fPIC -D__DYN_LIB $(ASM_CFLAGS) -c $< -o $@
- $(PICODIR)/dyn_so_start.o: dyn_start.c
- $(CROSS)$(CC) $(INC) $(CFLAGS) -fPIC -D__DYN_LIB -D__DYN_LIB_SHARED -c $< -o $@
-- $(COMMENT) $(CROSS)strip -x -R .comment -R .note $@
+ $(PICODIR)/dyn_so_start.o: dyn_start.c | $(PICODIR)
+ $(CCC) $(INC) $(CFLAGS) $(EXTRACFLAGS) -fPIC -D__DYN_LIB -D__DYN_LIB_SHARED -c $< -o $@
+- $(STRIP) -x -R .comment -R .note $@
DYN_LIBC_PIC = $(LIBOBJ) $(LIBSTDIOOBJ) $(LIBUGLYOBJ) \
$(LIBCRUFTOBJ) $(LIBCRYPTOBJ) $(LIBSHELLOBJ) $(LIBREGEXOBJ)
@@ -306,19 +300,15 @@
$(OBJDIR)/diet: $(OBJDIR)/start.o $(OBJDIR)/dyn_start.o diet.c $(OBJDIR)/dietlibc.a $(OBJDIR)/dyn_stop.o
- $(CROSS)$(CC) -isystem include $(CFLAGS) -nostdlib -o $@ $^ -DDIETHOME=\"$(HOME)\" -DVERSION=\"$(VERSION)\" -lgcc
-- $(CROSS)strip -R .comment -R .note $@
+ $(CCC) -isystem include $(CFLAGS) -nostdlib -o $@ $^ -DDIETHOME=\"$(HOME)\" -DVERSION=\"$(VERSION)\" -lgcc
+- $(STRIP) -R .comment -R .note $@
$(OBJDIR)/diet-i: $(OBJDIR)/start.o $(OBJDIR)/dyn_start.o diet.c $(OBJDIR)/dietlibc.a $(OBJDIR)/dyn_stop.o
- $(CROSS)$(CC) -isystem include $(CFLAGS) -nostdlib -o $@ $^ -DDIETHOME=\"$(prefix)\" -DVERSION=\"$(VERSION)\" -DINSTALLVERSION -lgcc
-- $(CROSS)strip -R .comment -R .note $@
+ $(CCC) -isystem include $(CFLAGS) -nostdlib -o $@ $^ -DDIETHOME=\"$(prefix)\" -DVERSION=\"$(VERSION)\" -DINSTALLVERSION -lgcc
+- $(STRIP) -R .comment -R .note $@
$(PICODIR)/diet-dyn: $(PICODIR)/start.o $(PICODIR)/dyn_start.o diet.c
- $(LD_UNSET) $(CROSS)$(CC) -isystem include $(CFLAGS) -fPIC -nostdlib -o $@ $^ -DDIETHOME=\"$(HOME)\" -D__DYN_LIB -DVERSION=\"$(VERSION)\" -L$(PICODIR) -lc -lgcc $(PICODIR)/dyn_stop.o -Wl,-dynamic-linker=$(HOME)/$(PICODIR)/libdl.so
-- $(CROSS)strip -R .command -R .note $@
+ $(LD_UNSET) $(CCC) -isystem include $(CFLAGS) -fPIC -nostdlib -o $@ $^ -DDIETHOME=\"$(HOME)\" -D__DYN_LIB -DVERSION=\"$(VERSION)\" -L$(PICODIR) -lc -lgcc $(PICODIR)/dyn_stop.o -Wl,-dynamic-linker=$(HOME)/$(PICODIR)/libdl.so
+- $(STRIP) -R .command -R .note $@
$(PICODIR)/diet-dyn-i: $(PICODIR)/start.o $(PICODIR)/dyn_start.o diet.c
- $(LD_UNSET) $(CROSS)$(CC) -isystem include $(CFLAGS) -fPIC -nostdlib -o $@ $^ -DDIETHOME=\"$(prefix)\" -D__DYN_LIB -DVERSION=\"$(VERSION)\" -L$(PICODIR) -lc -lgcc $(PICODIR)/dyn_stop.o -Wl,-dynamic-linker=$(ILIBDIR)/libdl.so -DINSTALLVERSION
-- $(CROSS)strip -R .command -R .note $@
+ $(LD_UNSET) $(CCC) -isystem include $(CFLAGS) -fPIC -nostdlib -o $@ $^ -DDIETHOME=\"$(prefix)\" -D__DYN_LIB -DVERSION=\"$(VERSION)\" -L$(PICODIR) -lc -lgcc $(PICODIR)/dyn_stop.o -Wl,-dynamic-linker=$(ILIBDIR)/libdl.so -DINSTALLVERSION
+- $(STRIP) -R .command -R .note $@
$(OBJDIR)/djb: $(OBJDIR)/compile $(OBJDIR)/load
case $version in
- 2.9*) echo -march=i386 -Os -fomit-frame-pointer -malign-functions=1 -malign-jumps=1 -malign-loops=1 -mpreferred-stack-boundary=2 ;;
- 3.0*) echo -march=i386 -Os -fomit-frame-pointer -malign-functions=1 -malign-jumps=1 -malign-loops=1 -mpreferred-stack-boundary=2 ;;
-- [34]*) echo -Os -fomit-frame-pointer -falign-functions=1 -falign-jumps=1 -falign-loops=1 -mpreferred-stack-boundary=2;;
+- [34]*) echo -Os -fomit-frame-pointer -falign-functions=1 -falign-jumps=1 -falign-loops=1 -mpreferred-stack-boundary=4;;
- *) echo -O2 -pipe -fomit-frame-pointer ;;
+ 2.9*) echo ${OPTFLAGS} -Os -fomit-frame-pointer -malign-functions=1 -malign-jumps=1 -malign-loops=1 -mpreferred-stack-boundary=2 ;;
+ 3.0*) echo ${OPTFLAGS} -Os -fomit-frame-pointer -malign-functions=1 -malign-jumps=1 -malign-loops=1 -mpreferred-stack-boundary=2 ;;
-+ [34]*) echo ${OPTFLAGS} -Os -fomit-frame-pointer -falign-functions=1 -falign-jumps=1 -falign-loops=1 -mpreferred-stack-boundary=2;;
++ [34]*) echo ${OPTFLAGS} -Os -fomit-frame-pointer -falign-functions=1 -falign-jumps=1 -falign-loops=1 -mpreferred-stack-boundary=4;;
+ *) echo -O2 ${OPTFLAGS} -pipe -fomit-frame-pointer ;;
esac
diff -ur dietlibc-0.30.org/Makefile dietlibc-0.30/Makefile
profiling: $(OBJDIR)/libgmon.a $(OBJDIR)/pstart.o
--CFLAGS=-pipe -nostdinc
-+CFLAGS=-pipe -nostdinc $(OPTFLAGS)
+-DEFAULTCFLAGS=-pipe -nostdinc -D_REENTRANT $(EXTRACFLAGS)
++DEFAULTCFLAGS=-pipe -nostdinc -D_REENTRANT $(EXTRACFLAGS) $(OPTFLAGS)
+ CFLAGS=$(DEFAULTCFLAGS)
CROSS=
- CC=gcc
@@ -132,14 +132,6 @@
LIBMATHOBJ=$(patsubst %,$(OBJDIR)/%,$(LIBMATH))
--ifeq ($(CFLAGS),-pipe -nostdinc)
+-ifeq ($(CFLAGS),$(DEFAULTCFLAGS))
-CFLAGS+=-O -fomit-frame-pointer
-endif
-
-ifneq ($(DEBUG),)
-CFLAGS = -g
--COMMENT = :
+-STRIP = :
-endif
- CFLAGS += -W -Wall -Wextra -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -Wno-switch -Wno-unused -Wredundant-decls
+ CFLAGS += -W -Wall -Wextra -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -Wno-switch -Wno-unused -Wredundant-decls -Wshadow
PWD=$(shell pwd)