Skip to content
This repository was archived by the owner on Sep 5, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 63 additions & 45 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -160,28 +160,46 @@ PICODIR = pic-$(ARCH)
mkdir $*
@touch $@

ifneq ($(V),1)
CROSSLD = @echo "CCLD $@" && $(LD_UNSET) $(CROSS)$(CC) -Wl,--hash-style=sysv
CROSSCC = @echo "CC $@" && $(CROSS)$(CC)
CROSSAR = @echo "AR $@" && $(CROSS)ar
CROSSSTRIP = @echo "STRIP $@" && $(CROSS)strip
CROSSDIET = @echo "DIET $@" && bin-$(MYARCH)/diet $(CROSS)$(CC)
else
CROSSLD = $(LD_UNSET) $(CROSS)$(CC) -Wl,--hash-style=sysv
CROSSCC = $(CROSS)$(CC)
CROSSAR = $(CROSS)ar
CROSSSTRIP = $(CROSS)strip
CROSSDIET = bin-$(MYARCH)/diet $(CROSS)$(CC)
endif

ifneq ($(DEBUG),)
CROSSSTRIP = @true
endif

ifeq ($(CC),tcc)
$(OBJDIR)/%.o: %.S $(ARCH)/syscalls.h $(OBJDIR)/.dirstamp
$(CROSS)cpp $(INC) $< | $(CROSS)as -o $@

$(OBJDIR)/%.o: %.c $(OBJDIR)/.dirstamp
tcc -I. -Iinclude -c $< -o $@
$(COMMENT) -$(STRIP) -x -R .comment -R .note $@
$(CROSSSTRIP) -x -R .comment -R .note $@
else
$(OBJDIR)/pstart.o: start.S $(OBJDIR)/.dirstamp
$(CROSS)$(CC) $(INC) $(CFLAGS) $(XCFLAGS) -DPROFILING -c $< -o $@
$(CROSSCC) $(INC) $(CFLAGS) $(XCFLAGS) -DPROFILING -c $< -o $@

$(OBJDIR)/%.o: %.S $(ARCH)/syscalls.h $(OBJDIR)/.dirstamp
$(CROSS)$(CC) $(INC) $(CFLAGS) $(XCFLAGS) -c $< -o $@
$(CROSSCC) $(INC) $(CFLAGS) $(XCFLAGS) -c $< -o $@

$(OBJDIR)/pthread_%.o: libpthread/pthread_%.c $(OBJDIR)/.dirstamp
$(CROSS)$(CC) $(INC) $(CFLAGS) $(XCFLAGS) -c $< -o $@
$(COMMENT) -$(STRIP) -x -R .comment -R .note $@
$(CROSSCC) $(INC) $(CFLAGS) $(XCFLAGS) -c $< -o $@
$(CROSSSTRIP) -x -R .comment -R .note $@
$(OBJDIR)/stack_smash_handler2.o: XCFLAGS:=-fno-omit-frame-pointer

$(OBJDIR)/%.o: %.c $(OBJDIR)/.dirstamp
$(CROSS)$(CC) $(INC) $(CFLAGS) $(XCFLAGS) -c $< -o $@ -D__dietlibc__
$(COMMENT) -$(STRIP) -x -R .comment -R .note $@
$(CROSSCC) $(INC) $(CFLAGS) $(XCFLAGS) -c $< -o $@ -D__dietlibc__
$(CROSSSTRIP) -x -R .comment -R .note $@

$(addprefix $(OBJDIR)/,$(NO_STACK_PROTECTOR)): XCFLAGS+=-fno-stack-protector
endif
Expand All @@ -197,7 +215,7 @@ endif
CC+=-D__dietlibc__

$(OBJDIR)/crypt.o: libcrypt/crypt.c $(OBJDIR)/.dirstamp
$(CROSS)$(CC) $(INC) $(SAFER_CFLAGS) $(XCFLAGS) -c $< -o $@
$(CROSSCC) $(INC) $(SAFER_CFLAGS) $(XCFLAGS) -c $< -o $@

DIETLIBC_OBJ = $(OBJDIR)/unified.o \
$(SYSCALLOBJ) $(LIBOBJ) $(LIBSTDIOOBJ) $(LIBUGLYOBJ) \
Expand All @@ -206,65 +224,65 @@ $(OBJDIR)/__longjmp.o $(OBJDIR)/setjmp.o \
$(OBJDIR)/clone.o

