Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005887OCamlOCaml runtime systempublic2013-01-12 20:042015-06-03 17:16
Reportervouillon 
Assigned Togasche 
PriorityhighSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version4.00.1 
Target Version4.02.2+dev / +rc1Fixed in Version4.02.2+dev / +rc1 
Summary0005887: Name clash with memory.h header file with the Android NDK
DescriptionIn the Android NDK, the stdlib.h header file includes memory.h.
When compiling the native runtime and the libraries in otherlibs, it's the OCaml memory.h file that gets included. The compilation then breaks when misc.h is included, as it includes stdlib.h before providing definitions need by memory.h.

A work-around is to temporarily define CAML_MEMORY_H before including stdlib.h
(see patch) in misc.h. As the memory.h system header file is empty, this is safe to do.

A better fix, which would also fix the name clash on io.h under Windows (0004175),
would be to move OCaml header files into a subdirectory "caml" of directory "byterun". I could implement that if there is some interest.
Tagspatch
Attached Filestxt file icon memory.txt [^] (355 bytes) 2013-01-12 20:04 [Show Content]
? file icon fix_includes.sh [^] (4,024 bytes) 2013-01-14 11:13
gz file icon 0001-Move-byterun-.h-to-byterun-caml.patch.gz [^] (97,168 bytes) 2013-02-23 21:15
patch file icon 0001-rename.patch [^] (314,593 bytes) 2014-12-21 14:02
patch file icon 0002-fix.patch [^] (139,370 bytes) 2014-12-21 14:02 [Show Content]
patch file icon 0003-depend.patch [^] (268,887 bytes) 2014-12-21 14:02
patch file icon fixtests.patch [^] (3,301 bytes) 2014-12-21 18:55 [Show Content]
patch file icon nameclash-4.02.patch [^] (749,803 bytes) 2015-02-15 20:33

- Relationships
has duplicate 0004175resolvedgasche runtime header file io.h conflicts with a system header file 
related to 0006266closeddoligez Cross compilation for iOs, Android etc 

-  Notes
(0008748)
vouillon (reporter)
2013-01-14 11:31

I have uploaded a tentative script to move most include files in byterun to byterun/caml. The file instruct.h and the generated files jumptbl.h, opnames.h, and version.h are left in byterun. They could be moved as well but several makefiles have to be patched for that.

"make world" and "make opt" works, but I see now that myocamlbuild.ml and some files in the build directory need to be updated as well. Also, the .depend.nt files are not updated.
(0008892)
Camarade_Tux (reporter)
2013-02-23 21:22

I've uploaded 0001-Move-byterun-.h-to-byterun-caml.patch.gz .

I've used your script to create it and also moved {instruct,jumptbl,opnames,version}.h and updated myocamlbuild.ml.

Build using world.opt works. I haven't touched the .depend.nt files.

The patch is huge (8000 lines added and removed). Half of that is because of the .depend files. Another half is the .h files themselves (since being moved counts as additions and deletions) and the renaming in the #include directives of the .c files.

