hi,

i've realised that when compiling vim with a motif gui on macosx,
the compile doesn't link in -lXpm which it needs hence my problem.
here's a little patch for any other wierdo with the same problem.

cheers,
raf

--- src/Makefile.orig   2010-06-08 10:36:42.000000000 +1000
+++ src/Makefile        2010-06-08 10:34:13.000000000 +1000
@@ -1155,7 +1155,7 @@ MOTIF_DEFS        = -DFEAT_GUI_MOTIF $(NARROW_P
 MOTIF_IPATH    = $(GUI_INC_LOC)
 MOTIF_LIBS_DIR = $(GUI_LIB_LOC)
 MOTIF_LIBS1    =
-MOTIF_LIBS2    = $(MOTIF_LIBNAME) -lXt
+MOTIF_LIBS2    = $(MOTIF_LIBNAME) -lXt -lXpm
 MOTIF_INSTALL   = install_normal install_gui_extra
 MOTIF_TARGETS  = installglinks
 MOTIF_MAN_TARGETS = yes

raf wrote:

> hi,
> 
> i've just got a shiny new corei7 macbookpro with macosx-10.6.3
> and i'm trying to compile an x11-motif vim-7.2.436 on it with:
> 
> >configure \
> >     --disable-darwin \
> >     --with-x \
> >     --enable-gui=motif \
> >     --enable-multibyte \
> >     --with-mac-arch=current \
> >     --with-features=huge
> 
> (having first installed openmotif via macports)
> 
> the configure output is attached in case it helps.
> 
> and i get the following compile error:
> 
> >  gcc -L/opt/local/lib -L/opt/local/lib -R/opt/local/lib   -L/usr/local/lib  
> >    -o vim objects/buffer.o objects/charset.o objects/diff.o 
> > objects/digraph.o objects/edit.o objects/eval.o objects/ex_cmds.o 
> > objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o 
> > objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o 
> > objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/main.o 
> > objects/mark.o objects/memfile.o objects/memline.o objects/menu.o 
> > objects/message.o objects/misc1.o objects/misc2.o objects/move.o 
> > objects/mbyte.o objects/normal.o objects/ops.o objects/option.o 
> > objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o 
> > objects/regexp.o objects/screen.o objects/search.o objects/spell.o 
> > objects/syntax.o  objects/tag.o objects/term.o objects/ui.o objects/undo.o 
> > objects/window.o objects/gui.o objects/gui_motif.o objects/gui_x11.o 
> > objects/pty.o objects/gui_beval.o objects/gui_xmdlg.o objects/gui_xmebw.o   
> >      objects/netbeans.o  objects/version.o  -lXp -lXmu -lXext -lXm -lXt 
> > -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -ldl -lm -lncurses  -liconv        
> >Undefined symbols:
> >  "_XpmReadFileToPixmap", referenced from:
> >      _check_xpm in gui_motif.o
> >  "_XpmFreeAttributes", referenced from:
> >      _check_xpm in gui_motif.o
> >      _gui_mch_init in gui_x11.o
> >  "_XpmReadFileToImage", referenced from:
> >      _gui_mch_register_sign in gui_x11.o
> >  "_XpmCreatePixmapFromData", referenced from:
> >      _gui_mch_dialog in gui_motif.o
> >      _gui_mch_init in gui_x11.o
> >ld: symbol(s) not found
> >collect2: ld returned 1 exit status
> >make[1]: *** [vim] Error 1
> >make: *** [first] Error 2
> 
> i have the following copies of libXpm:
> 
> >$ locate libXpm
> >/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/libXpm.4.11.0.dylib
> >/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/libXpm.4.dylib
> >/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/libXpm.dylib
> >/Developer/SDKs/MacOSX10.6.sdk/usr/X11/lib/libXpm.4.11.0.dylib
> >/Developer/SDKs/MacOSX10.6.sdk/usr/X11/lib/libXpm.4.dylib
> >/Developer/SDKs/MacOSX10.6.sdk/usr/X11/lib/libXpm.dylib
> >/usr/X11/lib/libXpm.4.11.0.dylib
> >/usr/X11/lib/libXpm.4.dylib
> >/usr/X11/lib/libXpm.dylib
> 
> (although i expect that only the one in /usr/X11 matters)
> 
> and they all contain all of the missing symbols:
> 
> >$ a=/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/libXpm.4.dylib
> >$ b=/Developer/SDKs/MacOSX10.6.sdk/usr/X11/lib/libXpm.4.dylib
> >$ c=/usr/X11/lib/libXpm.4.dylib
> >$ for lib in $a $b $c; do nm $lib | grep _XpmReadFileToPixmap; done
> >0000000000003870 T _XpmReadFileToPixmap
> >00000000000036ab T _XpmReadFileToPixmap
> >00000000000036a7 T _XpmReadFileToPixmap
> >$ for lib in $a $b $c; do nm $lib | grep _XpmFreeAttributes; done
> >0000000000000e30 T _XpmFreeAttributes
> >0000000000000e6a T _XpmFreeAttributes
> >0000000000000e66 T _XpmFreeAttributes
> >$ for lib in $a $b $c; do nm $lib | grep _XpmReadFileToImage; done
> >0000000000003730 T _XpmReadFileToImage
> >000000000000354e T _XpmReadFileToImage
> >000000000000354a T _XpmReadFileToImage
> >$ for lib in $a $b $c; do nm $lib | grep _XpmCreatePixmapFromData; done
> >0000000000002dd0 T _XpmCreatePixmapFromData
> >0000000000002ce1 T _XpmCreatePixmapFromData
> >0000000000002cdd T _XpmCreatePixmapFromData
> 
> the libraries all have lots of architectures:
> 
> >$ for lib in $a $b $c; do file $lib; done
> >/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/libXpm.4.dylib: Mach-O universal 
> >binary with 4 architectures
> >/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/libXpm.4.dylib (for architecture 
> >ppc7400):   Mach-O dynamically linked shared library stub ppc
> >/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/libXpm.4.dylib (for architecture 
> >ppc64):     Mach-O 64-bit dynamically linked shared library stub ppc64
> >/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/libXpm.4.dylib (for architecture 
> >i386):      Mach-O dynamically linked shared library stub i386
> >/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/libXpm.4.dylib (for architecture 
> >x86_64):    Mach-O 64-bit dynamically linked shared library stub x86_64
> >/Developer/SDKs/MacOSX10.6.sdk/usr/X11/lib/libXpm.4.dylib: Mach-O universal 
> >binary with 3 architectures
> >/Developer/SDKs/MacOSX10.6.sdk/usr/X11/lib/libXpm.4.dylib (for architecture 
> >x86_64):    Mach-O 64-bit dynamically linked shared library stub x86_64
> >/Developer/SDKs/MacOSX10.6.sdk/usr/X11/lib/libXpm.4.dylib (for architecture 
> >i386):      Mach-O dynamically linked shared library stub i386
> >/Developer/SDKs/MacOSX10.6.sdk/usr/X11/lib/libXpm.4.dylib (for architecture 
> >ppc7400):   Mach-O dynamically linked shared library stub ppc
> >/usr/X11/lib/libXpm.4.dylib: Mach-O universal binary with 3 architectures
> >/usr/X11/lib/libXpm.4.dylib (for architecture x86_64):  Mach-O 64-bit 
> >dynamically linked shared library x86_64
> >/usr/X11/lib/libXpm.4.dylib (for architecture i386):    Mach-O dynamically 
> >linked shared library i386
> >/usr/X11/lib/libXpm.4.dylib (for architecture ppc7400): Mach-O dynamically 
> >linked shared library ppc
> 
> i'm assuming that i'm compiling for x86_64 by default although uname says 
> i386:
> >$ uname -a
> >Darwin neddy 10.3.1 Darwin Kernel Version 10.3.1: Mon Mar 22 15:13:15 PDT 
> >2010; root:xnu-1504.3.52~1/RELEASE_I386 i386
> 
> any idea what i'm doing wrong?
> 
> cheers,
> raf
> 
> p.s. i also tried to install the motif variant of the vim macport
> (vim @7.2.433_0+motif+x11) and it installed "successfully" but
> without motif support in it.
> 
> -- 
> You received this message from the "vim_dev" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php

> /usr/local/src/vim72/src
> configure: creating cache auto/config.cache
> checking whether make sets $(MAKE)... yes
> checking for gcc... gcc
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables... 
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking how to run the C preprocessor... gcc -E
> checking for grep that handles long lines and -e... /usr/bin/grep
> checking for egrep... /usr/bin/grep -E
> checking for library containing strerror... none required
> checking for gawk... gawk
> checking for strip... strip
> checking for ANSI C header files... yes
> checking for sys/wait.h that is POSIX.1 compatible... yes
> configure: checking for buggy tools...
> - sh is       'GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
> Copyright (C) 2007 Free Software Foundation, Inc.' - probably OK.
> checking for BeOS... no
> checking for QNX... no
> checking for Darwin (Mac OS X)... yes
> checking --disable-darwin argument... yes, Darwin support excluded
> checking --with-mac-arch argument... current
> checking --with-developer-dir argument... not present
> checking for xcode-select... /usr/bin/xcode-select
> checking for developer dir using xcode-select... /Developer
> checking --with-local-dir argument... Defaulting to /usr/local
> checking --with-vim-name argument... Defaulting to vim
> checking --with-ex-name argument... Defaulting to ex
> checking --with-view-name argument... Defaulting to view
> checking --with-global-runtime argument... no
> checking --with-modified-by argument... no
> checking if character set is EBCDIC... no
> checking --disable-selinux argument... no
> checking for is_selinux_enabled in -lselinux... no
> checking --with-features argument... huge
> checking --with-compiledby argument... no
> checking --disable-xsmp argument... no
> checking --disable-xsmp-interact argument... no
> checking --enable-mzschemeinterp argument... no
> checking --enable-perlinterp argument... no
> checking --enable-pythoninterp argument... no
> checking --enable-tclinterp argument... no
> checking --enable-rubyinterp argument... no
> checking --enable-cscope argument... no
> checking --enable-workshop argument... no
> checking --disable-netbeans argument... no
> checking for socket in -lsocket... no
> checking for gethostbyname in -lnsl... no
> checking whether compiling netbeans integration is possible... yes
> checking --enable-sniff argument... no
> checking --enable-multibyte argument... yes
> checking --enable-hangulinput argument... no
> checking --enable-xim argument... defaulting to auto
> checking --enable-fontset argument... no
> checking for xmkmf... /opt/local/bin/xmkmf
> checking for X... libraries /opt/local/lib, headers /opt/local/include
> checking whether -R must be followed by a space... no
> checking for gethostbyname... yes
> checking for connect... yes
> checking for remove... yes
> checking for shmat... yes
> checking for IceConnectionNumber in -lICE... yes
> checking if X11 header files can be found... yes
> checking for _XdmcpAuthDoIt in -lXdmcp... yes
> checking for IceOpenConnection in -lICE... yes
> checking for XpmCreatePixmapFromData in -lXpm... no
> checking if X11 header files implicitly declare return values... no
> checking size of wchar_t is 2 bytes... no
> checking --enable-gui argument... Motif GUI support
> checking for location of Motif GUI includes... /opt/local/include
> checking --with-motif-lib argument... no
> checking for location of Motif GUI libs... /opt/local/lib
> checking for XShapeQueryExtension in -lXext... yes
> checking for wslen in -lw... no
> checking for dlsym in -ldl... yes
> checking for XmuCreateStippledPixmap in -lXmu... yes
> checking for XpEndJob in -lXp... yes
> checking for extra X11 defines... no
> checking X11/SM/SMlib.h usability... yes
> checking X11/SM/SMlib.h presence... yes
> checking for X11/SM/SMlib.h... yes
> checking X11/xpm.h usability... yes
> checking X11/xpm.h presence... yes
> checking for X11/xpm.h... yes
> checking X11/Sunkeysym.h usability... yes
> checking X11/Sunkeysym.h presence... yes
> checking for X11/Sunkeysym.h... yes
> checking for XIMText in X11/Xlib.h... yes
> X GUI selected; xim has been enabled
> checking for X11/Xmu/Editres.h... yes
> checking Xm/Xm.h usability... yes
> checking Xm/Xm.h presence... yes
> checking for Xm/Xm.h... yes
> checking Xm/XpmP.h usability... yes
> checking Xm/XpmP.h presence... yes
> checking for Xm/XpmP.h... yes
> checking Xm/JoinSideT.h usability... yes
> checking Xm/JoinSideT.h presence... yes
> checking for Xm/JoinSideT.h... yes
> checking Xm/TraitP.h usability... yes
> checking Xm/TraitP.h presence... yes
> checking for Xm/TraitP.h... yes
> checking Xm/Manager.h usability... yes
> checking Xm/Manager.h presence... yes
> checking for Xm/Manager.h... yes
> checking Xm/UnhighlightT.h usability... yes
> checking Xm/UnhighlightT.h presence... yes
> checking for Xm/UnhighlightT.h... yes
> checking Xm/Notebook.h usability... yes
> checking Xm/Notebook.h presence... yes
> checking for Xm/Notebook.h... yes
> checking for XpmAttributes_21 in Xm/XpmP.h... no
> checking whether toupper is broken... no
> checking whether __DATE__ and __TIME__ work... yes
> checking whether __attribute__((unused)) is allowed... yes
> checking elf.h usability... no
> checking elf.h presence... no
> checking for elf.h... no
> checking for dirent.h that defines DIR... yes
> checking for library containing opendir... none required
> checking stdarg.h usability... yes
> checking stdarg.h presence... yes
> checking for stdarg.h... yes
> checking stdlib.h usability... yes
> checking stdlib.h presence... yes
> checking for stdlib.h... yes
> checking string.h usability... yes
> checking string.h presence... yes
> checking for string.h... yes
> checking sys/select.h usability... yes
> checking sys/select.h presence... yes
> checking for sys/select.h... yes
> checking sys/utsname.h usability... yes
> checking sys/utsname.h presence... yes
> checking for sys/utsname.h... yes
> checking termcap.h usability... yes
> checking termcap.h presence... yes
> checking for termcap.h... yes
> checking fcntl.h usability... yes
> checking fcntl.h presence... yes
> checking for fcntl.h... yes
> checking sgtty.h usability... yes
> checking sgtty.h presence... yes
> checking for sgtty.h... yes
> checking sys/ioctl.h usability... yes
> checking sys/ioctl.h presence... yes
> checking for sys/ioctl.h... yes
> checking sys/time.h usability... yes
> checking sys/time.h presence... yes
> checking for sys/time.h... yes
> checking sys/types.h usability... yes
> checking sys/types.h presence... yes
> checking for sys/types.h... yes
> checking termio.h usability... no
> checking termio.h presence... no
> checking for termio.h... no
> checking iconv.h usability... yes
> checking iconv.h presence... yes
> checking for iconv.h... yes
> checking langinfo.h usability... yes
> checking langinfo.h presence... yes
> checking for langinfo.h... yes
> checking math.h usability... yes
> checking math.h presence... yes
> checking for math.h... yes
> checking unistd.h usability... yes
> checking unistd.h presence... yes
> checking for unistd.h... yes
> checking stropts.h usability... no
> checking stropts.h presence... no
> checking for stropts.h... no
> checking errno.h usability... yes
> checking errno.h presence... yes
> checking for errno.h... yes
> checking sys/resource.h usability... yes
> checking sys/resource.h presence... yes
> checking for sys/resource.h... yes
> checking sys/systeminfo.h usability... no
> checking sys/systeminfo.h presence... no
> checking for sys/systeminfo.h... no
> checking locale.h usability... yes
> checking locale.h presence... yes
> checking for locale.h... yes
> checking sys/stream.h usability... no
> checking sys/stream.h presence... no
> checking for sys/stream.h... no
> checking termios.h usability... yes
> checking termios.h presence... yes
> checking for termios.h... yes
> checking libc.h usability... yes
> checking libc.h presence... yes
> checking for libc.h... yes
> checking sys/statfs.h usability... no
> checking sys/statfs.h presence... no
> checking for sys/statfs.h... no
> checking poll.h usability... yes
> checking poll.h presence... yes
> checking for poll.h... yes
> checking sys/poll.h usability... yes
> checking sys/poll.h presence... yes
> checking for sys/poll.h... yes
> checking pwd.h usability... yes
> checking pwd.h presence... yes
> checking for pwd.h... yes
> checking utime.h usability... yes
> checking utime.h presence... yes
> checking for utime.h... yes
> checking sys/param.h usability... yes
> checking sys/param.h presence... yes
> checking for sys/param.h... yes
> checking libintl.h usability... no
> checking libintl.h presence... no
> checking for libintl.h... no
> checking libgen.h usability... yes
> checking libgen.h presence... yes
> checking for libgen.h... yes
> checking util/debug.h usability... no
> checking util/debug.h presence... no
> checking for util/debug.h... no
> checking util/msg18n.h usability... no
> checking util/msg18n.h presence... no
> checking for util/msg18n.h... no
> checking frame.h usability... no
> checking frame.h presence... no
> checking for frame.h... no
> checking sys/acl.h usability... yes
> checking sys/acl.h presence... yes
> checking for sys/acl.h... yes
> checking sys/access.h usability... no
> checking sys/access.h presence... no
> checking for sys/access.h... no
> checking sys/sysinfo.h usability... no
> checking sys/sysinfo.h presence... no
> checking for sys/sysinfo.h... no
> checking wchar.h usability... yes
> checking wchar.h presence... yes
> checking for wchar.h... yes
> checking wctype.h usability... yes
> checking wctype.h presence... yes
> checking for wctype.h... yes
> checking for sys/ptem.h... no
> checking for sys/sysctl.h... yes
> checking for pthread_np.h... no
> checking strings.h usability... yes
> checking strings.h presence... yes
> checking for strings.h... yes
> checking if strings.h can be included after string.h... yes
> checking whether gcc needs -traditional... no
> checking for an ANSI C-conforming const... yes
> checking for working volatile... yes
> checking for mode_t... yes
> checking for off_t... yes
> checking for pid_t... yes
> checking for size_t... yes
> checking for uid_t in sys/types.h... yes
> checking whether time.h and sys/time.h may both be included... yes
> checking for ino_t... yes
> checking for dev_t... yes
> checking for rlim_t... yes
> checking for stack_t... yes
> checking whether stack_t has an ss_base field... no
> checking --with-tlib argument... empty: automatic terminal library selection
> checking for tgetent in -lncurses... yes
> checking whether we talk terminfo... yes
> checking what tgetent() returns for an unknown terminal... non-zero
> checking whether termcap.h contains ospeed... yes
> checking whether termcap.h contains UP, BC and PC... yes
> checking whether tputs() uses outfuntype... no
> checking whether sys/select.h and sys/time.h may both be included... yes
> checking for /dev/ptc... no
> checking for SVR4 ptys... yes
> checking for ptyranges... pqrstuvw / 0123456789abcdef
> checking default tty permissions/group... can't determine - assume ptys are 
> world accessible
> world
> checking return type of signal handlers... void
> checking for struct sigcontext... yes
> checking getcwd implementation is broken... no
> checking for bcmp... yes
> checking for fchdir... yes
> checking for fchown... yes
> checking for fsync... yes
> checking for getcwd... yes
> checking for getpseudotty... no
> checking for getpwnam... yes
> checking for getpwuid... yes
> checking for getrlimit... yes
> checking for gettimeofday... yes
> checking for getwd... yes
> checking for lstat... yes
> checking for memcmp... yes
> checking for memset... yes
> checking for mkdtemp... yes
> checking for nanosleep... yes
> checking for opendir... yes
> checking for putenv... yes
> checking for qsort... yes
> checking for readlink... yes
> checking for select... yes
> checking for setenv... yes
> checking for setpgid... yes
> checking for setsid... yes
> checking for sigaltstack... yes
> checking for sigstack... no
> checking for sigset... yes
> checking for sigsetjmp... yes
> checking for sigaction... yes
> checking for sigvec... yes
> checking for strcasecmp... yes
> checking for strerror... yes
> checking for strftime... yes
> checking for stricmp... no
> checking for strncasecmp... yes
> checking for strnicmp... no
> checking for strpbrk... yes
> checking for strtol... yes
> checking for tgetent... yes
> checking for towlower... yes
> checking for towupper... yes
> checking for iswupper... yes
> checking for usleep... yes
> checking for utime... yes
> checking for utimes... yes
> checking for _LARGEFILE_SOURCE value needed for large files... no
> checking for special C compiler options needed for large files... no
> checking for _FILE_OFFSET_BITS value needed for large files... no
> checking for st_blksize... yes
> checking whether stat() ignores a trailing slash... no
> checking for iconv_open()... yes; with -liconv
> checking for nl_langinfo(CODESET)... yes
> checking for strtod in -lm... yes
> checking for strtod() and other floating point functions... yes
> checking --disable-acl argument... no
> checking for acl_get_file in -lposix1e... no
> checking for acl_get_file in -lacl... no
> checking for POSIX ACL support... yes
> checking for Solaris ACL support... no
> checking for AIX ACL support... no
> checking --disable-gpm argument... no
> checking for gpm... no
> checking --disable-sysmouse argument... no
> checking for sysmouse... no
> checking for FD_CLOEXEC... yes
> checking for rename... yes
> checking for sysctl... yes
> checking for sysinfo... not usable
> checking for sysinfo.mem_unit... no
> checking for sysconf... not usable
> checking size of int... 4
> checking whether memmove handles overlaps... yes
> checking whether X_LOCALE needed... yes
> checking for _xpg4_setrunelocale in -lxpg4... no
> checking how to create tags... ctags -t
> checking how to run man with a section nr... man -s
> checking --disable-nls argument... no
> checking for msgfmt... msgfmt
> checking for NLS... gettext() doesn't work
> checking dlfcn.h usability... yes
> checking dlfcn.h presence... yes
> checking for dlfcn.h... yes
> checking for dlopen()... yes
> checking for dlsym()... yes
> checking setjmp.h usability... yes
> checking setjmp.h presence... yes
> checking for setjmp.h... yes
> checking for GCC 3 or later... yes
> checking whether we need -D_FORTIFY_SOURCE=1... yes
> configure: updating cache auto/config.cache
> configure: creating auto/config.status
> config.status: creating auto/config.mk
> config.status: creating auto/config.h

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui