It seems that the only reason I ever post in this list is for help compiling GPC. I've got gcc 2.8.1 and gpc-980511. These are the errors I get:
(root) pollux:/usr/src/gcc-2.8.1>make LANGUAGES=pascal cd p; make "AR_FLAGS=rc" "AR_FOR_TARGET=/usr/i486-pc-linux-gnu/bin/ar" "BISON=bison" "BISONFLAGS=" "CC=gcc" "CFLAGS=-g" "CLIB=" "GCC_FOR_TARGET=./xgcc -B./" "LDFLAGS=" "LEX=flex" "LEXFLAGS=" "LN=ln -s" "MAKEINFO=makeinfo" "MAKEINFOFLAGS=" "RANLIB_FOR_TARGET=/usr/i486-pc-linux-gnu/bin/ranlib" "RANLIB_TEST_FOR_TARGET=[ -f /usr/i486-pc-linux-gnu/bin/ranlib ]" "SHELL=/bin/sh" "STAGE_PREFIX=" "exeext=" "objext=.o" "exec_prefix=/usr" "prefix=/usr" "tooldir=/usr/i486-pc-linux-gnu" "bindir=/usr/bin" "libsubdir=/usr/lib/gcc-lib/i486-pc-linux-gnu/2.8.1" "CROSS=" "AR_FLAGS=rc" "AR_FOR_TARGET=/usr/i486-pc-linux-gnu/bin/ar" "BISON=bison" "BISONFLAGS=" "CFLAGS=-g" "X_CFLAGS=" "LDFLAGS=" "LEX=flex" "LEXFLAGS=" "MAKEINFO=makeinfo" "MAKEINFOFLAGS=" "MAYBE_TARGET_DEFAULT=" "MAYBE_USE_COLLECT2=" "RANLIB_FOR_TARGET=/usr/i486-pc-linux-gnu/bin/ranlib" "RANLIB_TEST_FOR_TARGET=[ -f /usr/i486-pc-linux-gnu/bin/ranlib ]" "SHELL=/bin/sh" "bindir=/usr/bin" "exec_prefix=/usr" "gxx_include_dir=/usr/include/! ! ! g++" "includedir=/usr/local/include" "libsubdir=/usr/lib/gcc-lib/i486-pc-linux-gnu/2.8.1" "prefix=/usr" "target_alias=i486-pc-linux-gnu" "tooldir=/usr/i486-pc-linux-gnu" "gpc_version=980511" "rts_version=2.8" "version=2.8.1" ../gpc1 make[1]: Entering directory `/usr/src/gcc-2.8.1/p' rm -f ../gpc1 gcc -DIN_GCC -DGPC -g -o ../gpc1 \ `cat stamp-gbe` ../c-aux-info.o ../c-iterate.o ../c-pragma.o ../choose-temp.o ../pexecute.o gpc-common.o gpc-convert.o gpc-decl.o gpc-lang.o gpc-lex.o gpc-typeck.o module.o gpi-hash.o circle-buf.o objects.o parse.o rts.o types.o util.o setop.o version.o `if [ xobstack.o != x ]; then echo ../obstack.o; else true; fi` `case "gcc" in "cc") if [ x != x ]; then echo ../; else true; fi ;; esac` `if [ x != x ]; then echo ../; else true; fi` gpc-common.o: In function `build_pascal_binary_op': /usr/src/gcc-2.8.1/p/gpc-common.c:2572: undefined reference to `emit_string_move' /usr/src/gcc-2.8.1/p/gpc-common.c:2587: undefined reference to `emit_string_move' gpc-decl.o: In function `grokdeclarator': /usr/src/gcc-2.8.1/p/gpc-decl.c:5924: undefined reference to `size_volatile' gpc-decl.o: In function `handle_forward_pointers': /usr/src/gcc-2.8.1/p/gpc-decl.c:9049: undefined reference to `dbxout_set_type_status' /usr/src/gcc-2.8.1/p/gpc-decl.c:9055: undefined reference to `dbxout_set_type_status' module.o: In function `execute': /usr/src/gcc-2.8.1/p/module.c:466: undefined reference to `version_flag' module.o: In function `module_must_be_recompiled': /usr/src/gcc-2.8.1/p/module.c:685: undefined reference to `version_flag' module.o: In function `compile_module': /usr/src/gcc-2.8.1/p/module.c:802: undefined reference to `version_flag' module.o: In function `load_tree': /usr/src/gcc-2.8.1/p/module.c:1799: undefined reference to `size_volatile' /usr/src/gcc-2.8.1/p/module.c:1853: undefined reference to `size_volatile' parse.o: In function `yyparse': /usr/src/gcc-2.8.1/p/parse.y:1563: undefined reference to `size_volatile' /usr/src/gcc-2.8.1/p/parse.y:1629: undefined reference to `size_volatile' /usr/src/gcc-2.8.1/p/parse.y:4766: undefined reference to `maybe_find_function_data' rts.o: In function `build_rts_call': /usr/src/gcc-2.8.1/p/rts.c:3503: undefined reference to `emit_string_move' types.o: In function `assign_string': /usr/src/gcc-2.8.1/p/types.c:639: undefined reference to `emit_string_move' /usr/src/gcc-2.8.1/p/types.c:690: undefined reference to `emit_string_pad' types.o: In function `prediscriminate_schema': /usr/src/gcc-2.8.1/p/types.c:1056: undefined reference to `size_volatile' /usr/src/gcc-2.8.1/p/types.c:1058: undefined reference to `size_volatile' /usr/src/gcc-2.8.1/p/types.c:1089: undefined reference to `size_volatile' /usr/src/gcc-2.8.1/p/types.c:1092: undefined reference to `size_volatile' types.o: In function `build_pascal_pointer_type': /usr/src/gcc-2.8.1/p/types.c:1738: undefined reference to `dbxout_set_type_status' util.o: In function `handle_formal_conf_array_param_list': /usr/src/gcc-2.8.1/p/util.c:738: undefined reference to `size_volatile' /usr/src/gcc-2.8.1/p/util.c:763: undefined reference to `size_volatile' util.o: In function `initialize_world': /usr/src/gcc-2.8.1/p/util.c:1816: undefined reference to `size_volatile' /usr/src/gcc-2.8.1/p/util.c:1819: undefined reference to `size_volatile' make[1]: *** [../gpc1] Error 1 make[1]: Leaving directory `/usr/src/gcc-2.8.1/p' make: *** [gpc1] Error 2
Any suggestions?
Paul.
Paul Doerwald wrote:
It seems that the only reason I ever post in this list is for help compiling GPC. I've got gcc 2.8.1 and gpc-980511. These are the errors I get: [...] /usr/src/gcc-2.8.1/p/gpc-common.c:2572: undefined reference to `emit_string_move' /usr/src/gcc-2.8.1/p/gpc-common.c:2587: undefined reference to `emit_string_move'
That's a VPATH problem (though I wonder that it does exist on a Linux platform). See the section "Help! linking `gpc1' fails: `_emit_string_move' undefined (and more)" in the GPC FAQ list, http://home.pages.de/~GNU-Pascal/gpc-faq.html .
Hope this helps,
Peter