My git commit message (which is in the patch file too) is as follows:

    Move byterun/*.h to byterun/caml/.
    
    There are name clashes between ocaml headers and system headers (android
    and mingw at least). Names such as "io.h" or "memory.h" are too common.
    
    Moving these files means that they won't be refered to as "io.h" but
    rather "caml/io.h", therefore avoiding clashes.
    
    An alternative solution would be to name them "caml_io.h" but
    "caml/io.h" looks much nicer.
    
    As far as I can tell, this doesn't change installed files so it's fairly
    safe and packagers won't hate me.
(0008893)
meyer (developer)
2013-02-23 22:33

My only comment: if we plan to move the files around - which I think is a good idea, then we should be using svn machinery for that e.g. svn mv command, as svn is aware about files that are moved, unlike git which just track contents. But many thanks for the patches, it really helps to know what should be done.
(0008894)
meyer (developer)
2013-02-23 22:37

> "make world" and "make opt" works, but I see now that myocamlbuild.ml and some files in the build directory need to be updated as well. Also, the .depend.nt files are not updated.

Don't need to care about myocamlbuild.ml at the moment, I don't know if anybody builds OCaml with ocamlbuild at all, and we plan to just remove these files from the tree.

As for .depend.nt, it's crucial that somebody would test it on Windows.

Thanks
(0008895)
Camarade_Tux (reporter)
2013-02-23 23:20

Well, I can't "svn mv" myself but here's the diffstat I got in git here, "=>" shows the renames:

 .depend | 14 +-
 Makefile | 10 +-
 Makefile.nt | 8 +-
 asmrun/.depend | 1743 ++++++++++++++-----------
 asmrun/backtrace.c | 10 +-
 asmrun/fail.c | 18 +-
 asmrun/natdynlink.c | 16 +-
 asmrun/roots.c | 16 +-
 asmrun/signals_asm.c | 10 +-
 asmrun/startup.c | 32 +-
 byterun/.depend | 1070 +++++++++------
 byterun/.ignore | 6 +-
 byterun/Makefile | 2 +-
 byterun/Makefile.common | 24 +-
 byterun/alloc.c | 12 +-
 byterun/array.c | 10 +-
 byterun/backtrace.c | 26 +-
 byterun/callback.c | 16 +-
 byterun/{ => caml}/alloc.h | 0
 byterun/{ => caml}/backtrace.h | 0
 byterun/{ => caml}/callback.h | 0
 byterun/{ => caml}/compact.h | 0
 byterun/{ => caml}/compare.h | 0
 byterun/{ => caml}/compatibility.h | 0
 byterun/{ => caml}/config.h | 8 +-
 byterun/{ => caml}/custom.h | 0
 byterun/{ => caml}/debugger.h | 0
 byterun/{ => caml}/dynlink.h | 0
 byterun/{ => caml}/exec.h | 0
 byterun/{ => caml}/fail.h | 0
 byterun/{ => caml}/finalise.h | 0
 byterun/{ => caml}/fix_code.h | 0
 byterun/{ => caml}/freelist.h | 0
 byterun/{ => caml}/gc.h | 0
 byterun/{ => caml}/gc_ctrl.h | 0
 byterun/{ => caml}/globroots.h | 0
 byterun/{ => caml}/hash.h | 0
 byterun/{ => caml}/instrtrace.h | 0
 byterun/{ => caml}/instruct.h | 0
 byterun/{ => caml}/int64_emul.h | 0
 byterun/{ => caml}/int64_format.h | 0
 byterun/{ => caml}/int64_native.h | 0
 byterun/{ => caml}/interp.h | 0
 byterun/{ => caml}/intext.h | 0
 byterun/{ => caml}/io.h | 0
 byterun/{ => caml}/major_gc.h | 0
 byterun/{ => caml}/md5.h | 0
 byterun/{ => caml}/memory.h | 0
 byterun/{ => caml}/minor_gc.h | 0
 byterun/{ => caml}/misc.h | 0
 byterun/{ => caml}/mlvalues.h | 0
 byterun/{ => caml}/osdeps.h | 0
 byterun/{ => caml}/prims.h | 0
 byterun/{ => caml}/printexc.h | 0
 byterun/{ => caml}/reverse.h | 0
 byterun/{ => caml}/roots.h | 0
 byterun/{ => caml}/signals.h | 0
 byterun/{ => caml}/signals_machdep.h | 0
 byterun/{ => caml}/stacks.h | 0
 byterun/{ => caml}/startup.h | 0
 byterun/{ => caml}/sys.h | 0
 byterun/{ => caml}/ui.h | 0
 byterun/{ => caml}/weak.h | 0
 byterun/compact.c | 20 +-
 byterun/compare.c | 10 +-
 byterun/custom.c | 10 +-
 byterun/debugger.c | 26 +-
 byterun/dynlink.c | 18 +-
 byterun/extern.c | 24 +-
 byterun/fail.c | 20 +-
 byterun/finalise.c | 10 +-
 byterun/fix_code.c | 20 +-
 byterun/floats.c | 16 +-
 byterun/freelist.c | 16 +-
 byterun/gc_ctrl.c | 24 +-
 byterun/globroots.c | 10 +-
 byterun/hash.c | 16 +-
 byterun/instrtrace.c | 12 +-
 byterun/intern.c | 26 +-
 byterun/interp.c | 34 +-
 byterun/ints.c | 20 +-
 byterun/io.c | 20 +-
 byterun/lexing.c | 6 +-
 byterun/main.c | 6 +-
 byterun/major_gc.c | 26 +-
 byterun/md5.c | 14 +-
 byterun/memory.c | 22 +-
 byterun/meta.c | 26 +-
 byterun/minor_gc.c | 26 +-
 byterun/misc.c | 6 +-
 byterun/obj.c | 20 +-
 byterun/parsing.c | 8 +-
 byterun/printexc.c | 14 +-
 byterun/roots.c | 18 +-
 byterun/signals.c | 22 +-
 byterun/signals_byt.c | 10 +-
 byterun/stacks.c | 10 +-
 byterun/startup.c | 58 +-
 byterun/str.c | 12 +-
 byterun/sys.c | 20 +-
 byterun/terminfo.c | 10 +-
 byterun/unix.c | 8 +-
 byterun/weak.c | 10 +-
 byterun/win32.c | 14 +-
 debugger/.depend | 12 +-
 lex/.depend | 8 +-
 myocamlbuild.ml | 8 +-
 ocamldoc/.depend | 12 +-
 otherlibs/bigarray/.depend | 41 +-
 otherlibs/bigarray/bigarray.h | 6 +-
 otherlibs/bigarray/bigarray_stubs.c | 18 +-
 otherlibs/bigarray/mmap_unix.c | 12 +-
 otherlibs/bigarray/mmap_win32.c | 10 +-
 otherlibs/graph/.depend | 125 +-
 otherlibs/graph/draw.c | 2 +-
 otherlibs/graph/dump_img.c | 4 +-
 otherlibs/graph/events.c | 4 +-
 otherlibs/graph/fill.c | 2 +-
 otherlibs/graph/image.c | 4 +-
 otherlibs/graph/libgraph.h | 2 +-
 otherlibs/graph/make_img.c | 2 +-
 otherlibs/graph/open.c | 8 +-
 otherlibs/graph/text.c | 2 +-
 otherlibs/labltk/browser/winmain.c | 6 +-
 otherlibs/labltk/support/cltkCaml.c | 8 +-
 otherlibs/labltk/support/cltkDMain.c | 14 +-
 otherlibs/labltk/support/cltkEval.c | 6 +-
 otherlibs/labltk/support/cltkEvent.c | 4 +-
 otherlibs/labltk/support/cltkFile.c | 4 +-
 otherlibs/labltk/support/cltkImg.c | 6 +-
 otherlibs/labltk/support/cltkMain.c | 12 +-
 otherlibs/labltk/support/cltkMisc.c | 4 +-
 otherlibs/labltk/support/cltkTimer.c | 4 +-
 otherlibs/labltk/support/cltkUtf.c | 6 +-
 otherlibs/labltk/support/cltkVar.c | 8 +-
 otherlibs/labltk/support/cltkWait.c | 6 +-
 otherlibs/num/.depend | 25 +-
 otherlibs/num/bng.c | 2 +-
 otherlibs/num/bng.h | 2 +-
 otherlibs/num/nat_stubs.c | 16 +-
 otherlibs/str/.depend | 14 +-
 otherlibs/str/strstubs.c | 8 +-
 otherlibs/systhreads/.depend | 25 +-
 otherlibs/systhreads/st_stubs.c | 28 +-
 otherlibs/threads/.depend | 47 +-
 otherlibs/threads/scheduler.c | 28 +-
 otherlibs/unix/.depend | 994 +++++++-------
 otherlibs/unix/accept.c | 10 +-
 otherlibs/unix/access.c | 4 +-
 otherlibs/unix/addrofstr.c | 6 +-
 otherlibs/unix/alarm.c | 2 +-
 otherlibs/unix/bind.c | 4 +-
 otherlibs/unix/chdir.c | 2 +-
 otherlibs/unix/chmod.c | 2 +-
 otherlibs/unix/chown.c | 2 +-
 otherlibs/unix/chroot.c | 2 +-
 otherlibs/unix/close.c | 2 +-
 otherlibs/unix/closedir.c | 2 +-
 otherlibs/unix/connect.c | 6 +-
 otherlibs/unix/cst2constr.c | 4 +-
 otherlibs/unix/cstringv.c | 4 +-
 otherlibs/unix/dup.c | 2 +-
 otherlibs/unix/dup2.c | 2 +-
 otherlibs/unix/envir.c | 4 +-
 otherlibs/unix/errmsg.c | 4 +-
 otherlibs/unix/execv.c | 4 +-
 otherlibs/unix/execve.c | 4 +-
 otherlibs/unix/execvp.c | 4 +-
 otherlibs/unix/exit.c | 2 +-
 otherlibs/unix/fchmod.c | 4 +-
 otherlibs/unix/fchown.c | 4 +-
 otherlibs/unix/fcntl.c | 4 +-
 otherlibs/unix/fork.c | 4 +-
 otherlibs/unix/ftruncate.c | 6 +-
 otherlibs/unix/getaddrinfo.c | 10 +-
 otherlibs/unix/getcwd.c | 6 +-
 otherlibs/unix/getegid.c | 2 +-
 otherlibs/unix/geteuid.c | 2 +-
 otherlibs/unix/getgid.c | 2 +-
 otherlibs/unix/getgr.c | 8 +-
 otherlibs/unix/getgroups.c | 6 +-
 otherlibs/unix/gethost.c | 10 +-
 otherlibs/unix/gethostname.c | 6 +-
 otherlibs/unix/getlogin.c | 4 +-
 otherlibs/unix/getnameinfo.c | 10 +-
 otherlibs/unix/getpeername.c | 4 +-
 otherlibs/unix/getpid.c | 2 +-
 otherlibs/unix/getppid.c | 2 +-
 otherlibs/unix/getproto.c | 8 +-
 otherlibs/unix/getpw.c | 8 +-
 otherlibs/unix/getserv.c | 8 +-
 otherlibs/unix/getsockname.c | 4 +-
 otherlibs/unix/gettimeofday.c | 6 +-
 otherlibs/unix/getuid.c | 2 +-
 otherlibs/unix/gmtime.c | 8 +-
 otherlibs/unix/initgroups.c | 6 +-
 otherlibs/unix/isatty.c | 2 +-
 otherlibs/unix/itimer.c | 8 +-
 otherlibs/unix/kill.c | 6 +-
 otherlibs/unix/link.c | 2 +-
 otherlibs/unix/listen.c | 4 +-
 otherlibs/unix/lockf.c | 6 +-
 otherlibs/unix/lseek.c | 8 +-
 otherlibs/unix/mkdir.c | 2 +-
 otherlibs/unix/mkfifo.c | 4 +-
 otherlibs/unix/nice.c | 2 +-
 otherlibs/unix/open.c | 8 +-
 otherlibs/unix/opendir.c | 4 +-
 otherlibs/unix/pipe.c | 4 +-
 otherlibs/unix/putenv.c | 6 +-
 otherlibs/unix/read.c | 6 +-
 otherlibs/unix/readdir.c | 6 +-
 otherlibs/unix/readlink.c | 6 +-
 otherlibs/unix/rename.c | 2 +-
 otherlibs/unix/rewinddir.c | 4 +-
 otherlibs/unix/rmdir.c | 2 +-
 otherlibs/unix/select.c | 10 +-
 otherlibs/unix/sendrecv.c | 10 +-
 otherlibs/unix/setgid.c | 2 +-
 otherlibs/unix/setgroups.c | 8 +-
 otherlibs/unix/setsid.c | 4 +-
 otherlibs/unix/setuid.c | 2 +-
 otherlibs/unix/shutdown.c | 4 +-
 otherlibs/unix/signals.c | 10 +-
 otherlibs/unix/sleep.c | 4 +-
 otherlibs/unix/socket.c | 4 +-
 otherlibs/unix/socketaddr.c | 6 +-
 otherlibs/unix/socketaddr.h | 2 +-
 otherlibs/unix/socketpair.c | 6 +-
 otherlibs/unix/sockopt.c | 8 +-
 otherlibs/unix/stat.c | 8 +-
 otherlibs/unix/strofaddr.c | 6 +-
 otherlibs/unix/symlink.c | 4 +-
 otherlibs/unix/termios.c | 6 +-
 otherlibs/unix/time.c | 4 +-
 otherlibs/unix/times.c | 6 +-
 otherlibs/unix/truncate.c | 6 +-
 otherlibs/unix/umask.c | 2 +-
 otherlibs/unix/unixsupport.c | 10 +-
 otherlibs/unix/unlink.c | 2 +-
 otherlibs/unix/utimes.c | 4 +-
 otherlibs/unix/wait.c | 10 +-
 otherlibs/unix/write.c | 6 +-
 otherlibs/win32graph/dib.c | 4 +-
 otherlibs/win32graph/draw.c | 10 +-
 otherlibs/win32graph/events.c | 4 +-
 otherlibs/win32graph/open.c | 6 +-
 otherlibs/win32unix/accept.c | 8 +-
 otherlibs/win32unix/bind.c | 2 +-
 otherlibs/win32unix/channels.c | 8 +-
 otherlibs/win32unix/close.c | 4 +-
 otherlibs/win32unix/close_on.c | 2 +-
 otherlibs/win32unix/connect.c | 4 +-
 otherlibs/win32unix/createprocess.c | 4 +-
 otherlibs/win32unix/dup.c | 2 +-
 otherlibs/win32unix/dup2.c | 2 +-
 otherlibs/win32unix/errmsg.c | 4 +-
 otherlibs/win32unix/getpeername.c | 2 +-
 otherlibs/win32unix/getpid.c | 2 +-
 otherlibs/win32unix/getsockname.c | 2 +-
 otherlibs/win32unix/gettimeofday.c | 4 +-
 otherlibs/win32unix/link.c | 4 +-
 otherlibs/win32unix/listen.c | 2 +-
 otherlibs/win32unix/lockf.c | 8 +-
 otherlibs/win32unix/lseek.c | 4 +-
 otherlibs/win32unix/mkdir.c | 2 +-
 otherlibs/win32unix/nonblock.c | 4 +-
 otherlibs/win32unix/open.c | 4 +-
 otherlibs/win32unix/pipe.c | 6 +-
 otherlibs/win32unix/read.c | 6 +-
 otherlibs/win32unix/rename.c | 2 +-
 otherlibs/win32unix/select.c | 10 +-
 otherlibs/win32unix/sendrecv.c | 8 +-
 otherlibs/win32unix/shutdown.c | 2 +-
 otherlibs/win32unix/sleep.c | 4 +-
 otherlibs/win32unix/socket.c | 2 +-
 otherlibs/win32unix/socketaddr.h | 2 +-
 otherlibs/win32unix/sockopt.c | 8 +-
 otherlibs/win32unix/startup.c | 2 +-
 otherlibs/win32unix/stat.c | 6 +-
 otherlibs/win32unix/system.c | 8 +-
 otherlibs/win32unix/times.c | 4 +-
 otherlibs/win32unix/unixsupport.c | 12 +-
 otherlibs/win32unix/windir.c | 8 +-
 otherlibs/win32unix/winwait.c | 8 +-
 otherlibs/win32unix/winworker.c | 8 +-
 otherlibs/win32unix/write.c | 6 +-
 stdlib/.depend | 392 ++++--
 stdlib/headernt.c | 4 +-
 testsuite/tests/basic-manyargs/manyargsprim.c | 2 +-
 testsuite/tests/callback/callbackprim.c | 6 +-
 testsuite/tests/gc-roots/globrootsprim.c | 6 +-
 testsuite/tests/lib-bigarray-2/bigarrfstub.c | 2 +-
 testsuite/tests/lib-marshal/intextaux.c | 4 +-
 tools/.depend | 66 +-
 tools/Makefile.shared | 4 +-
 tools/objinfo_helper.c | 4 +-
 297 files changed, 3604 insertions(+), 2898 deletions(-)
(0008903)
Camarade_Tux (reporter)
2013-02-24 13:02
edited on: 2013-02-24 13:06

I've found two issues so far:

In byterun/debugger.c:
  #ifdef _WIN32
  #include <caml/io.h>
  #endif /* _WIN32 */

In byterun/win32.c:
  #include <caml/io.h>

These should be <io.h>, not <caml/io.h>. :-)


EDIT:
And these two lines have to be corrected in stdlib/header.c:
  #include "../byterun/mlvalues.h"
  #include "../byterun/exec.h"

(0010712)
Camarade_Tux (reporter)
2013-12-14 19:29

Another issue. From tools/cleanup-header:
  /\/\* <include \.\.\/config\/m\.h> \*\// {
and
  /\/\* <include \.\.\/config\/s\.h> \*\// {

These regular expressions need to be changed to match "../../" instead of only "../".
(0012385)
whitequark (developer)
2014-10-17 06:02

What is the status of this patchset?
(0012392)
Camarade_Tux (reporter)
2014-10-18 12:05

Also, re my comment above, the following needs can be run after applying the patches:

  sed -i 's;\\\.\\\.\\/;\0\0;g' tools/cleanup-header

(you can copy-paste this directly after the application of the patches)
(0012397)
whitequark (developer)
2014-10-20 07:40

It would be very nice to have this integrated in 4.02.2, or maybe 4.03. I could assist with this if someone lists what is wrong with the current state of the patch so that I could fix it.
(0012802)
gasche (developer)
2014-12-13 23:51

I could apply the patch if you had something ready-to-apply.
(0012910)
whitequark (developer)
2014-12-21 14:04

