I think this is Apple using the new LLVM backend or something.... I had a
similar issue recently and I had to use "homebrew" to install an
alternative gcc4 compiler.

See the green ticked answer:
http://apple.stackexchange.com/questions/38222/how-do-i-install-gcc-via-homebrew

some background:

http://stackoverflow.com/questions/12020349/difference-between-llvm-gcc-4-2-and-apple-llvm-compiler-3-1


On 7 February 2014 09:52, Philipp Kraus <[email protected]>wrote:

> Hello,
>
> I try to build gnu prolog under OSX (10.8 & 10.9) and I get the
> segmentation fault on the make process:
>
>         --- GNU PROLOG INSTALLATION ---
>         -------------------------------
>
> GNU Prolog version: 1.4.4 (Feb  7 2014)
> Operating system  : darwin12.5.0
> Processor         : x86_64
> Size of a WAM word: 64 bits
> C compiler        : gcc
> C flags           : -O3 -fomit-frame-pointer
> C flags machine   : -march=x86-64 -m64 -fno-strict-aliasing
> Assembler         : as
> Assembler flags   : -arch x86_64
> Loader flags      :
> Loader libraries  : -lm
> Use line editor   : Yes
> Use piped consult : No
> Use sockets       : No
> Use FD solver     : Yes
> Use machine regs. : Yes
> Used register(s)  :
>
>         ------------------------------
>
> (cd ../TopComp; make gplc)
> gcc -march=x86-64 -m64 -fno-strict-aliasing -O3 -fomit-frame-pointer -o
> gplc top_comp.c -lm
> . ./SETVARS;for i in EnginePl TopComp Wam2Ma Ma2Asm Linedit BipsPl Pl2Wam
> Fd2C EngineFD BipsFD;do (cd $i; make) || exit 1; done;\
>         (cd TopComp; make top-level) || exit 1;\
>         (cd Pl2Wam; make stage2)
> gcc -march=x86-64 -m64 -fno-strict-aliasing -O3 -fomit-frame-pointer  -o
> cpp_headers cpp_headers.c
> gplc -c -C '-O3 -fomit-frame-pointer' machine.c
> gplc -c -C '-O3 -fomit-frame-pointer' machine1.c
> gplc -c -C '-O3 -fomit-frame-pointer' stacks_sigsegv.c
> gplc -c -C '-O3 -fomit-frame-pointer' mem_alloc.c
> gplc -c -C '-O3 -fomit-frame-pointer' misc.c
> gplc -c -C '-O3 -fomit-frame-pointer' hash_fct.c
> gplc -c -C '-O3 -fomit-frame-pointer' hash.c
> gplc -c -C '-O3 -fomit-frame-pointer' obj_chain.c
> gplc -c -C '-O3 -fomit-frame-pointer' engine.c
> gplc -c -o engine1.o engine1.c
> gplc -c -C '-O3 -fomit-frame-pointer' wam_inst.c
> gplc -c -C '-O3 -fomit-frame-pointer' atom.c
> gplc -c -C '-O3 -fomit-frame-pointer' pred.c
> gplc -c -C '-O3 -fomit-frame-pointer' oper.c
> gplc -c -C '-O3 -fomit-frame-pointer' if_no_fd.c
> gplc -c -C '-O3 -fomit-frame-pointer' main.c
> rm -f libengine_pl.a
> ar rc  libengine_pl.a machine.o machine1.o stacks_sigsegv.o mem_alloc.o
> misc.o hash_fct.o hash.o obj_chain.o engine.o engine1.o wam_inst.o atom.o
> pred.o oper.o if_no_fd.o main.o
> /usr/bin/ranlib: file: libengine_pl.a(mem_alloc.o) has no symbols
> ranlib libengine_pl.a
> ranlib: file: libengine_pl.a(mem_alloc.o) has no symbols
> gcc -march=x86-64 -m64 -fno-strict-aliasing -O3 -fomit-frame-pointer -o
> hexgplc hexfilter.c
> gcc -march=x86-64 -m64 -fno-strict-aliasing -O3 -fomit-frame-pointer -c
> wam2ma.c
> gcc -march=x86-64 -m64 -fno-strict-aliasing -O3 -fomit-frame-pointer -c
> wam_parser.c
> gcc -march=x86-64 -m64 -fno-strict-aliasing -O3 -fomit-frame-pointer -o
> wam2ma wam2ma.o wam_parser.o
> gcc -march=x86-64 -m64 -fno-strict-aliasing -O3 -fomit-frame-pointer -c
> ma2asm.c
> gcc -march=x86-64 -m64 -fno-strict-aliasing -O3 -fomit-frame-pointer -c
> ma_parser.c
> gcc -march=x86-64 -m64 -fno-strict-aliasing -O3 -fomit-frame-pointer -c
> ma2asm_inst.c
> gcc -march=x86-64 -m64 -fno-strict-aliasing -O3 -fomit-frame-pointer -o
> ma2asm ma2asm.o ma2asm_inst.o ma_parser.o
> gcc -march=x86-64 -m64 -fno-strict-aliasing -c -O3 -fomit-frame-pointer
> -funsigned-char linedit.c
> gcc -march=x86-64 -m64 -fno-strict-aliasing -c -O3 -fomit-frame-pointer
> -funsigned-char terminal.c
> gcc -march=x86-64 -m64 -fno-strict-aliasing -c -O3 -fomit-frame-pointer
> -funsigned-char ctrl_c.c
> rm -f liblinedit.a
> ar rc  liblinedit.a linedit.o terminal.o ctrl_c.o
> ranlib liblinedit.a
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' error_supp.c
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' c_supp.c
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' foreign_supp.c
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' pred_supp.c
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' term_supp.c
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' stream_supp.c
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' scan_supp.c
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' parse_supp.c
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' write_supp.c
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' dynam_supp.c
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' callinf_supp.c
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' bc_supp.c
> gplc -c foreign.wam
> gplc -c pl_error.wam
> gplc -c utils.wam
> gplc -c unify.wam
> gplc -c assert.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' assert_c.c
> gplc -c read.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' read_c.c
> gplc -c write.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' write_c.c
> gplc -c print.wam
> gplc -c const_io.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' const_io_c.c
> gplc -c oper.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' oper_c.c
> gplc -c pred.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' pred_c.c
> gplc -c atom.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' atom_c.c
> gplc -c control.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' control_c.c
> gplc -c call.wam
> gplc -c call_args.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' call_args_c.c
> gplc -c catch.wam
> gplc -c throw.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' throw_c.c
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' flag_supp.c
> gplc -c flag.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' flag_c.c
> gplc -c arith_inl.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' arith_inl_c.c
> gplc -c type_inl.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' type_inl_c.c
> gplc -c term_inl.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' term_inl_c.c
> gplc -c g_var_inl.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' g_var_inl_c.c
> gplc -c all_solut.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' all_solut_c.c
> gplc -c sort.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' sort_c.c
> gplc -c list.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' list_c.c
> gplc -c stat.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' stat_c.c
> gplc -c stream.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' stream_c.c
> gplc -c file.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' file_c.c
> gplc -c char_io.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' char_io_c.c
> gplc -c dec10io.wam
> gplc -c format.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' format_c.c
> gplc -c os_interf.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' os_interf_c.c
> gplc -c expand.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' expand_c.c
> gplc -c consult.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' consult_c.c
> gplc -c pretty.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' pretty_c.c
> gplc -c random.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' random_c.c
> gplc -c top_level.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' top_level_c.c
> gplc -c debugger.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' debugger_c.c
> debugger_c.c:270:16: warning: ordered comparison of function pointers
> ('WamCont' (aka 'void (*)()') and 'WamCont')
>       if (code >= code1 && code1 >= last_code)
>           ~~~~ ^  ~~~~~
> debugger_c.c:270:34: warning: ordered comparison of function pointers
> ('WamCont' (aka 'void (*)()') and 'WamCont')
>       if (code >= code1 && code1 >= last_code)
>                            ~~~~~ ^  ~~~~~~~~~
> 2 warnings generated.
> gplc -c src_rdr.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' src_rdr_c.c
> gplc -c all_pl_bips.wam
> gplc -c no_sockets.wam
> gplc -c le_interf.wam
> gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' le_interf_c.c
> rm -f libbips_pl.a
> ar rc  libbips_pl.a error_supp.o c_supp.o foreign_supp.o pred_supp.o
> term_supp.o stream_supp.o scan_supp.o parse_supp.o write_supp.o
> dynam_supp.o callinf_supp.o bc_supp.o foreign.o pl_error.o utils.o unify.o
> assert.o assert_c.o read.o read_c.o write.o write_c.o print.o const_io.o
> const_io_c.o oper.o oper_c.o pred.o pred_c.o atom.o atom_c.o control.o
> control_c.o call.o call_args.o call_args_c.o catch.o throw.o throw_c.o
> flag_supp.o flag.o flag_c.o arith_inl.o arith_inl_c.o type_inl.o
> type_inl_c.o term_inl.o term_inl_c.o g_var_inl.o g_var_inl_c.o all_solut.o
> all_solut_c.o sort.o sort_c.o list.o list_c.o stat.o stat_c.o stream.o
> stream_c.o file.o file_c.o char_io.o char_io_c.o dec10io.o format.o
> format_c.o os_interf.o os_interf_c.o expand.o expand_c.o consult.o
> consult_c.o pretty.o pretty_c.o random.o random_c.o top_level.o
> top_level_c.o debugger.o debugger_c.o src_rdr.o src_rdr_c.o all_pl_bips.o
> no_sockets.o le_interf.o le_interf_c.o
> ranlib libbips_pl.a
> gplc -c pl2wam.wam
> gplc -c read_file.wam
> gplc -c syn_sugar.wam
> gplc -c internal.wam
> gplc -c code_gen.wam
> gplc -c reg_alloc.wam
> gplc -c inst_codif.wam
> gplc -c first_arg.wam
> gplc -c indexing.wam
> gplc -c wam_emit.wam
> [ ! -f  pl2wam ] || cp pl2wam pl2wam0
> gplc -o pl2wam --no-fd-lib-warn --no-top-level pl2wam.o read_file.o
> syn_sugar.o internal.o code_gen.o reg_alloc.o inst_codif.o first_arg.o
> indexing.o wam_emit.o
> gplc -c --fast-math fd2c.pl
>
> Fatal Error: Segmentation Violation (bad address: 0x0)
> compilation failed
> make[1]: *** [fd2c.o] Error 1
> make: *** [all] Error 1
>
>
>
> How can I build it in a correct way
> Thanks
>
> Phil
> _______________________________________________
> Users-prolog mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/users-prolog
>
_______________________________________________
Users-prolog mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/users-prolog

Reply via email to