Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.04-Bug #3632

Closed
vicuna opened this issue Sep 3, 2002 · 1 comment
Closed

3.04-Bug #3632

vicuna opened this issue Sep 3, 2002 · 1 comment
Labels

Comments

@vicuna
Copy link

vicuna commented Sep 3, 2002

Original bug ID: 1369
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)

Bug description

Hello,

two straces to finde a bug:

$ ocamlmktop unix.cma -o toplevel
$ ./toplevel
$ No bytecode file specified
$ ocamlrun ./toplevel
$ Fatal error: unknown C primitive `unix_dup'

This with Ocaml-3.04 on an older Linux (2.0.18-Kernel).


The strace-output for first call (./toplevel):

execve("./toplevel", ["./toplevel"], [/* 52 vars */]) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40006000
mprotect(0x40000000, 17824, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mprotect(0x8048000, 94725, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=3866, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
mmap(0, 3866, PROT_READ, MAP_SHARED, 3, 0) = 0x40007000
close(3)                                = 0
open("/lib/libm.so.5.0.5", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 32768, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
mmap(0x40008000, 23588, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40008000
mmap(0x4000e000, 7132, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x5000) = 0x4000e000
close(3)                                = 0
open("/lib/libdl.so.1.7.14", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 12288, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40010000
mmap(0x40010000, 4183, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40010000
mmap(0x40012000, 360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x40012000
close(3)                                = 0
mprotect(0x40010000, 4183, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
open("/lib/libncurses.so.3.0", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 249856, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000
mmap(0x40013000, 192214, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40013000
mmap(0x40042000, 38192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2e000) = 0x40042000
mmap(0x4004c000, 12844, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4004c000
close(3)                                = 0
mprotect(0x40013000, 192214, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
open("/lib/libc.so.5.2.18", O_RDONLY)   = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 708608, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40050000
mmap(0x40050000, 479678, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40050000
mmap(0x400c6000, 18776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x75000) = 0x400c6000
mmap(0x400cb000, 203456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400cb000
close(3)                                = 0
munmap(0x40007000, 3866)                = 0
mprotect(0x8048000, 94725, PROT_READ|PROT_EXEC) = 0
mprotect(0x40010000, 4183, PROT_READ|PROT_EXEC) = 0
mprotect(0x40013000, 192214, PROT_READ|PROT_EXEC) = 0
mprotect(0x40000000, 17824, PROT_READ|PROT_EXEC) = 0
personality(PER_LINUX)                  = 0
readlink("/proc/self/exe", "[0303]:2916", 1024) = 11
brk(0x80663b4)                          = 0x80663b4
brk(0x8067000)                          = 0x8067000
brk(0x8068000)                          = 0x8068000
brk(0x8069000)                          = 0x8069000
brk(0x806a000)                          = 0x806a000
brk(0x806b000)                          = 0x806b000
stat("/usr/local/bin/[0303]:2916", 0xbffff24c) = -1 ENOENT (No such file or directory)
stat("/usr/bin/[0303]:2916", 0xbffff24c) = -1 ENOENT (No such file or directory)
stat("/usr/X11R6/bin/[0303]:2916", 0xbffff24c) = -1 ENOENT (No such file or directory)
stat("/bin/[0303]:2916", 0xbffff24c)    = -1 ENOENT (No such file or directory)
stat(ptrace: umoven: I/O error
0x806afc0, 0xbffff24c)             = -1 ENOENT (No such file or directory)
stat("/usr/openwin/bin/[0303]:2916", 0xbffff24c) = -1 ENOENT (No such file or directory)
stat("/home/oliver/bin/[0303]:2916", 0xbffff24c) = -1 ENOENT (No such file or directory)
brk(0x806c000)                          = 0x806c000
stat("./[0303]:2916", 0xbffff24c)       = -1 ENOENT (No such file or directory)
stat("/usr/local/teTeX/bin/[0303]:2916", 0xbffff24c) = -1 ENOENT (No such file or directory)
stat("/usr/local/lout/bin/[0303]:2916", 0xbffff24c) = -1 ENOENT (No such file or directory)
open(ptrace: umoven: I/O error
0x806bff0, O_RDONLY)               = -1 ENOENT (No such file or directory)
write(2, "No bytecode file specified.\n", 28No bytecode file specified.
) = 28
_exit(2)                                = ?

The strace-output for second call (ocamlrun ./toplevel):

execve("/usr/local/bin/ocamlrun", ["ocamlrun", "./toplevel"], [/* 50 vars */]) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40006000
mprotect(0x40000000, 17824, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mprotect(0x8048000, 74249, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=3866, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
mmap(0, 3866, PROT_READ, MAP_SHARED, 3, 0) = 0x40007000
close(3)                                = 0
open("/lib/libm.so.5.0.5", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 32768, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
mmap(0x40008000, 23588, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40008000
mmap(0x4000e000, 7132, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x5000) = 0x4000e000
close(3)                                = 0
open("/lib/libdl.so.1.7.14", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 12288, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40010000
mmap(0x40010000, 4183, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40010000
mmap(0x40012000, 360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x40012000
close(3)                                = 0
mprotect(0x40010000, 4183, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
open("/lib/libncurses.so.3.0", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 249856, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000
mmap(0x40013000, 192214, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40013000
mmap(0x40042000, 38192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2e000) = 0x40042000
mmap(0x4004c000, 12844, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4004c000
close(3)                                = 0
mprotect(0x40013000, 192214, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
open("/lib/libc.so.5.2.18", O_RDONLY)   = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 708608, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40050000
mmap(0x40050000, 479678, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40050000
mmap(0x400c6000, 18776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x75000) = 0x400c6000
mmap(0x400cb000, 203456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400cb000
close(3)                                = 0
munmap(0x40007000, 3866)                = 0
mprotect(0x8048000, 74249, PROT_READ|PROT_EXEC) = 0
mprotect(0x40010000, 4183, PROT_READ|PROT_EXEC) = 0
mprotect(0x40013000, 192214, PROT_READ|PROT_EXEC) = 0
mprotect(0x40000000, 17824, PROT_READ|PROT_EXEC) = 0
personality(PER_LINUX)                  = 0
readlink("/proc/self/exe", "[0302]:40341", 1024) = 12
brk(0x8060a14)                          = 0x8060a14
brk(0x8061000)                          = 0x8061000
brk(0x8062000)                          = 0x8062000
brk(0x8063000)                          = 0x8063000
brk(0x8064000)                          = 0x8064000
brk(0x8065000)                          = 0x8065000
stat("/usr/local/bin/[0302]:40341", 0xbffff2b0) = -1 ENOENT (No such file or directory)
stat("/usr/bin/[0302]:40341", 0xbffff2b0) = -1 ENOENT (No such file or directory)
stat("/usr/X11R6/bin/[0302]:40341", 0xbffff2b0) = -1 ENOENT (No such file or directory)
stat("/bin/[0302]:40341", 0xbffff2b0)   = -1 ENOENT (No such file or directory)
stat(ptrace: umoven: I/O error
0x8064fc0, 0xbffff2b0)             = -1 ENOENT (No such file or directory)
stat("/usr/openwin/bin/[0302]:40341", 0xbffff2b0) = -1 ENOENT (No such file or directory)
stat("/home/oliver/bin/[0302]:40341", 0xbffff2b0) = -1 ENOENT (No such file or directory)
brk(0x8066000)                          = 0x8066000
stat("./[0302]:40341", 0xbffff2b0)      = -1 ENOENT (No such file or directory)
stat("/usr/local/teTeX/bin/[0302]:40341", 0xbffff2b0) = -1 ENOENT (No such file or directory)
stat("/usr/local/lout/bin/[0302]:40341", 0xbffff2b0) = -1 ENOENT (No such file or directory)
open(ptrace: umoven: I/O error
0x8065ff0, O_RDONLY)               = -1 ENOENT (No such file or directory)
open("./toplevel", O_RDONLY)            = 3
lseek(3, -16, SEEK_END)                 = 1006536
read(3, "\0\0\0\4Caml1999X007", 16)     = 16
lseek(3, -48, SEEK_END)                 = 1006504
read(3, "CODE\0\vW\240PRIM\0\0\22\200DATA"..., 32) = 32
brk(0x8086000)                          = 0x8086000
brk(0x808b000)                          = 0x808b000
brk(0x80cb000)                          = 0x80cb000
brk(0x80cd000)                          = 0x80cd000
brk(0x80d1000)                          = 0x80d1000
lseek(3, -858008, SEEK_END)             = 148544
brk(0x8187000)                          = 0x8187000
read(3, "T\0\0\0\370\2\0\0)\0\0\0*\0\0\0\1"..., 743328) = 743328
lseek(3, -114680, SEEK_END)             = 891872
brk(0x8189000)                          = 0x8189000
read(3, "alloc_dummy\0update_dummy\0array"..., 4736) = 4736
stat("/usr/local/lib/ocaml/ld.conf", {st_mode=S_IFREG|0644, st_size=49, ...}) = 0
open("/usr/local/lib/ocaml/ld.conf", O_RDONLY) = 4
read(4, "/usr/local/lib/ocaml\n/usr/local"..., 49) = 49
close(4)                                = 0
brk(0x818a000)                          = 0x818a000
write(2, "Fatal error: unknown C primitive"..., 44Fatal error: unknown C primitive `unix_dup'
) = 44
_exit(2)                                = ?

Ciao,
Oliver Bandel

P.S.: I hope I didn't used the (inofficial) PowerMac-Patch for installation
on the x86-er ;-)

@vicuna
Copy link
Author

vicuna commented Sep 20, 2002

Comment author: administrator

Fixed 2002-09-03 by XL

@vicuna vicuna closed this as completed Sep 20, 2002
@vicuna vicuna added the bug label Mar 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant