[Unison-hackers] is it normal that 'make' produces different results each time

frederik at ofb.net frederik at ofb.net
Thu Sep 27 00:54:16 EDT 2018


Hi,

I'm trying to compile Unison on Raspbian so that I can get the
protocol versions to match the recent version on my laptop.

I noticed that if I go into the src directory and run "make" then it
produces different results each time I run it, is that normal?
Eventually it seems to converge but I wonder why it takes more than
one invocation. (see transcript below) Also, is there a way to specify
the destination directory for when I install it?

Thanks,

Frederick

$ git clone https://github.com/bcpierce00/unison.git
$ cd unison/
$ make
...
$ make install
... (fails with different errors)
$ cd src/
$ make -j4
UISTYLE = text
ocamlopt: update.ml ---> update.cmx
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/update.ml
ocamlopt: copy.mli ---> copy.cmi
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/copy.mli
ocamlopt: stasher.mli ---> stasher.cmi
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/stasher.mli
ocamlopt: files.mli ---> files.cmi
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/files.mli
ocamlopt: sortri.mli ---> sortri.cmi
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/sortri.mli
ocamlopt: recon.mli ---> recon.cmi
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/recon.mli
ocamlopt: transport.mli ---> transport.cmi
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/transport.mli
ocamlopt: uicommon.mli ---> uicommon.cmi
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/uicommon.mli
Linking unison-fsmonitor
ocamlopt -verbose -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -o unison-fsmonitor   unix.cmxa lwt/lwt.cmx lwt/pqueue.cmx lwt/generic/lwt_unix_impl.cmx lwt/lwt_unix.cmx fsmonitor/linux/inotify.cmx fsmonitor/linux/lwt_inotify.cmx fsmonitor/watchercommon.cmx fsmonitor/linux/watcher.cmx fsmonitor/linux/inotify_stubs.o -cclib -lutil
+ as -o '/tmp/camlstartup3591b6.o' '/tmp/camlstartup384ed2.s'
+ gcc -Wl,-z,relro -Wl,-z,now -o 'unison-fsmonitor'   '-Llwt' '-Lubase' '-Lsystem' '-Lfsmonitor' '-Lfsmonitor/linux' '-Lfsmonitor/windows' '-Lsystem/generic' '-Llwt/generic' '-L/usr/lib/ocaml'  '/tmp/camlstartup3591b6.o' '/usr/lib/ocaml/std_exit.o' 'fsmonitor/linux/watcher.o' 'fsmonitor/watchercommon.o' 'fsmonitor/linux/lwt_inotify.o' 'fsmonitor/linux/inotify.o' 'lwt/lwt_unix.o' 'lwt/generic/lwt_unix_impl.o' 'lwt/pqueue.o' 'lwt/lwt.o' '/usr/lib/ocaml/unix.a' '/usr/lib/ocaml/stdlib.a' '-lunix' 'fsmonitor/linux/inotify_stubs.o' '-lutil' '/usr/lib/ocaml/libasmrun.a' -lm  -ldl
$ make -j4
UISTYLE = text
ocamlopt: copy.ml ---> copy.cmx
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/copy.ml
ocamlopt: sortri.ml ---> sortri.cmx
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/sortri.ml
ocamlopt: uitext.mli ---> uitext.cmi
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/uitext.mli
$ make -j4
UISTYLE = text
ocamlopt: stasher.ml ---> stasher.cmx
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/stasher.ml
ocamlopt: recon.ml ---> recon.cmx
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/recon.ml
File "/home/frederik/pkg-tmp/unison/src/recon.ml", line 665, characters 2-11:
Warning 3: deprecated: Sort.list
Use List.sort instead.
$ make -j4
UISTYLE = text
ocamlopt: files.ml ---> files.cmx
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/files.ml
File "/home/frederik/pkg-tmp/unison/src/files.ml", line 737, characters 2-11:
Warning 3: deprecated: Sort.list
Use List.sort instead.
$ make -j4
UISTYLE = text
ocamlopt: transport.ml ---> transport.cmx
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/transport.ml
ocamlopt: uicommon.ml ---> uicommon.cmx
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/uicommon.ml
File "/home/frederik/pkg-tmp/unison/src/uicommon.ml", line 366, characters 8-26:
Warning 3: deprecated: String.set
Use Bytes.set instead.
File "/home/frederik/pkg-tmp/unison/src/uicommon.ml", line 366, characters 28-47:
Warning 3: deprecated: String.set
Use Bytes.set instead.
File "/home/frederik/pkg-tmp/unison/src/uicommon.ml", line 368, characters 8-23:
Warning 3: deprecated: String.set
Use Bytes.set instead.
$ make -j4
UISTYLE = text
ocamlopt: uitext.ml ---> uitext.cmx
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/uitext.ml
ocamlopt: test.ml ---> test.cmx
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/test.ml
File "/home/frederik/pkg-tmp/unison/src/uitext.ml", line 583, characters 46-56:
Warning 10: this expression should have type unit.
File "/home/frederik/pkg-tmp/unison/src/uitext.ml", line 383, characters 20-65:
Warning 26: unused variable diff.
$ make -j4
UISTYLE = text
ocamlopt: main.ml ---> main.cmx
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/main.ml
$ make -j4
UISTYLE = text
ocamlopt: linktext.ml ---> linktext.cmx
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/linktext.ml
$ make -j4
UISTYLE = text
Linking unison
ocamlopt -verbose -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -o unison   unix.cmxa str.cmxa bigarray.cmxa ubase/rx.cmx unicode_tables.cmx unicode.cmx bytearray.cmx system/system_generic.cmx system/generic/system_impl.cmx system.cmx ubase/projectInfo.cmx ubase/myMap.cmx ubase/safelist.cmx ubase/util.cmx ubase/uarg.cmx ubase/prefs.cmx ubase/trace.cmx ubase/proplist.cmx lwt/pqueue.cmx lwt/lwt.cmx lwt/lwt_util.cmx lwt/generic/lwt_unix_impl.cmx lwt/lwt_unix.cmx uutil.cmx case.cmx pred.cmx fileutil.cmx name.cmx path.cmx fspath.cmx fs.cmx fingerprint.cmx abort.cmx osx.cmx external.cmx fswatch.cmx props.cmx fileinfo.cmx os.cmx lock.cmx clroot.cmx common.cmx tree.cmx checksum.cmx terminal.cmx transfer.cmx xferhint.cmx remote.cmx globals.cmx fswatchold.cmx fpcache.cmx update.cmx copy.cmx stasher.cmx files.cmx sortri.cmx recon.cmx transport.cmx strings.cmx uicommon.cmx uitext.cmx test.cmx main.cmx linktext.cmx osxsupport.o pty.o bytearray_stubs.o -cclib -lutil
+ as -o '/tmp/camlstartupe9ce2b.o' '/tmp/camlstartupf44e2f.s'
+ gcc -Wl,-z,relro -Wl,-z,now -o 'unison'   '-Llwt' '-Lubase' '-Lsystem' '-Lfsmonitor' '-Lfsmonitor/linux' '-Lfsmonitor/windows' '-Lsystem/generic' '-Llwt/generic' '-L/usr/lib/ocaml'  '/tmp/camlstartupe9ce2b.o' '/usr/lib/ocaml/std_exit.o' 'linktext.o' 'main.o' 'test.o' 'uitext.o' 'uicommon.o' 'strings.o' 'transport.o' 'recon.o' 'sortri.o' 'files.o' 'stasher.o' 'copy.o' 'update.o' 'fpcache.o' 'fswatchold.o' 'globals.o' 'remote.o' 'xferhint.o' 'transfer.o' 'terminal.o' 'checksum.o' 'tree.o' 'common.o' 'clroot.o' 'lock.o' 'os.o' 'fileinfo.o' 'props.o' 'fswatch.o' 'external.o' 'osx.o' 'abort.o' 'fingerprint.o' 'fs.o' 'fspath.o' 'path.o' 'name.o' 'fileutil.o' 'pred.o' 'case.o' 'uutil.o' 'lwt/lwt_unix.o' 'lwt/generic/lwt_unix_impl.o' 'lwt/lwt_util.o' 'lwt/lwt.o' 'lwt/pqueue.o' 'ubase/proplist.o' 'ubase/trace.o' 'ubase/prefs.o' 'ubase/uarg.o' 'ubase/util.o' 'ubase/safelist.o' 'ubase/myMap.o' 'ubase/projectInfo.o' 'system.o' 'system/generic/system_impl.o' 'system/system_generic.o' 'bytearray.o' 'unicode.o' 'unicode_tables.o' 'ubase/rx.o' '/usr/lib/ocaml/bigarray.a' '/usr/lib/ocaml/str.a' '/usr/lib/ocaml/unix.a' '/usr/lib/ocaml/stdlib.a' '-lbigarray' '-lcamlstr' '-lunix' 'osxsupport.o' 'pty.o' 'bytearray_stubs.o' '-lutil' '/usr/lib/ocaml/libasmrun.a' -lm  -ldl
$ make -j4
UISTYLE = text
Building for Unix
NATIVE = true
THREADS = false
STATIC = false
OSTYPE =
OSARCH = Linux
$ make -j4
UISTYLE = text
Building for Unix
NATIVE = true
THREADS = false
STATIC = false
OSTYPE =
OSARCH = Linux


More information about the Unison-hackers mailing list