Opened 15 years ago

Closed 15 years ago

#6050 closed defect (fixed)

BUG: openmotif-2.3.0beta1 build fails with libiconv port installed

Reported by: cssdev@… Owned by: yves@…
Priority: Normal Milestone:
Component: ports Version: 1.0
Keywords: Cc: mww@…
Port:

Description

If the libiconv port is installed and active, then the openmotif 2.3.0beta1 port build fails:

/usr/bin/gcc-4.0 -I/opt/local/include -Wall -g -Wno-unused -Wno-comment -I/opt/local/include -I/ opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include -DXTHREADS -I/opt/local/ include -I/usr/X11R6/include -o .libs/xmbind xmbind.o -L/opt/local/lib ../../lib/Xm/.libs/libXm.dylib -L/usr/X11R6/lib -lXmu -lXt -lXext -lXp /opt/local/lib/libXft.dylib /opt/local/lib/libfontconfig.dylib / opt/local/lib/libfreetype.dylib -lz /opt/local/lib/libexpat.dylib /opt/local/lib/libXrender.dylib -lX11 / opt/local/lib/libjpeg.dylib -lpng /usr/bin/ld: warning prebinding disabled because dependent library: /opt/local/lib/libXm.4.dylib is not prebound /usr/bin/ld: Undefined symbols: _libiconv _libiconv_close _libiconv_open collect2: ld returned 1 exit status make[2]: * [xmbind] Error 1 make[1]: * [all-recursive] Error 1 make: * [all-recursive] Error 1

It looks like there are two issues with this problem:

  1. The openmotif configure script finds iconv.h, but it only checks linking for iconv_open(). This fails if

libiconv is installed, as the test uses the port's iconv.h without looking for the corresponding libiconv_open() function when linking.

  1. The source file lib/Xm/ResEncod.c includes iconv.h without any config.h tests. As a result, this file

ALWAYS includes iconv.h. Due to the DP flags to include ${prefix}/include, this means that the libiconv port's header gets included regardless of the configure test.

It looks like the broken configure script needs to also check for libiconv_open() in addition to its regular iconv_open() check when trying to link with -liconv. The authors should probably also fix ResEncod.c to properly account for whether it should use iconv or not.

Attachments (1)

patch-configure.ac.diff (371 bytes) - added by cssdev@… 15 years ago.
Try to link with libiconv_open()

Download all attachments as: .zip

Change History (5)

comment:1 Changed 15 years ago by jmpp@…

Not getting my feet too wet with this since I hardly ever use X11 and don't really know much about iconv, I'd suggest upgrading iconv manually first before trying to proceed. There are many failures related to the iconv upgrade process and I don't know what's the status on that (you should ask the maitainer), but I do know uninstalling and reinstalling it manually solves a lot of the conflicts. After that's done I'd proceed with the openmotif trials.

-jmpp

Changed 15 years ago by cssdev@…

Attachment: patch-configure.ac.diff added

Try to link with libiconv_open()

comment:2 Changed 15 years ago by yves@…

Status: newassigned

You got me confused a bit, as it builds fine for me with libiconv port active.

there is a new Portfile in cvs now which should fix the problem

thanks for your input

comment:3 Changed 15 years ago by cssdev@…

Works great now, thanks!

comment:4 Changed 15 years ago by yves@…

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.