diff --git a/repos/libports/lib/mk/arm/libm.mk b/repos/libports/lib/mk/arm/libm.mk index bfebe9a60..b0f53ab4c 100644 --- a/repos/libports/lib/mk/arm/libm.mk +++ b/repos/libports/lib/mk/arm/libm.mk @@ -17,3 +17,7 @@ FILTER_OUT += s_cosl.c s_frexpl.c s_nextafterl.c s_nexttoward.c \ FILTER_OUT += s_fmal.c include $(REP_DIR)/lib/mk/libm.mk + +SRC_C += msun/arm/fenv.c + +vpath msun/arm/fenv.c $(LIBC_DIR)/lib diff --git a/repos/libports/lib/mk/x86_32/libm.mk b/repos/libports/lib/mk/x86_32/libm.mk new file mode 100644 index 000000000..addb33cf2 --- /dev/null +++ b/repos/libports/lib/mk/x86_32/libm.mk @@ -0,0 +1,5 @@ +include $(REP_DIR)/lib/mk/libm.mk + +SRC_C += msun/i387/fenv.c + +vpath msun/i387/fenv.c $(LIBC_DIR)/lib diff --git a/repos/libports/lib/mk/x86_64/libm.mk b/repos/libports/lib/mk/x86_64/libm.mk new file mode 100644 index 000000000..d72d0348e --- /dev/null +++ b/repos/libports/lib/mk/x86_64/libm.mk @@ -0,0 +1,5 @@ +include $(REP_DIR)/lib/mk/libm.mk + +SRC_C += msun/amd64/fenv.c + +vpath msun/amd64/fenv.c $(LIBC_DIR)/lib diff --git a/repos/libports/src/lib/libc/dummies.cc b/repos/libports/src/lib/libc/dummies.cc index e4bd7f17d..954aafd74 100644 --- a/repos/libports/src/lib/libc/dummies.cc +++ b/repos/libports/src/lib/libc/dummies.cc @@ -5,7 +5,7 @@ */ /* - * Copyright (C) 2008-2013 Genode Labs GmbH + * Copyright (C) 2008-2015 Genode Labs GmbH * * This file is part of the Genode OS framework, which is distributed * under the terms of the GNU General Public License version 2. @@ -17,131 +17,123 @@ extern "C" { - typedef long DUMMY; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -#define DUMMY(retval, name) __attribute__((weak)) \ -DUMMY name(void) { \ - PDBG( #name " called, not implemented"); \ +#include +#include +#include +#include +#include +#include + +#define DUMMY(ret_type, ret_val, name, args) __attribute__((weak)) \ +ret_type name args \ +{ \ + PDBG( #name " not implemented"); \ errno = ENOSYS; \ - return retval; \ + return ret_val; \ } -DUMMY(-1, access) -DUMMY(-1, chmod) -DUMMY(-1, chown) -DUMMY(-1, chroot) -DUMMY( 0, crypt) -DUMMY( 0, dbopen) -DUMMY(-1, dup) -DUMMY( 0, __default_hash) -DUMMY(-1, _dup2) -DUMMY(-1, dup2) -DUMMY( 0, endpwent) -DUMMY( 0, fchmod) -DUMMY(-1, fchown) -DUMMY(-1, feholdexcept) -DUMMY(-1, fegetenv) -DUMMY(-1, feraiseexcept) -DUMMY(-1, feupdateenv) -DUMMY(-1, flock) -DUMMY(-1, fork) -DUMMY(-1, _fpathconf) -DUMMY(-1, fpathconf) -DUMMY(-1, freebsd7___semctl) -DUMMY(-1, fstatat) -DUMMY(-1, getcontext) -DUMMY( 0, getdtablesize) -DUMMY( 0, getegid) -DUMMY( 0, geteuid) -DUMMY(-1, getfsstat) -DUMMY( 0, getgid) -DUMMY(-1, getgroups) -DUMMY( 0, gethostbyname) -DUMMY( 0, _getlogin) -DUMMY(-1, getnameinfo) -DUMMY(-1, getpid) -DUMMY( 0, getservbyname) -DUMMY(-1, getsid) -DUMMY(-1, getppid) -DUMMY(-1, getpgrp) -DUMMY(-1, getpriority) -DUMMY( 0, getpwent) -DUMMY( 0, getpwnam) -DUMMY( 0, getpwuid) -DUMMY( 0, getpwuid_r) -DUMMY(-1, __getpty) -DUMMY(-1, _getpty) -DUMMY(-1, getrusage) -DUMMY( 0, getuid) -DUMMY(-1, __has_sse) -DUMMY(-1, host_detect_local_cpu) -DUMMY(-1, kill) -DUMMY(-1, ksem_close) -DUMMY(-1, ksem_destroy) -DUMMY(-1, ksem_getvalue) -DUMMY(-1, ksem_open) -DUMMY(-1, ksem_post) -DUMMY(-1, ksem_timedwait) -DUMMY(-1, ksem_trywait) -DUMMY(-1, ksem_unlink) -DUMMY(-1, ksem_wait) -DUMMY(-1, link) -DUMMY(-1, madvise) -DUMMY(-1, mkfifo) -DUMMY(-1, mknod) -DUMMY(-1, mprotect) -DUMMY( 0, ___mtctxres) -DUMMY(-1, nanosleep) -DUMMY(-1, __nsdefaultsrc) -DUMMY(-1, _nsdispatch) -DUMMY(-1, _openat) -DUMMY(-1, pathconf) -DUMMY(-1, pthread_create) -DUMMY(-1, regcomp) -DUMMY(-1, regexec) -DUMMY(-1, regfree) -DUMMY(-1, rmdir) -DUMMY(-1, sbrk) -DUMMY(-1, sched_setparam) -DUMMY(-1, sched_setscheduler) -DUMMY(-1, sched_yield) -DUMMY(-1, _select) -DUMMY(-1, __semctl) -DUMMY(-1, setcontext) -DUMMY(-1, setegid) -DUMMY(-1, seteuid) -DUMMY(-1, setgid) -DUMMY(-1, setuid) -DUMMY(-1, setgroups) -DUMMY(-1, setitimer) -DUMMY(-1, setpassent) -DUMMY(-1, setpgid) -DUMMY(-1, setpriority) -DUMMY( 0, setpwent) -DUMMY(-1, setregid) -DUMMY(-1, setreuid) -DUMMY(-1, setrlimit) -DUMMY(-1, setsid) -DUMMY(-1, _sigaction) -DUMMY(-1, sigaction) -DUMMY(-1, sigblock) -DUMMY(-1, sigpause) -DUMMY(-1, _sigprocmask) -DUMMY(-1, sigprocmask) -DUMMY(-1, _sigsuspend) -DUMMY(-1, sigsuspend) -DUMMY(-1, socketpair) -DUMMY(-1, stat) -DUMMY(-1, statfs) -DUMMY( 0, sync) -DUMMY(-1, __test_sse) -DUMMY(-1, truncate) -DUMMY( 0, umask) -DUMMY(-1, _umtx_op) -DUMMY( 0, utimes) -DUMMY(-1, utrace) -DUMMY(-1, vfork) -DUMMY(-1, _wait4) +DUMMY(int , -1, access, (const char *, int)) +DUMMY(int , -1, chmod, (const char *, mode_t)) +DUMMY(int , -1, chown, (const char *, uid_t, gid_t)) +DUMMY(int , -1, chroot, (const char *)) +DUMMY(char *, 0, crypt, (const char *, const char *)) +DUMMY(DB * , 0, dbopen, (const char *, int, int, DBTYPE, const void *)) +DUMMY(int , -1, dup, (int)) +DUMMY(u_int32_t, 0, __default_hash, (const void *, size_t)); +DUMMY(int , -1, dup2, (int, int)) +DUMMY(void , , endpwent, (void)) +DUMMY(int , 0, fchmod, (int, mode_t)) +DUMMY(int , -1, fchown, (int, uid_t, gid_t)) +DUMMY(int , -1, flock, (int, int)) +DUMMY(pid_t , -1, fork, (void)) +DUMMY(long , -1, _fpathconf, (int, int)) +DUMMY(long , -1, fpathconf, (int, int)) +DUMMY(int , -1, freebsd7___semctl, (void)) +DUMMY(int , -1, fstatat, (int, const char *, struct stat *, int)) +DUMMY(int , -1, getcontext, (ucontext_t *)) +DUMMY(int , 0, getdtablesize, (void)) +DUMMY(gid_t , 0, getegid, (void)) +DUMMY(uid_t , 0, geteuid, (void)) +DUMMY(int , -1, getfsstat, (struct statfs *, long, int)) +DUMMY(gid_t , 0, getgid, (void)) +DUMMY(int , -1, getgroups, (int, gid_t *)) +DUMMY(struct hostent *, 0, gethostbyname, (const char *)) +DUMMY(char *, 0, _getlogin, (void)) +DUMMY(int , -1, getnameinfo, (const sockaddr *, socklen_t, char *, size_t, char *, size_t, int)) +DUMMY(pid_t , -1, getpid, (void)) +DUMMY(struct servent *, 0, getservbyname, (const char *, const char *)) +DUMMY(int , -1, getsid, (pid_t)) +DUMMY(pid_t , -1, getppid, (void)) +DUMMY(pid_t , -1, getpgrp, (void)) +DUMMY(int , -1, getpriority, (int, int)) +DUMMY(struct passwd *, 0, getpwent, (void)) +DUMMY(struct passwd *, 0, getpwnam, (const char *)) +DUMMY(struct passwd *, 0, getpwuid, (uid_t)) +DUMMY(int , 0, getpwuid_r, (uid_t, struct passwd *, char *, size_t, struct passwd **)) +DUMMY(int , -1, getrusage, (int, rusage *)) +DUMMY(uid_t , 0, getuid, (void)) +DUMMY(int , -1, kill, (pid_t, int)) +DUMMY(int , -1, link, (const char *, const char *)) +DUMMY(int , -1, mkfifo, (const char *, mode_t)) +DUMMY(int , -1, mknod, (const char *, mode_t, dev_t)) +DUMMY(int , -1, mprotect, (const void *, size_t, int)) +DUMMY(void *, 0, ___mtctxres, (void)) +DUMMY(int , -1, nanosleep, (const timespec *, timespec *)) +DUMMY(void *, 0, __nsdefaultsrc, (void)) +DUMMY(int , -1, _nsdispatch, (void)) +DUMMY(long , -1, pathconf, (const char *, int)) +DUMMY(int , -1, pthread_create, (pthread_t *, const pthread_attr_t *, void *(*)(void *), void *)) +DUMMY(int , -1, rmdir, (const char *)) +DUMMY(void *, 0, sbrk, (intptr_t)) +DUMMY(int , -1, sched_setparam, (pid_t, const sched_param *)) +DUMMY(int , -1, sched_setscheduler, (pid_t, int, const sched_param *)) +DUMMY(int , -1, sched_yield, (void)) +DUMMY(int , -1, _select, (void)) +DUMMY(int , -1, __semctl, (void)) +DUMMY(int , -1, setcontext, (const ucontext_t *)) +DUMMY(int , -1, setegid, (uid_t)) +DUMMY(int , -1, seteuid, (uid_t)) +DUMMY(int , -1, setgid, (gid_t)) +DUMMY(int , -1, setuid, (uid_t)) +DUMMY(int , -1, setgroups, (int, const gid_t *)) +DUMMY(int , -1, setitimer, (int, const itimerval *, itimerval *)) +DUMMY(int , -1, setpassent, (int)) +DUMMY(int , -1, setpgid, (pid_t, pid_t)) +DUMMY(int , -1, setpriority, (int, int, int)) +DUMMY(void , , setpwent, (void)) +DUMMY(int , -1, setregid, (gid_t, gid_t)) +DUMMY(int , -1, setreuid, (uid_t, uid_t)) +DUMMY(int , -1, setrlimit, (int, const rlimit *)) +DUMMY(pid_t , -1, setsid, (void)) +DUMMY(int , -1, _sigaction, (int, const struct sigaction *, struct sigaction *)) +DUMMY(int , -1, sigaction, (int, const struct sigaction *, struct sigaction *)) +DUMMY(int , -1, sigblock, (int)) +DUMMY(int , -1, sigpause, (int)) +DUMMY(int , -1, _sigprocmask, (int, const sigset_t *, sigset_t *)) +DUMMY(int , -1, sigprocmask, (int, const sigset_t *, sigset_t *)) +DUMMY(int , -1, _sigsuspend, (const sigset_t *)) +DUMMY(int , -1, sigsuspend, (const sigset_t *)) +DUMMY(int , -1, socketpair, (int, int, int, int *)) +DUMMY(int , -1, stat, (const char *, struct stat *)) +DUMMY(int , -1, statfs, (const char *, struct statfs *)) +DUMMY(void , , sync, (void)) +DUMMY(int , -1, truncate, (const char *, off_t)) +DUMMY(mode_t, 0, umask, (mode_t)) +DUMMY(int , 0, utimes, (const char *, const timeval *)) +DUMMY(pid_t , -1, vfork, (void)) +DUMMY(pid_t , -1, _wait4, (pid_t, int *, int, struct rusage *)) + void ksem_init(void) { @@ -149,5 +141,17 @@ void ksem_init(void) while (1); } + +int __attribute__((weak)) madvise(void *addr, size_t length, int advice) +{ + if (advice == MADV_DONTNEED) + /* ignore hint */ + return 0; + + PDBG("called, not implemented - %p+%zx advice=%d", addr, length, advice); + errno = ENOSYS; + return -1; +} + } /* extern "C" */ diff --git a/repos/ports/ports/gcc.hash b/repos/ports/ports/gcc.hash index 21f0bc6af..f43317107 100644 --- a/repos/ports/ports/gcc.hash +++ b/repos/ports/ports/gcc.hash @@ -1 +1 @@ -f5f038bc4232d78154248b6ce85b94108ca55255 +920639d7e58d1b0a2a04f727f77b9a6f48806bfc diff --git a/repos/ports/ports/gcc.port b/repos/ports/ports/gcc.port index 183badc18..8d105ddbb 100644 --- a/repos/ports/ports/gcc.port +++ b/repos/ports/ports/gcc.port @@ -11,7 +11,8 @@ DIR(gcc) := src/noux-pkg/gcc GENODE_DIR := $(REP_DIR)/../.. PATCHES_DIR := $(GENODE_DIR)/tool/patches/gcc-$(VERSION) PATCHES := $(addprefix $(PATCHES_DIR)/,$(shell cat $(PATCHES_DIR)/series)) \ - $(REP_DIR)/src/noux-pkg/gcc/build.patch + $(REP_DIR)/src/noux-pkg/gcc/build.patch \ + $(REP_DIR)/src/noux-pkg/gcc/arm.patch PATCH_OPT := -p1 -d ${DIR(gcc)} AUTOCONF := autoconf2.64 diff --git a/repos/ports/src/noux-pkg/gcc/arm.patch b/repos/ports/src/noux-pkg/gcc/arm.patch new file mode 100644 index 000000000..729f9eff6 --- /dev/null +++ b/repos/ports/src/noux-pkg/gcc/arm.patch @@ -0,0 +1,12 @@ ++++ b/gcc/config/arm/arm.h +@@ -2193,9 +2193,7 @@ + /* -mcpu=native handling only makes sense with compiler running on + an ARM chip. */ + #if defined(__arm__) +-extern const char *host_detect_local_cpu (int argc, const char **argv); +-# define EXTRA_SPEC_FUNCTIONS \ +- { "local_cpu_detect", host_detect_local_cpu }, ++# define EXTRA_SPEC_FUNCTIONS + + # define MCPU_MTUNE_NATIVE_SPECS \ + " %{march=native:%