$(OBJDIR)/dietlibc.a: $(DIETLIBC_OBJ) $(OBJDIR)/start.o
$(CROSS)ar cru $@ $(DIETLIBC_OBJ)
$(CROSSAR) cru $@ $(DIETLIBC_OBJ)

$(OBJDIR)/librpc.a: $(LIBRPCOBJ)
$(CROSS)ar cru $@ $(LIBRPCOBJ)
$(CROSSAR) cru $@ $(LIBRPCOBJ)

$(OBJDIR)/libcrypt.a: $(OBJDIR)/.dirstamp
touch dummy.c
$(CROSS)$(CC) -c dummy.c
$(CROSS)ar cru $@ dummy.o
$(CROSSCC) -c dummy.c
$(CROSSAR) cru $@ dummy.o
rm -f dummy.c dummy.o

dummy.o:

LIBLATIN1_OBJS=$(patsubst liblatin1/%.c,$(OBJDIR)/%.o,$(wildcard liblatin1/*.c))
$(OBJDIR)/liblatin1.a: $(LIBLATIN1_OBJS)
$(CROSS)ar cru $@ $^
$(CROSSAR) cru $@ $^

$(OBJDIR)/libgmon.a: $(LIBGMON_OBJS)
$(CROSS)ar cru $@ $^
$(CROSSAR) cru $@ $^

$(OBJDIR)/libpthread.a: $(LIBPTHREAD_OBJS) dietfeatures.h
$(CROSS)ar cru $@ $(LIBPTHREAD_OBJS)
$(CROSSAR) cru $@ $(LIBPTHREAD_OBJS)

$(OBJDIR)/libcompat.a: $(LIBCOMPATOBJ)
$(CROSS)ar cru $@ $(LIBCOMPATOBJ)
$(CROSSAR) cru $@ $(LIBCOMPATOBJ)

$(OBJDIR)/libm.a: $(LIBMATHOBJ)
$(CROSS)ar cru $@ $(LIBMATHOBJ)
$(CROSSAR) cru $@ $(LIBMATHOBJ)

LD_UNSET = env -u LD_RUN_PATH

dyn: dyn_lib

# added dynamic linker
$(OBJDIR)/libdl.a: $(LIBDLOBJ)
$(CROSS)ar cru $@ $(LIBDLOBJ)
$(CROSSAR) cru $@ $(LIBDLOBJ)

dyn_lib: $(PICODIR)/libc.so $(PICODIR)/dstart.o \
$(PICODIR)/dyn_so_start.o $(PICODIR)/dyn_start.o $(PICODIR)/dyn_stop.o \
$(PICODIR)/libpthread.so $(PICODIR)/libdl.so $(PICODIR)/libcompat.so \
$(PICODIR)/libm.so $(PICODIR)/diet-dyn $(PICODIR)/diet-dyn-i

$(PICODIR)/%.o: %.S $(ARCH)/syscalls.h $(PICODIR)/.dirstamp
$(CROSS)$(CC) $(INC) $(CFLAGS) $(XCFLAGS) -fPIC -D__DYN_LIB -c $< -o $@
$(CROSSCC) $(INC) $(CFLAGS) $(XCFLAGS) -fPIC -D__DYN_LIB -c $< -o $@

$(PICODIR)/pthread_%.o: libpthread/pthread_%.c $(PICODIR)/.dirstamp
$(CROSS)$(CC) $(INC) $(CFLAGS) $(XCFLAGS) -fPIC -D__DYN_LIB -c $< -o $@
$(COMMENT) $(STRIP) -x -R .comment -R .note $@
$(CROSSCC) $(INC) $(CFLAGS) $(XCFLAGS) -fPIC -D__DYN_LIB -c $< -o $@
$(CROSSSTRIP) -x -R .comment -R .note $@

$(PICODIR)/%.o: %.c $(PICODIR)/.dirstamp
$(CROSS)$(CC) $(INC) $(CFLAGS) $(XCFLAGS) -fPIC -D__DYN_LIB -c $< -o $@
$(COMMENT) $(STRIP) -x -R .comment -R .note $@
$(CROSSCC) $(INC) $(CFLAGS) $(XCFLAGS) -fPIC -D__DYN_LIB -c $< -o $@
$(CROSSSTRIP) -x -R .comment -R .note $@

$(PICODIR)/dstart.o: start.S $(PICODIR)/.dirstamp
$(CROSS)$(CC) $(INC) $(CFLAGS) $(XCFLAGS) -fPIC -D__DYN_LIB -c $< -o $@
$(CROSSCC) $(INC) $(CFLAGS) $(XCFLAGS) -fPIC -D__DYN_LIB -c $< -o $@

$(PICODIR)/dyn_so_start.o: dyn_start.c $(PICODIR)/.dirstamp
$(CROSS)$(CC) $(INC) $(CFLAGS) $(XCFLAGS) -fPIC -D__DYN_LIB -D__DYN_LIB_SHARED -c $< -o $@
$(COMMENT) $(STRIP) -x -R .comment -R .note $@
$(CROSSCC) $(INC) $(CFLAGS) $(XCFLAGS) -fPIC -D__DYN_LIB -D__DYN_LIB_SHARED -c $< -o $@
$(CROSSSTRIP) -x -R .comment -R .note $@

DYN_LIBC_PIC = $(LIBOBJ) $(LIBSTDIOOBJ) $(LIBUGLYOBJ) \
$(LIBCRUFTOBJ) $(LIBCRYPTOBJ) $(LIBSHELLOBJ) $(LIBREGEXOBJ)
Expand All @@ -281,13 +299,13 @@ DYN_LIBCOMPAT_OBJS = $(patsubst $(OBJDIR)/%.o,$(PICODIR)/%.o,$(LIBCOMPATOBJ))
DYN_LIBMATH_OBJS = $(patsubst $(OBJDIR)/%.o,$(PICODIR)/%.o,$(LIBMATHOBJ))

$(PICODIR)/libc.so: $(DYN_LIBC_OBJ)
$(LD_UNSET) $(CROSS)$(CC) -nostdlib -shared -o $@ $(CFLAGS) -fPIC $(DYN_LIBC_OBJ) -lgcc -Wl,-soname=libc.so
$(CROSSLD) -nostdlib -shared -o $@ $(CFLAGS) -fPIC $(DYN_LIBC_OBJ) -lgcc -Wl,-soname=libc.so

$(PICODIR)/libpthread.so: $(DYN_PTHREAD_OBJS) dietfeatures.h
$(LD_UNSET) $(CROSS)$(CC) -nostdlib -shared -o $@ $(CFLAGS) -fPIC $(DYN_PTHREAD_OBJS) -L$(PICODIR) -lc -Wl,-soname=libpthread.so
$(CROSSLD) -nostdlib -shared -o $@ $(CFLAGS) -fPIC $(DYN_PTHREAD_OBJS) -L$(PICODIR) -lc -Wl,-soname=libpthread.so

$(PICODIR)/libdl.so: libdl/_dl_main.c dietfeatures.h $(PICODIR)/.dirstamp
$(LD_UNSET) $(CROSS)$(CC) -D__OD_CLEAN_ROOM -DNODIETREF -fPIC -nostdlib -shared -Bsymbolic -Wl,-Bsymbolic \
$(CROSSLD) -D__OD_CLEAN_ROOM -DNODIETREF -fPIC -nostdlib -shared -Bsymbolic -Wl,-Bsymbolic \
-o $@ $(SAFE_CFLAGS) $(INC) libdl/_dl_main.c -Wl,-soname=libdl.so

$(OBJDIR)/pthread_create.o $(PICODIR)/pthread_create.o: dietfeatures.h
Expand All @@ -297,38 +315,38 @@ $(OBJDIR)/pthread_internal.o $(PICODIR)/pthread_internal.o: dietfeatures.h
# $(CROSS)$(CC) -nostdlib -shared -o $@ $(CFLAGS) -fPIC $(DYN_LIBDL_OBJS) -L$(PICODIR) -ldietc -Wl,-soname=libdl.so

$(PICODIR)/libcompat.so: $(DYN_LIBCOMPAT_OBJS) dietfeatures.h
$(LD_UNSET) $(CROSS)$(CC) -nostdlib -shared -o $@ $(CFLAGS) -fPIC $(DYN_LIBCOMPAT_OBJS) -L$(PICODIR) -lc -Wl,-soname=libcompat.so
$(CROSSLD) -nostdlib -shared -o $@ $(CFLAGS) -fPIC $(DYN_LIBCOMPAT_OBJS) -L$(PICODIR) -lc -Wl,-soname=libcompat.so

$(PICODIR)/libm.so: $(DYN_LIBMATH_OBJS) dietfeatures.h
$(LD_UNSET) $(CROSS)$(CC) -nostdlib -shared -o $@ $(CFLAGS) -fPIC $(DYN_LIBMATH_OBJS) -L$(PICODIR) -lc -Wl,-soname=libm.so
$(CROSSLD) -nostdlib -shared -o $@ $(CFLAGS) -fPIC $(DYN_LIBMATH_OBJS) -L$(PICODIR) -lc -Wl,-soname=libm.so


$(SYSCALLOBJ): syscalls.h

$(OBJDIR)/elftrunc: $(OBJDIR)/diet contrib/elftrunc.c
bin-$(MYARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/elftrunc.c
$(CROSSDIET) $(CFLAGS) -o $@ contrib/elftrunc.c

$(OBJDIR)/dnsd: $(OBJDIR)/diet contrib/dnsd.c
bin-$(MYARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/dnsd.c
$(CROSSDIET) $(CFLAGS) -o $@ contrib/dnsd.c

VERSION=dietlibc-$(shell head -n 1 CHANGES|sed 's/://')
CURNAME=$(notdir $(shell pwd))

$(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
$(STRIP) -R .comment -R .note $@
$(CROSSCC) -isystem include $(CFLAGS) -nostdlib -o $@ $^ -DDIETHOME=\"$(HOME)\" -DVERSION=\"$(VERSION)\" -lgcc
$(CROSSSTRIP) -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
$(STRIP) -R .comment -R .note $@
$(CROSSCC) -isystem include $(CFLAGS) -nostdlib -o $@ $^ -DDIETHOME=\"$(prefix)\" -DVERSION=\"$(VERSION)\" -DINSTALLVERSION -lgcc
$(CROSSSTRIP) -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
$(STRIP) -R .command -R .note $@
$(CROSSLD) -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
$(CROSSSTRIP) -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
$(STRIP) -R .command -R .note $@
$(CROSSLD) -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
$(CROSSSTRIP) -R .command -R .note $@

$(OBJDIR)/djb: $(OBJDIR)/compile $(OBJDIR)/load

Expand Down Expand Up @@ -358,10 +376,10 @@ $(OBJDIR)/exports: $(OBJDIR)/dietlibc.a

.PHONY: t t1
t:
$(CROSS)$(CC) -g $(CFLAGS) -fno-builtin -nostdlib -isystem include -o t t.c $(OBJDIR)/start.o $(OBJDIR)/dyn_start.o $(OBJDIR)/dietlibc.a -lgcc $(OBJDIR)/dyn_stop.o -Wl,-Map,mapfile
$(CROSSCC) -g $(CFLAGS) -fno-builtin -nostdlib -isystem include -o t t.c $(OBJDIR)/start.o $(OBJDIR)/dyn_start.o $(OBJDIR)/dietlibc.a -lgcc $(OBJDIR)/dyn_stop.o -Wl,-Map,mapfile

t1:
$(CROSS)$(CC) -g -o t1 t.c
$(CROSSCC) -g -o t1 t.c

install-bin: $(OBJDIR)/start.o $(OBJDIR)/dietlibc.a $(OBJDIR)/librpc.a $(OBJDIR)/liblatin1.a $(OBJDIR)/libcompat.a $(OBJDIR)/elftrunc $(OBJDIR)/diet-i
$(INSTALL) -d $(DESTDIR)$(ILIBDIR) $(DESTDIR)$(MAN1DIR) $(DESTDIR)$(BINDIR)
Expand Down Expand Up @@ -532,8 +550,8 @@ $(OBJDIR)/fcntl64.o: dietfeatures.h
# WANT_SSP
# This facepalm brought to you by: Ubuntu!
$(OBJDIR)/stackgap.o: dietfeatures.h
$(CROSS)$(CC) $(INC) $(CFLAGS) -c lib/stackgap.c -o $@ -D__dietlibc__ -fno-stack-protector
$(COMMENT) -$(CROSS)strip -x -R .comment -R .note $@
$(CROSSCC) $(INC) $(CFLAGS) -c lib/stackgap.c -o $@ -D__dietlibc__ -fno-stack-protector
$(CROSSSTRIP) -x -R .comment -R .note $@

# WANT_MALLOC_ZERO
$(OBJDIR)/strndup.o: dietfeatures.h
Expand Down
2 changes: 1 addition & 1 deletion include/elf.h
Original file line number Diff line number Diff line change
Expand Up @@ -692,9 +692,9 @@ typedef struct
If any adjustment is made to the ELF object after it has been
built these entries will need to be adjusted. */
#define DT_ADDRRNGLO 0x6ffffe00
#define DT_GNU_HASH 0x6ffffe05
#define DT_TLSDESC_PLT 0x6ffffe06
#define DT_TLSDESC_GOT 0x6ffffe07
#define DT_GNU_HASH 0x6ffffef5
#define DT_GNU_CONFLICT 0x6ffffef8 /* Start of conflict section */
#define DT_GNU_LIBLIST 0x6ffffef9 /* Library list */
#define DT_CONFIG 0x6ffffefa /* Configuration information. */
Expand Down
2 changes: 1 addition & 1 deletion include/stdio.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ int printf(const char *format, ...) __THROW __attribute__((__format__(__printf__
int fprintf(FILE *stream, const char *format, ...) __THROW __attribute__((__format__(__printf__,2,3)));
int sprintf(char *str, const char *format, ...) __THROW __attribute__((__format__(__printf__,2,3)));
int snprintf(char *str, size_t size, const char *format, ...) __THROW __attribute__((__format__(__printf__,3,4)));
int asprintf(char **ptr, const char* format, ...) __THROW __attribute_malloc__ __attribute__((__format__(__printf__,2,3)));
int asprintf(char **ptr, const char* format, ...) __THROW __attribute__((__format__(__printf__,2,3)));

int scanf(const char *format, ...) __THROW __attribute__((__format__(__scanf__,1,2)));
int fscanf(FILE *stream, const char *format, ...) __THROW __attribute__((__format__(__scanf__,2,3)));
Expand Down
12 changes: 6 additions & 6 deletions include/sys/socket.h
Original file line number Diff line number Diff line change
Expand Up @@ -379,12 +379,12 @@ int socket(int domain, int type, int protocol) __THROW;
int accept(int s, struct sockaddr *addr, socklen_t *addrlen) __THROW;
int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen) __THROW;
int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen) __THROW;
int recv(int s, void *buf, size_t len, int flags) __THROW;
int recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen) __THROW;
int recvmsg(int s, struct msghdr *msg, int flags) __THROW;
int send(int s, const void *msg, size_t len, int flags) __THROW;
int sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) __THROW;
int sendmsg(int s, const struct msghdr *msg, int flags) __THROW;
ssize_t recv(int s, void *buf, size_t len, int flags) __THROW;
ssize_t recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen) __THROW;
ssize_t recvmsg(int s, struct msghdr *msg, int flags) __THROW;
ssize_t send(int s, const void *msg, size_t len, int flags) __THROW;
ssize_t sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) __THROW;
ssize_t sendmsg(int s, const struct msghdr *msg, int flags) __THROW;

