summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extra/Configs/Config.h83002
-rw-r--r--include/features.h10
-rw-r--r--libc/sysdeps/linux/common/syscalls.c8
-rw-r--r--libc/sysdeps/linux/h8300/crt0.S2
4 files changed, 14 insertions, 8 deletions
diff --git a/extra/Configs/Config.h8300 b/extra/Configs/Config.h8300
index 56d0ef3a2..2fcc55998 100644
--- a/extra/Configs/Config.h8300
+++ b/extra/Configs/Config.h8300
@@ -140,7 +140,7 @@ ARCH_CFLAGS2 = -I$(KERNEL_SOURCE)/include
#
# get this from elsewhere, maybe
#
-OPTIMIZATION = $(DEBUG_CFLAGS)
+OPTIMIZATION = $(DEBUG_CFLAGS) -mh -mint32 -fsigned-char
# This is a COFF compiler (ick), so disable all the cool stuff
HAVE_ELF = false
diff --git a/include/features.h b/include/features.h
index 4bbf1cefc..aa4c050a7 100644
--- a/include/features.h
+++ b/include/features.h
@@ -380,11 +380,17 @@ uClibc was built without large file support enabled.
asm (".section " ".gnu.warning." #symbol "\n\t.previous"); \
static const char __evoke_link_warning_##symbol[] \
__attribute__ ((section (".gnu.warning." #symbol "\n\t#"))) = msg;
-#else
+#else /* !defined HAVE_ELF */
+# if defined(__H8300H__)
+# define SYMBOL_PREFIX "_" /* H8/300 Target of add "_" to symbol prefix */
+# else
+# define SYMBOL_PREFIX
+# endif
# define strong_alias(name, aliasname) _strong_alias (name, aliasname)
# define weak_alias(name, aliasname) _strong_alias (name, aliasname)
# define _strong_alias(name, aliasname) \
- __asm__(".global " #aliasname "\n.set " #aliasname "," #name);
+ __asm__(".global " SYMBOL_PREFIX #aliasname "\n" \
+ ".set " SYMBOL_PREFIX #aliasname "," SYMBOL_PREFIX #name);
# define link_warning(symbol, msg) \
asm (".stabs \"" msg "\",30,0,0,0\n\t" \
".stabs \"" #symbol "\",1,0,0,0\n");
diff --git a/libc/sysdeps/linux/common/syscalls.c b/libc/sysdeps/linux/common/syscalls.c
index a8aed2ba1..389ce9e1d 100644
--- a/libc/sysdeps/linux/common/syscalls.c
+++ b/libc/sysdeps/linux/common/syscalls.c
@@ -1373,14 +1373,13 @@ int sigsuspend (const sigset_t *mask)
#endif
//#define __NR_pread 180
-#ifdef __NR_pread
#ifdef L___libc_pread
+#ifdef __NR_pread
#define _XOPEN_SOURCE 500
#include <unistd.h>
#define __NR___libc_pread __NR_pread
_syscall4(ssize_t, __libc_pread, int, fd, void *, buf, size_t, count, __off_t, offset);
weak_alias (__libc_pread, pread)
-#endif
#else
ssize_t pread(int fd, void *buf, size_t count, off_t offset)
{
@@ -1388,16 +1387,16 @@ ssize_t pread(int fd, void *buf, size_t count, off_t offset)
return -1;
}
#endif
+#endif
//#define __NR_pwrite 181
-#ifdef __NR_pwrite
#ifdef L___libc_pwrite
+#ifdef __NR_pwrite
#define _XOPEN_SOURCE 500
#include <unistd.h>
#define __NR___libc_pwrite __NR_pwrite
_syscall4(ssize_t, __libc_pwrite, int, fd, const void *, buf, size_t, count, __off_t, offset);
weak_alias (__libc_pwrite, pwrite)
-#endif
#else
ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset)
{
@@ -1405,6 +1404,7 @@ ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset)
return -1;
}
#endif
+#endif
//#define __NR_chown 182
#ifdef L_chown
diff --git a/libc/sysdeps/linux/h8300/crt0.S b/libc/sysdeps/linux/h8300/crt0.S
index 183cd819d..cbd40f317 100644
--- a/libc/sysdeps/linux/h8300/crt0.S
+++ b/libc/sysdeps/linux/h8300/crt0.S
@@ -58,6 +58,6 @@ empty_func:
* is linking when the main() function is in a static library (.a)
* we can be sure that main() actually gets linked in */
L_dummy_main_reference:
- .long main
+ .long _main