Opened 13 years ago

Closed 12 years ago

Last modified 11 years ago

#29358 closed defect (invalid)

gettext: Undefined symbols _bswap_32 when /usr/include/byteswap.h is present

Reported by: ldduffy@… Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.9.2
Keywords: Cc: armand.tanzarian@…
Port: gettext

Description

I am new to this, so sorry if this is trivial. I am trying to install gsl @1.14 on Mac OS X 10.5.8 (XCode 3.1) and it breaks on the gettext installation.

Here is the terminal output:

--->  Computing dependencies for gettext
--->  Fetching gettext
--->  Verifying checksum(s) for gettext
--->  Extracting gettext
--->  Applying patches to gettext
--->  Configuring gettext
--->  Building gettext
Error: Target org.macports.build returned: shell command failed (see log for details)
Log for gettext is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_gettext/main.log
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>

Here is the log output:

:info:build libtool: link: /usr/bin/gcc-4.0 -std=gnu99 -O2 -arch i386 -arch i386 -o .libs/msgcmp msgcmp-msgcmp.o msg
cmp-msgl-fsearch.o -Wl,-framework -Wl,CoreFoundation  -L/opt/local/lib ./.libs/libgettextsrc.dylib /opt/local/var/ma
cports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_gettext/work/gettext-0.18.1.1/ge
ttext-tools/gnulib-lib/.libs/libgettextlib.dylib -lncurses /opt/local/var/macports/build/_opt_local_var_macports_sou
rces_rsync.macports.org_release_ports_devel_gettext/work/gettext-0.18.1.1/gettext-tools/intl/.libs/libintl.dylib /op
t/local/lib/libiconv.dylib -lc
:info:build /bin/sh ../libtool  --tag=CC   --mode=link /usr/bin/gcc-4.0 -std=gnu99   -O2 -arch i386  -L/opt/local/li
b -arch i386 -o msgmerge msgmerge-msgmerge.o msgmerge-msgl-fsearch.o msgmerge-lang-table.o msgmerge-plural-count.o l
ibgettextsrc.la -Wl,-framework -Wl,CoreFoundation    
:info:build libtool: link: /usr/bin/gcc-4.0 -std=gnu99 -O2 -arch i386 -arch i386 -o .libs/msgfmt msgfmt-msgfmt.o msg
fmt-write-mo.o msgfmt-write-java.o msgfmt-write-csharp.o msgfmt-write-resources.o msgfmt-write-tcl.o msgfmt-write-qt
.o msgfmt-hash-string.o -Wl,-framework -Wl,CoreFoundation  -L/opt/local/lib ./.libs/libgettextsrc.dylib /opt/local/v
ar/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_gettext/work/gettext-0.18.1
.1/gettext-tools/gnulib-lib/.libs/libgettextlib.dylib -lncurses /opt/local/var/macports/build/_opt_local_var_macport
s_sources_rsync.macports.org_release_ports_devel_gettext/work/gettext-0.18.1.1/gettext-tools/intl/.libs/libintl.dyli
b /opt/local/lib/libiconv.dylib -lc
:info:build Undefined symbols:
:info:build   "_bswap_32", referenced from:
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build       _write_table in msgfmt-write-mo.o
:info:build ld: symbol(s) not found
:info:build collect2: ld returned 1 exit status
:info:build make[4]: *** [msgfmt] Error 1
:info:build make[4]: *** Waiting for unfinished jobs....
:info:build libtool: link: /usr/bin/gcc-4.0 -std=gnu99 -O2 -arch i386 -arch i386 -o .libs/msgmerge msgmerge-msgmerge
.o msgmerge-msgl-fsearch.o msgmerge-lang-table.o msgmerge-plural-count.o -Wl,-framework -Wl,CoreFoundation  -L/opt/l
ocal/lib ./.libs/libgettextsrc.dylib /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.or
g_release_ports_devel_gettext/work/gettext-0.18.1.1/gettext-tools/gnulib-lib/.libs/libgettextlib.dylib -lncurses /op
t/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_gettext/work/gette
xt-0.18.1.1/gettext-tools/intl/.libs/libintl.dylib /opt/local/lib/libiconv.dylib -lc
:info:build make[3]: *** [all] Error 2
:info:build make[2]: *** [all-recursive] Error 1
:info:build make[1]: *** [all] Error 2
:info:build make: *** [all-recursive] Error 1
:info:build shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_rel
ease_ports_devel_gettext/work/gettext-0.18.1.1" && /usr/bin/make -j2 all " returned error 2
:error:build Target org.macports.build returned: shell command failed (see log for details)
:debug:build Backtrace: shell command failed (see log for details)
    while executing
