Ilya Solonitsyn Posted April 4 Share Posted April 4 (edited) Приветствую, понадобилось собрать нативно на роутере ZKGIII и NAS QNAP D4 ocaml-4.08.1 для дальнейшей сборки unison-2.53.2.tar так как в репозитарии unison нет. Последовал инструкции https://github.com/Entware/Entware/wiki/Using-GCC-for-native-compilation и на QNAP всё собралось. На роутере выдаёт ошибку при ./configure --prefix=/optmake world.opt на последнем этапе make[3]: *** No rule to make target 'none.o', needed by 'libasmrun.a'. Stop.: gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -DOCAML_STDLIB_DIR='"/opt/lib/ocaml"' -DNATIVE_CODE -DTARGET_none -DMODEL_default -DSYS_unknown -o backtrace_nat_n.o backtrace_nat.c backtrace_nat.c: In function 'caml_next_frame_descriptor': backtrace_nat.c:51:13: warning: implicit declaration of function 'Saved_return_address' [-Wimplicit-function-declaration] *pc = Saved_return_address(*sp); ^~~~~~~~~~~~~~~~~~~~ backtrace_nat.c:59:44: warning: implicit declaration of function 'Callback_link' [-Wimplicit-function-declaration] struct caml_context * next_context = Callback_link(*sp); ^~~~~~~~~~~~~ backtrace_nat.c:59:44: warning: initialization of 'struct caml_context *' from 'int' makes pointer from integer without a cast [-Wint-conversion] gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -DOCAML_STDLIB_DIR='"/opt/lib/ocaml"' -DNATIVE_CODE -DTARGET_none -DMODEL_default -DSYS_unknown -o backtrace_n.o backtrace.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -DOCAML_STDLIB_DIR='"/opt/lib/ocaml"' -DNATIVE_CODE -DTARGET_none -DMODEL_default -DSYS_unknown -o dynlink_nat_n.o dynlink_nat.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -DOCAML_STDLIB_DIR='"/opt/lib/ocaml"' -DNATIVE_CODE -DTARGET_none -DMODEL_default -DSYS_unknown -o debugger_n.o debugger.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -DOCAML_STDLIB_DIR='"/opt/lib/ocaml"' -DNATIVE_CODE -DTARGET_none -DMODEL_default -DSYS_unknown -o meta_n.o meta.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -DOCAML_STDLIB_DIR='"/opt/lib/ocaml"' -DNATIVE_CODE -DTARGET_none -DMODEL_default -DSYS_unknown -o dynlink_n.o dynlink.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -DOCAML_STDLIB_DIR='"/opt/lib/ocaml"' -DNATIVE_CODE -DTARGET_none -DMODEL_default -DSYS_unknown -o clambda_checks_n.o clambda_checks.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -DOCAML_STDLIB_DIR='"/opt/lib/ocaml"' -DNATIVE_CODE -DTARGET_none -DMODEL_default -DSYS_unknown -o spacetime_nat_n.o spacetime_nat.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -DOCAML_STDLIB_DIR='"/opt/lib/ocaml"' -DNATIVE_CODE -DTARGET_none -DMODEL_default -DSYS_unknown -o spacetime_snapshot_n.o spacetime_snapshot.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -DOCAML_STDLIB_DIR='"/opt/lib/ocaml"' -DNATIVE_CODE -DTARGET_none -DMODEL_default -DSYS_unknown -o afl_n.o afl.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -DOCAML_STDLIB_DIR='"/opt/lib/ocaml"' -DNATIVE_CODE -DTARGET_none -DMODEL_default -DSYS_unknown -o bigarray_n.o bigarray.c make[3]: *** No rule to make target 'none.o', needed by 'libasmrun.a'. Stop. make[3]: Leaving directory '/opt/home/ocaml-4.08.1/runtime' make[2]: *** [Makefile:945: makeruntimeopt] Error 2 make[2]: Leaving directory '/opt/home/ocaml-4.08.1' make[1]: *** [Makefile:395: opt.opt] Error 2 make[1]: Leaving directory '/opt/home/ocaml-4.08.1' make: *** [Makefile:446: world.opt] Error 2 Так как я в подобных материях практически нуб, то нужна помощь старших коллег! Если нужны логи - скажите какие и где их взять.... Edited April 4 by Ilya Solonitsyn Quote Link to comment Share on other sites More sharing options...
krass Posted April 4 Share Posted April 4 3 минуты назад, Ilya Solonitsyn сказал: No rule to make target 'none.o', needed by 'libasmrun.a'. Stop. Посмотрите: https://stackoverflow.com/questions/47439807/ocaml-compilation-fails-due-to-caml-oldify-local-roots Quote Link to comment Share on other sites More sharing options...
Ilya Solonitsyn Posted April 4 Author Share Posted April 4 Видел это, да. Как я и сказал, собираю из исходников через: ./configure --prefix=/opt make world.opt make install На этапе make world.opt вышеуказанная ошибка и вылезает. К сожалению навыков и знаний не хватает, что бы понять как этот рецепт на роутере реализовать. Quote Link to comment Share on other sites More sharing options...
krass Posted April 4 Share Posted April 4 43 минуты назад, Ilya Solonitsyn сказал: Видел это, да. Как я и сказал, собираю из исходников через: ./configure --prefix=/opt make world.opt make install На этапе make world.opt вышеуказанная ошибка и вылезает. К сожалению навыков и знаний не хватает, что бы понять как этот рецепт на роутере реализовать. Ну кроме гугла более вам ничем помочь не смогу. Нужны более опытные форумчане. P.S. Мне хватило в своё время vi и bash.... Quote Link to comment Share on other sites More sharing options...
Ilya Solonitsyn Posted April 4 Author Share Posted April 4 1 час назад, krass сказал: Посмотрите: https://stackoverflow.com/questions/47439807/ocaml-compilation-fails-due-to-caml-oldify-local-roots Здесь предлагают делать make world, что не поможет, так как нужен world.opt для дальнейшей сборки unison. И далее пишут, что: Цитата Concerning the missing none.o. The none.o is a placeholder module for the backend implementation, that is used if the native code generation is not supported for the target platform. Thus if you see that error, then it means, that you can't do make world.opt as there is no native code compiler for your architecture. И вот как собрать теперь world.opt..... Quote Link to comment Share on other sites More sharing options...
TheBB Posted April 4 Share Posted April 4 6 часов назад, Ilya Solonitsyn сказал: И вот как собрать теперь world.opt..... Пробовать собрать версию 3.12 или более старую. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.