Opened 13 years ago
Closed 13 years ago
#31988 closed defect (invalid)
libiconv doesn't seem to work on x86_64
Reported by: | dave@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.0.3 |
Keywords: | Cc: | ryandesign (Ryan Carsten Schmidt) | |
Port: |
Description
The only way I could get trunk gcc to build was by downloading libiconv source and installing it under /usr/local as follows:
export LDFLAGS=-L/usr/local/lib && ~/src/gcc/configure --enable-languages=c,c++ --prefix=/usr/local/stow/gcc-4.7 --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --with-libiconv=/opt/local && make -j8
Otherwise I would get link errors when building cc1, generated by this command in the gcc make process:
gcc -g -fkeep-inline-functions -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat -fno-common -DHAVE_CONFIG_H -L/opt/local/lib -o cc1 c-lang.o c-family/stub-objc.o attribs.o c-errors.o c-decl.o c-typeck.o c-convert.o c-aux-info.o c-objc-common.o c-parser.o tree-mudflap.o c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o c-family/c-format.o c-family/c-gimplify.o c-family/c-lex.o c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o c-family/c-semantics.o c-family/c-ada-spec.o i386-c.o darwin-c.o \ cc1-checksum.o main.o tree-browser.o libbackend.a libcommon-target.a libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a -liconv libcommon.a ../libcpp/libcpp.a -lintl -liconv -lc ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -L/opt/local/lib -L/opt/local/lib -L/opt/local/lib -lmpc -lmpfr -lgmp -liconv -L../zlib -lz
My macports.conf is attached
Attachments (1)
Change History (4)
Changed 13 years ago by dave@…
Attachment: | macports.conf added |
---|
comment:1 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)
We don't support users installing things in /usr/local; it interferes with things installed by MacPorts.
Please remove or move aside /usr/local, clean the affected port, try again, and show us exactly what happened.
comment:2 follow-up: 3 Changed 13 years ago by dave@…
Huh? What affected port?
I'm trying to build gcc from source using macports' libiconv.
The build is invoked this way:
~/src/gcc/configure --enable-languages=c,c++ --disable-multilib --disable-bootstrap --prefix=/usr/local/stow/gcc-4.7 --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --without-libitm gmake
And fails as follows:
gcc -c -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat -fno-common -DHAVE_CONFIG_H -I. -I. -I/Users/dave/src/gcc/gcc -I/Users/dave/src/gcc/gcc/. -I/Users/dave/src/gcc/gcc/../include -I./../intl -I/Users/dave/src/gcc/gcc/../libcpp/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/Users/dave/src/gcc/gcc/../libdecnumber -I/Users/dave/src/gcc/gcc/../libdecnumber/dpd -I../libdecnumber insn-automata.c -o insn-automata.o rm -rf libcommon-target.a ar rc libcommon-target.a i386-common.o prefix.o params.o opts.o opts-common.o options.o vec.o hooks.o common/common-targhooks.o ranlib -c libcommon-target.a rm -rf libcommon.a ar rc libcommon.a diagnostic.o pretty-print.o intl.o input.o version.o ranlib -c libcommon.a gcc -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat -fno-common -DHAVE_CONFIG_H gcov.o libcommon.a ../libcpp/libcpp.a ./../intl/libintl.a -liconv ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -o gcov Undefined symbols for architecture x86_64: "_libiconv_open", referenced from: _identifier_to_locale in libcommon.a(pretty-print.o) "_libiconv", referenced from: _identifier_to_locale in libcommon.a(pretty-print.o) "_libiconv_close", referenced from: _identifier_to_locale in libcommon.a(pretty-print.o) ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status gmake[2]: *** [gcov] Error 1 gmake[2]: *** Waiting for unfinished jobs.... rm gcov.pod cpp.pod gfdl.pod gcc.pod fsf-funding.pod gmake[2]: Leaving directory `/private/tmp/gcc-build/gcc' gmake[1]: *** [all-gcc] Error 2 gmake[1]: Leaving directory `/private/tmp/gcc-build' gmake: *** [all] Error 2
The build is fixed by compiling and installing my own libiconv in /usr/local and using that one.
comment:3 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign@… added |
---|---|
Resolution: | → invalid |
Status: | new → closed |
Replying to dave@…:
I'm trying to build gcc from source using macports' libiconv.
Oh. Ok. Well there's nothing wrong with the libiconv port. Based on the line...
gcc -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat -fno-common -DHAVE_CONFIG_H gcov.o libcommon.a ../libcpp/libcpp.a ./../intl/libintl.a -liconv ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -o gcov
...it looks like "-L/opt/local/lib
" is missing. The gcc46 port uses the configure argument --with-libiconv-prefix=/opt/local
; perhaps you need to add that.
My macports configuration