"command_exec build"
    (procedure "portbuild::build_main" line 8)
    invoked from within
"$procedure $targetname"
:info:build Warning: the following items did not execute (for gettext): org.macports.activate org.macports.build org
.macports.destroot org.macports.install
:notice:build Log for gettext is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org
_release_ports_devel_gettext/main.log

Thanks!

Attachments (3)

main.log (817.0 KB) - added by ldduffy@… 13 years ago.
gettext main.log
main.2.log (25.1 KB) - added by armand.tanzarian@… 13 years ago.
gettext link fail main.log
main.3.log (807.8 KB) - added by armand.tanzarian@… 13 years ago.

Download all attachments as: .zip

Change History (16)

comment:1 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: changed from macports-tickets@… to ryandesign@…
Summary: gettext @0.18.1.1 Error: Target org.macports.build returned: shell command failedgettext: Undefined symbols _bswap_32

comment:2 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Well this is a strange problem, and all I can think is that if you are really using Xcode 3.1 (as in 3.1.0) then perhaps this is one of the bugs in Xcode that was fixed since then, and I'd recommend you upgrade to Xcode 3.1.4, then clean gettext ("sudo port clean gettext") and try again. If it fails again, please attach the main.log.

Changed 13 years ago by ldduffy@…

Attachment: main.log added

gettext main.log

comment:3 Changed 13 years ago by ldduffy@…

It was actually Xcode 3.1.3. I upgraded it to Xcode 3.1.4, used sudo port clean gettext and tried again, but am still having the same problem.

Changed 13 years ago by armand.tanzarian@…

Attachment: main.2.log added

gettext link fail main.log

comment:4 Changed 13 years ago by armand.tanzarian@…

similar issue here.

versions:

ProductName:	Mac OS X
ProductVersion:	10.7.1
BuildVersion:	11B26

portVersion: 2.0.3

xcode 4.1 xcode-select version 2003.

see attached log from # port install gettext

fink install coreutils has identical failure:

fink install coreutils

...

gcc -g -O2 -o .libs/msgfmt msgfmt-msgfmt.o msgfmt-write-mo.o msgfmt-write-java.o msgfmt-write-csharp.o msgfmt-write-resources.o msgfmt-write-tcl.o msgfmt-write-qt.o msgfmt-hash-string.o -Wl,-framework -Wl,CoreFoundation  -L/sw/lib ./.libs/libgettextsrc.dylib /sw/src/fink.build/gettext-tools-0.17-18/gettext-0.17/gettext-tools/gnulib-lib/.libs/libgettextlib.dylib -lncurses /sw/src/fink.build/gettext-tools-0.17-18/gettext-0.17/gettext-tools/intl/.libs/libintl.dylib /sw/lib/libiconv.dylib -lc 
Undefined symbols for architecture x86_64:
  "_bswap_32", referenced from:
      _write_table in msgfmt-write-mo.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [msgfmt] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
### execution of cd failed, exit code 2
Removing runtime build-lock...
Removing build-lock package...
/sw/bin/dpkg-lockwait -r fink-buildlock-gettext-tools-0.17-18
(Reading database ... 5066 files and directories currently installed.)
Removing fink-buildlock-gettext-tools-0.17-18 ...
Failed: phase compiling: gettext-tools-0.17-18 failed


comment:5 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: armand.tanzarian@… added

Armand, could you "sudo port clean gettext" and try again, and attach the complete main.log? The one you attached isn't the whole story (doesn't show what happened during the configure phase).