int getpeername(int s, struct sockaddr *name, socklen_t *namelen) __THROW;
int getsockname(int s , struct sockaddr * name , socklen_t * namelen) __THROW;
Expand Down
4 changes: 1 addition & 3 deletions lib/alloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -239,9 +239,7 @@ void* __libc_realloc(void* ptr, size_t _size) {
}
}
else { /* ptr==0 */
if (size) {
ptr=_alloc_libc_malloc(size);
}
ptr=_alloc_libc_malloc(size);
}
return ptr;
}
Expand Down
6 changes: 3 additions & 3 deletions lib/recv.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@

extern int socketcall(int callno,long* args);

int __libc_recv(int a, const void * b, size_t c, int flags);
int __libc_recv(int a, const void * b, size_t c, int flags) {
ssize_t __libc_recv(int a, const void * b, size_t c, int flags);
ssize_t __libc_recv(int a, const void * b, size_t c, int flags) {
long args[] = { a, (long) b, c, flags };
return socketcall(SYS_RECV, args);
}

int recv(int a, const void * b, size_t c, int flags)
ssize_t recv(int a, const void * b, size_t c, int flags)
__attribute__ ((weak, alias("__libc_recv")));

#endif
6 changes: 3 additions & 3 deletions lib/recvfrom.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@

extern int socketcall(int callno,long* args);

int __libc_recvfrom(int a, const void * b, size_t c, int flags, void *to, void *tolen);
int __libc_recvfrom(int a, const void * b, size_t c, int flags, void *to, void *tolen) {
ssize_t __libc_recvfrom(int a, const void * b, size_t c, int flags, void *to, void *tolen);
ssize_t __libc_recvfrom(int a, const void * b, size_t c, int flags, void *to, void *tolen) {
long args[] = { a, (long) b, c, flags, (long) to, (long) tolen };
return socketcall(SYS_RECVFROM, args);
}

int recvfrom(int a, const void * b, size_t c, int flags, void *to, void *tolen)
ssize_t recvfrom(int a, const void * b, size_t c, int flags, void *to, void *tolen)
__attribute__ ((weak,alias("__libc_recvfrom"))) ;

#endif
6 changes: 3 additions & 3 deletions lib/recvmsg.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@

extern int socketcall(int callno,long* args);

int __libc_recvmsg(int a, struct msghdr* msg, int flags);
int __libc_recvmsg(int a, struct msghdr* msg, int flags) {
ssize_t __libc_recvmsg(int a, struct msghdr* msg, int flags);
ssize_t __libc_recvmsg(int a, struct msghdr* msg, int flags) {
long args[] = { a, (long) msg, flags };
return socketcall(SYS_RECVMSG, args);
}

int recvmsg(int a, struct msghdr *msg, int flags)
ssize_t recvmsg(int a, struct msghdr *msg, int flags)
__attribute__ ((weak,alias("__libc_recvmsg"))) ;

#endif
6 changes: 3 additions & 3 deletions lib/send.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@

extern int socketcall(int callno,long* args);

int __libc_send(int a, const void * b, size_t c, int flags);
int __libc_send(int a, const void * b, size_t c, int flags) {
ssize_t __libc_send(int a, const void * b, size_t c, int flags);
ssize_t __libc_send(int a, const void * b, size_t c, int flags) {
long args[] = { a, (long) b, c, flags };
return socketcall(SYS_SEND, args);
}

int send(int a, const void * b, size_t c, int flags)
ssize_t send(int a, const void * b, size_t c, int flags)
__attribute__ ((weak, alias("__libc_send")));

#endif
6 changes: 3 additions & 3 deletions lib/sendmsg.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@

extern int socketcall(int callno,long* args);

int __libc_sendmsg(int a, const struct msghdr* msg, int flags);
int __libc_sendmsg(int a, const struct msghdr* msg, int flags) {
ssize_t __libc_sendmsg(int a, const struct msghdr* msg, int flags);
ssize_t __libc_sendmsg(int a, const struct msghdr* msg, int flags) {
long args[] = { a, (long) msg, flags };
return socketcall(SYS_SENDMSG, args);
}

int sendmsg(int a, const struct msghdr *msg, int flags)
ssize_t sendmsg(int a, const struct msghdr *msg, int flags)
__attribute__ ((weak,alias("__libc_sendmsg"))) ;

#endif
6 changes: 3 additions & 3 deletions lib/sendto.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@

extern int socketcall(int callno,long* args);

int __libc_sendto(int a, const void * b, size_t c, int flags, void *to, int tolen);
int __libc_sendto(int a, const void * b, size_t c, int flags, void *to, int tolen) {
ssize_t __libc_sendto(int a, const void * b, size_t c, int flags, void *to, int tolen);
ssize_t __libc_sendto(int a, const void * b, size_t c, int flags, void *to, int tolen) {
long args[] = { a, (long) b, c, flags, (long) to, tolen };
return socketcall(SYS_SENDTO, args);
}

int sendto(int a, const void * b, size_t c, int flags, const struct sockaddr* to, socklen_t tolen)
ssize_t sendto(int a, const void * b, size_t c, int flags, const struct sockaddr* to, socklen_t tolen)
__attribute__ ((weak, alias("__libc_sendto")));

#endif
Loading