summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asmcomp/i386/emit.mlp4
-rw-r--r--asmrun/i386.S2
-rwxr-xr-xconfig/auto-aux/config.guess3
-rwxr-xr-xconfigure8
-rw-r--r--otherlibs/unix/getpw.c4
5 files changed, 18 insertions, 3 deletions
diff --git a/asmcomp/i386/emit.mlp b/asmcomp/i386/emit.mlp
index fe4eac8db..dc50e2a46 100644
--- a/asmcomp/i386/emit.mlp
+++ b/asmcomp/i386/emit.mlp
@@ -48,6 +48,7 @@ let symbol_prefix =
match Config.system with
"linux_elf" -> ""
| "solaris" -> ""
+ | "beos" -> ""
| _ -> "_"
let emit_symbol s =
@@ -59,6 +60,7 @@ let label_prefix =
match Config.system with
"linux_elf" -> ".L"
| "solaris" -> ".L"
+ | "beos" -> ".L"
| _ -> "L"
let emit_label lbl =
@@ -85,7 +87,7 @@ let use_ascii_dir =
let emit_align =
match Config.system with
- "linux_elf" | "solaris" ->
+ "linux_elf" | "solaris" | "beos" ->
(fun n -> ` .align {emit_int n}\n`)
| _ ->
(fun n -> ` .align {emit_int(Misc.log2 n)}\n`)
diff --git a/asmrun/i386.S b/asmrun/i386.S
index 3e2be5a03..933197604 100644
--- a/asmrun/i386.S
+++ b/asmrun/i386.S
@@ -23,7 +23,7 @@
#define CONCAT(a,b) a##b
#endif
-#if defined(SYS_linux_elf) || defined(SYS_solaris)
+#if defined(SYS_linux_elf) || defined(SYS_solaris) || defined(SYS_beos)
#define G(x) x
#define LBL(x) CONCAT(.L,x)
#define FUNCTION_ALIGN 4
diff --git a/config/auto-aux/config.guess b/config/auto-aux/config.guess
index 9346b8a2d..4a37a8d0b 100755
--- a/config/auto-aux/config.guess
+++ b/config/auto-aux/config.guess
@@ -453,6 +453,9 @@ EOF
"Power Macintosh":Rhapsody:*:*)
echo powerpc-apple-rhapsody
exit 0;;
+ BePC:BeOS:*:*)
+ echo i586-unknown-beos
+ exit 0;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
diff --git a/configure b/configure
index c9b407192..0559a9273 100755
--- a/configure
+++ b/configure
@@ -171,6 +171,10 @@ case "$bytecc,$host" in
# Almost the same as NeXTStep
bytecccompopts="-fno-defer-pop -Wall -DSHRINKED_GNUC"
mathlib="";;
+ *,*-*-beos*)
+ bytecccompopts="-fno-defer-pop -Wall"
+ # No -lm library
+ mathlib="";;
gcc,alpha-*-osf*)
bytecccompopts="-fno-defer-pop -Wall"
# -taso puts code in lower 4GB
@@ -204,7 +208,7 @@ case $? in
1) echo "The C compiler $cc is not ANSI-compliant."
echo "You need an ANSI C compiler to build Objective Caml."
exit 2;;
- *) echo "Unable to compiler the test program."
+ *) echo "Unable to compile the test program."
echo "Make sure the C compiler $cc is properly installed."
exit 2;;
esac
@@ -297,6 +301,7 @@ case "$host" in
i[3456]86-*-*bsd*) arch=i386; system=bsd;;
i[3456]86-*-nextstep*) arch=i386; system=nextstep;;
i[3456]86-*-solaris*) arch=i386; system=solaris;;
+ i[3456]86-*-beos*) arch=i386; system=beos;;
mips-*-irix6*) arch=mips; system=irix;;
hppa1.1-*-hpux*) arch=hppa; system=hpux;;
hppa1.1-*-nextstep*) arch=hppa; system=nextstep;;
@@ -642,6 +647,7 @@ case "$host" in
mips-*-ultrix*) bignum_arch=mips;;
alpha-*-osf*) bignum_arch=alpha;;
i[3456]86-*-linux) bignum_arch=x86;;
+ i[3456]86-*-beos) bignum_arch=x86;;
sparc-*-sunos*) bignum_arch=supersparc;;
sparc-*-solaris*) bignum_arch=supersparc-solaris;;
sparc-*-*bsd*) bignum_arch=sparc;;
diff --git a/otherlibs/unix/getpw.c b/otherlibs/unix/getpw.c
index b39e98573..f5766c67c 100644
--- a/otherlibs/unix/getpw.c
+++ b/otherlibs/unix/getpw.c
@@ -27,7 +27,11 @@ static value alloc_passwd_entry(struct passwd *entry)
Begin_roots5 (name, passwd, gecos, dir, shell);
name = copy_string(entry->pw_name);
passwd = copy_string(entry->pw_passwd);
+#ifndef __BEOS__
gecos = copy_string(entry->pw_gecos);
+#else
+ gecos = copy_string("");
+#endif
dir = copy_string(entry->pw_dir);
shell = copy_string(entry->pw_shell);
res = alloc_small(7, 0);