comment:6 Changed 13 years ago by armand.tanzarian@…

hi ryan,

thanks, same results:

$ sudo port clean gettext
Password:
--->  Cleaning gettext

$ sudo port install gettext
--->  Computing dependencies for gettext
--->  Fetching archive for gettext
--->  Attempting to fetch gettext-0.18.1.1_2.darwin_11.x86_64.tbz2 from http://packages.macports.org/gettext
--->  Fetching gettext
--->  Verifying checksum(s) for gettext
--->  Extracting gettext
--->  Applying patches to gettext
--->  Configuring gettext
--->  Building gettext
Error: Target org.macports.build returned: shell command failed (see log for details)
Log for gettext is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_gettext/gettext/main.log
Error: Status 1 encountered during processing.

log attached.

regards,

-a

Changed 13 years ago by armand.tanzarian@…

Attachment: main.3.log added

comment:7 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Ok, both of you have attached logs that show this:

:info:configure checking byteswap.h usability... yes
:info:configure checking byteswap.h presence... yes
:info:configure checking for byteswap.h... yes

As far as I know this is not normal; on my system I get:

:info:configure checking byteswap.h usability... no
:info:configure checking byteswap.h presence... no
:info:configure checking for byteswap.h... no

So, the question to both of you is: where is byteswap.h on your system? Try running this and see what it finds:

find /usr /opt/local/include -name byteswap.h

comment:8 Changed 13 years ago by armand.tanzarian@…

huzzah!

root@caramba:rootjail (2)# find /usr /opt/local/include -name byteswap.h
/usr/include/byteswap.h

root@caramba:rootjail (2)# locate byteswap.h
/sw/src/fink.build/dbus-1.2.16-4/dbus-1.2.16/dbus/dbus-marshal-byteswap.h
/sw/src/fink.build/dbus-1.2.16-4/dbus-1.2.16/dbus-0.62/dbus/dbus-marshal-byteswap.h
/usr/include/byteswap.h

root@caramba:rootjail (2)# ls -l /usr/include/byteswap.h 
-rw-r--r--  1 root  wheel  0 Jan 27  2011 /usr/include/byteswap.h

/usr/include/byteswap.h is empty?

comment:9 Changed 13 years ago by armand.tanzarian@…

hi ryan,

moving /usr/include/byteswap.h out of scope resolved this issue.

now, where did that turd come from? i am very careful not to pollute production spaces.

regards,

-a

comment:10 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

That's curious. Not sure where it came from but based on what I can see, /usr/include/byteswap.h should not be there on Mac OS X, so just remove it, especially if it's empty. You could try searching your drive for other files created Jan 27 2011 around the same time as /usr/include/byteswap.h; maybe that will help you uncover what software package installed it.

Also, since you showed that you have Fink in /sw, I should point out that having MacPorts and Fink installed can lead to conflicts and unexpected behavior in software installed from either package manager. I recommend you uninstall all but one package manager.

comment:11 in reply to:  10 ; Changed 13 years ago by armand.tanzarian@…

hi ryan,

thanks for your time. I really appreciate it.

no culprits leap out that would have stamped down an empty /usr/include/byteswap.h

hmm, curious that an empty file could be so problematic?

# define empty meaningless_and_transparent
# define empty curious_opaqueness_and_weird_things_can_happen

# define like transparent
# define dislike opaque

regards,

-a

comment:12 in reply to:  11 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: invalid
Status: newclosed
Summary: gettext: Undefined symbols _bswap_32gettext: Undefined symbols _bswap_32 when /usr/include/byteswap.h is present

Replying to armand.tanzarian@…:

hmm, curious that an empty file could be so problematic?

Not curious at all. gettext tests to see if you have the file byteswap.h, and if so, assumes it defines the things that byteswap.h typically defines on other operating systems (i.e. functions or macros that help you swap bytes). If byteswap.h is not present, gettext uses its own internal functions to do that. You had the file, but it did not define the expected functions, therefore problem.

comment:13 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Has duplicate #36688.

Note: See TracTickets for help on using tickets.