@gasche, I have attached a set of three patches. `make world world.opt` with all otherlibs works.

The first patch is "0001-rename.patch". You should *not* apply it. Rather you should use svn mv, I believe:

    mkdir -p byterun/caml; for i in byterun/*.h; do svn mv $i byterun/caml/; done

The second patch is handwritten "0002-fix.patch" (an adaptation of adrien's patch).

The third patch is the result of:

    ./configure
    make -C byterun depend
    make coldstart
    make ocamltools
    make beforedepend
    make alldepend

Both of these can be applied.
(0012911)
whitequark (developer)
2014-12-21 14:07

By the way, if you could apply it to 4.02.2, that would be great. 4.02.2 will have excellent support for cross-compiling if this and another issue, which I will file shortly, will be fixed.
(0012917)
gasche (developer)
2014-12-21 18:17

Trying to apply the patch on the current trunk gives me a test failure (apparently some tests in testsuite/ refer to .h files directly). Could you provide the extra patch to fix theses, or merge it into 0002-fix?

The testsuite is run by the target `make tests`, or by manually doing
  cd testsuite; make all
after opt.opt or world.opt is built -- note that no installation is needed.
(0012918)
whitequark (developer)
2014-12-21 18:57

I've attached the patch that fixes all failures related to header files.
Curiously, there are also a few tests in typing-modules and typing-gadts that fail, entirely unrelated to the headers issue.
(0012919)
gasche (developer)
2014-12-21 19:02

There typing-* failures are already fixed in trunk, they were caused by your *_ascii patches :-)
(0012994)
gasche (developer)
2014-12-27 15:46

I applied the patchset in trunk; I'm waiting to see how the continuous-integration reacts (in particular on Windows builds).
(0013166)
whitequark (developer)
2015-01-23 12:46

Looks like everything is OK--this PR together http://caml.inria.fr/mantis/view.php?id=4175 [^] are resolved. (I'm not sure whether it is appropriate to mark the PRs as resolved or closed, so I will leave this to someone else.)
(0013167)
gasche (developer)
2015-01-23 13:55

I'm not decided on whether I want to propagate the change to the 4.02 branch.

Pros:
- You may get this released earlier
- It may simplify cherry-picking changes between both branches (if they refer to the moved headers)

Cons:
- I cannot anticipate the kind of issues that this change may raise, and thus I'm not sure it's fitting to inflect them to users in a minor version.
(0013246)
doligez (administrator)
2015-02-06 19:45

@gasche, could you create a patch for the 4.02 branch? I'll test it against OPAM packages.

I'd like to get it in 4.02.2 if it doesn't break anything in practice, as @whitequark is eager to have it.
(0013285)
gasche (developer)
2015-02-15 19:09
edited on: 2015-02-15 19:09

I'm sorry, but I won't have time to work on this soon. Would anyone (whitequark, Jérôme, Adrien ?) be willing to do the work of backporting the patches applied to trunk? It's not an issue if they are large diff rather than proper "mv" commands, during the testing phase at least.

I had to apply a handful of tweaks after the patches as suggested in this PR. The additional patches are the following:
- https://github.com/ocaml/ocaml/commit/c0cc334dfa75fe4c3a79150e63be66cad3561225 [^]
- https://github.com/ocaml/ocaml/commit/9072a3fbdd9b12fdc5c81e359aacc076e35a858e [^]
- https://github.com/ocaml/ocaml/commit/0fd484a582c5d3b3118aa3efbb74263bbef52fac [^]
- https://github.com/ocaml/ocaml/commit/4f69a66ac432b427b6302ab9f36f5186b5079152 [^]

(The "big" patch is:
  https://github.com/ocaml/ocaml/commit/7ca29ef3f7ada4eefae4f6c58e77c92e6587ce69 [^] )

(0013288)
whitequark (developer)
2015-02-15 20:33

I did so.
(0013289)
gasche (developer)
2015-02-15 20:52

Thanks !
(0013323)
doligez (administrator)
2015-02-20 23:03

I'll test the patch on OPAM and report here.
(0013333)
doligez (administrator)
2015-02-24 18:00

I'm not seeing any impact on the 770 OPAM packages that compile on my machine, so green light for this change for 4.02.2.
(0013668)
gasche (developer)
2015-04-12 11:05

I'm in the process of applying the change to 4.02 as well. The commits have been done. Hopefully everything goes well and we can close this issue.
(0013672)
gasche (developer)
2015-04-12 19:23

There seems to be a problem on Windows builds (at least the CI complains), but I don't have a Windows machine at hand so I can't test/debug the problem. Volunteer help warmly welcome -- otherwise it will just wait for a few extra weeks, I suppose.
(0013674)
frisch (developer)
2015-04-13 10:07

I haven't build able to reproduce the problem on a fresh checkout of 4.02 (tested with the msvc32 port). What's weird is that byterun/.depend in the repository doesn't list fail.h as a dependency for win32.o (but rather caml/fail.h as expected).
(0013823)
doligez (administrator)
2015-05-05 23:39

The patch is applied and the windows builds have fixed themselves.

@gasche, can we close this PR?
(0014017)
gasche (developer)
2015-06-03 17:16

Thomas Refis reports a potential compatiblity issue with user code accessing gc.h in
  https://github.com/ocaml/ocaml/pull/191 [^]

It looks like the problem is rather specific to code using -no-naked-pointers, which is probably not very common in the wild yet, explaining why OPAM testing found no issue.

- Issue History
Date Modified Username Field Change
2013-01-12 20:04 vouillon New Issue
2013-01-12 20:04 vouillon File Added: memory.txt
2013-01-14 11:13 vouillon File Added: fix_includes.sh
2013-01-14 11:31 vouillon Note Added: 0008748
2013-02-23 19:15 meyer Assigned To => meyer
2013-02-23 19:15 meyer Status new => assigned
2013-02-23 21:15 Camarade_Tux File Added: 0001-Move-byterun-.h-to-byterun-caml.patch.gz
2013-02-23 21:22 Camarade_Tux Note Added: 0008892
2013-02-23 22:33 meyer Note Added: 0008893
2013-02-23 22:37 meyer Note Added: 0008894
2013-02-23 23:20 Camarade_Tux Note Added: 0008895
2013-02-24 13:02 Camarade_Tux Note Added: 0008903
2013-02-24 13:06 Camarade_Tux Note Edited: 0008903 View Revisions
2013-07-02 16:54 doligez Relationship added has duplicate 0004175
2013-07-02 16:55 doligez Target Version => 4.01.0+dev
2013-07-16 11:37 doligez Target Version 4.01.0+dev => 4.02.0+dev
2013-12-14 19:29 Camarade_Tux Note Added: 0010712
2013-12-16 13:53 doligez Tag Attached: patch
2013-12-16 13:57 doligez Priority normal => high
2014-01-21 11:55 doligez Assigned To meyer =>
2014-08-18 20:21 doligez Status assigned => confirmed
2014-08-18 20:21 doligez Target Version 4.02.0+dev => 4.02.1+dev
2014-09-04 00:25 doligez Target Version 4.02.1+dev => undecided
2014-09-24 19:44 doligez Target Version undecided => 4.02.2+dev / +rc1
2014-10-17 06:02 whitequark Note Added: 0012385
2014-10-17 06:11 whitequark Relationship added related to 0006266
2014-10-18 12:05 Camarade_Tux Note Added: 0012392
2014-10-20 07:40 whitequark Note Added: 0012397
2014-12-13 23:51 gasche Note Added: 0012802
2014-12-21 14:02 whitequark File Added: 0001-rename.patch
2014-12-21 14:02 whitequark File Added: 0002-fix.patch
2014-12-21 14:02 whitequark File Added: 0003-depend.patch
2014-12-21 14:04 whitequark Note Added: 0012910
2014-12-21 14:07 whitequark Note Added: 0012911
2014-12-21 18:17 gasche Note Added: 0012917
2014-12-21 18:55 whitequark File Added: fixtests.patch
2014-12-21 18:57 whitequark Note Added: 0012918
2014-12-21 19:02 gasche Note Added: 0012919
2014-12-27 15:46 gasche Note Added: 0012994
2015-01-23 12:46 whitequark Note Added: 0013166
2015-01-23 13:55 gasche Note Added: 0013167
2015-02-06 19:45 doligez Note Added: 0013246
2015-02-06 19:46 doligez Assigned To => gasche
2015-02-06 19:46 doligez Status confirmed => assigned
2015-02-15 19:09 gasche Note Added: 0013285
2015-02-15 19:09 gasche Note Edited: 0013285 View Revisions
2015-02-15 20:33 whitequark File Added: nameclash-4.02.patch
2015-02-15 20:33 whitequark Note Added: 0013288
2015-02-15 20:52 gasche Note Added: 0013289
2015-02-20 23:03 doligez Note Added: 0013323
2015-02-24 18:00 doligez Note Added: 0013333
2015-04-12 11:05 gasche Note Added: 0013668
2015-04-12 19:23 gasche Note Added: 0013672
2015-04-13 10:07 frisch Note Added: 0013674
2015-05-05 23:39 doligez Note Added: 0013823
2015-05-06 06:54 gasche Status assigned => resolved
2015-05-06 06:54 gasche Fixed in Version => 4.02.2+dev / +rc1
2015-05-06 06:54 gasche Resolution open => fixed
2015-06-03 17:16 gasche Note Added: 0014017


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker