aMule Forum
English => Compilation problems => Topic started by: xushi on May 19, 2005, 08:31:44 AM
-
Hi all,
This is a weird issue that only started with 2.0.1, and the latest CVS snapshots on my solaris machine..
./configure no longer works properly. It reaches gettext, sees it, even prints the version of autopoint, but insists that i don't have it installed ?(
checking for libpng version >= 1.2.0... yes (version 1.2.5)
checking gd.h usability... no
checking gd.h presence... no
checking for gd.h... no
configure:
WARNING: libpng-devel >= 1.2.0 is needed for amuleweb
checking whether we need the GUI... yes
checking for wx-config... /usr/bin/wx-config
checking for wxWidgets version >= 2.4.2... yes (version 2.6.0)
configure: WARNING: wxWidgets >=2.5.0: Using wx-config --libs base,net
checking for GUI toolkit to use... -I/usr/lib/wx/include/gtk-ansi-release-2.6 -I/usr/include/wx-2.6 -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -DNO_GCC_PRAGMA
./configure: line 6451: test: too many arguments
checking whether to use embedded Crypto... yes
checking for bfd headers... yes
checking for autopoint... ./configure: line 7468: test: too many arguments
no (/usr/bin/autopoint (GNU gettext-tools) 0.14.1)
configure: error: You need to install GNU gettext/gettext-tools to compile aMule
root@yooniks:/download/amule-cvs#
-
make sure you are using GNU sed instead of SUN sed. For that, symlink gsed to sed somewhere in your path, and try the ./configure again. Same for autopoint, symlinkg gautopoint to autopoint
Regards.
-
Doh,
I've simlinked all of them, but sed was the only one the machine insisted on using Sun's version and not the GNU one.. :)
/me double checks all simlinks again..
Anyway, i'll keep you updated on the other make problem, and i'll see about Sun's compiler too.
-
Solved the configure problem by installing the latest gettext from pkgsrc to get autopoint. Using NetBSD 2.0 and the system gettext don't seem contain it.
-
Thanks, xushi it would be nice trying to compile using the SUN compilers. Also, it would be nice if aMule would compile using the SUN tools, not only with the GNU ones (especially sed, grep and gettext)
Regards.
-
Hi,
at least it already works with the Solaris make :) Does anyone of you two have the SUN C Compiler? Where can I get it?
Greets,
André
-
I believe you can find it on your Solaris CD if not installed already.
-
The thing is, i'm trying to get atleast one successful compile on the sun with the GNU tools. It just wont work. I keep getting a new error every day.
Currently, in make, i get
ld: fatal: library -lbfd: not found
6 -lwx_gtk_qa-2.6 -lwx_gtk_html-2.6 -lwx_gtk_adv-2.6 -lwx_gtk_core-2.6 -lwx_base_xml- 2.6 -lwx_base_net-2.6 -lwx_base-2.6 -lz -lresolv -lnsl -lbfd -liberty -lgen
ld: fatal: library -lbfd: not found
ld: fatal: File processing errors. No output written to amule
collect2: ld returned 1 exit status
make[3]: *** [amule] Error 1
make[3]: Leaving directory `/export/home/xushi/stuff/aMule-2.0.1/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/export/home/xushi/stuff/aMule-2.0.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/export/home/xushi/stuff/aMule-2.0.1'
make: *** [all] Error 2
xushi@yooniks:~/stuff/aMule-2.0.1$
Same with the CVS. If i can get this all to work, then i can move to the SUN Tools, and the Studio 10.
-
bfd library comes in binutils. Install it, either from blastwave or from Companion CD.
Regards.
-
Hmm, I've installed all of SUNWbinutils, SUNWbinutilsS from solaric CDs, and binutils from blastwave. I still get the make error, and searching for the library yields no results.. =/
# find / -name \*lbfd\* -print
EDIT:
The closest i can find is
/opt/csw/lib/libbfd.a
/opt/csw/lib/libbfd.la
/opt/csw/include/bfd.h
/opt/csw/include/bfdlink.h
EDIT 2:
in ./configure output
checking for bfd headers... yes
So it can see it.. bah.. why ?(
-
Maybe it has /opt/csw/include in the include dirs but no /opt/csw/lib in the libdirs.
Try adding -L/opt/csw/lib to the LDFLAGS environment variable?
-
Originally posted by Nodsu
Maybe it has /opt/csw/include in the include dirs but no /opt/csw/lib in the libdirs.
Try adding -L/opt/csw/lib to the LDFLAGS environment variable?
Do you mean adding it to the Makefile? LDFLAGS = -lpthread -L/opt/csw/lib
If yes, that didn't do anything =/
EDIT:
======
I think using
./configure --with-this --with-that LDFLAGS=-L/usr/local/lib && make
did the job, but i'm working on another error at the moment (yes folks, 7th error now.. it never ends).. =)
Will keep you updated.
-
if you read my guide, yiou will notice this:
7. Set these two environment wariables:
CPPFLAGS='-I /opt/csw/include'
LD_LIBRARY_PATH=/usr/local/lib:/opt/csw/lib:/usr/sfw/lib:/usr/lib
LD_LIBRARY_PATH does the trick for you.
Regards.
-
It never did.. that's the problem. =)
I eventually had to do
./configure LDFLAGS=-L/usr/local/lib
But the problem in the end turnd out to be that the bfd library was in /usr/local/lib, and sun doesn't like that directory for libraries..
Default Library Path (ELF): /lib:/usr/lib (system default)
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (system default)
I had to create simlinks of the libraries to /usr/lib for now.
I know in linux i use ld.so.conf to configure the library paths, but from what i can see that's not the same in Solaris. And running crle told me default configuration file not found... And asking around, i was told to stay away from /usr/local/bin and /usr/local/lib
-
Hmm...strange...I have never read anything about staying away from /usr/local...no idea why they could tell that. Have you asked on a solaris mail list or forums? because I would be very interested in knowing the reasons why they tell that...and I have found that the solution to the missing ldconfig in solaris, is something like adding "-R/your/library/path" to the compilation (or linking) stage, but I have never done such thing, therefore I always need to declare LD_LIBRARY_PATH before launching my amule (in fact, I made an script which declares that only for amule ;))
Regards.
-
skolnick, i got the information from a friend who directed me to
man filesystem
quote /usr/local
Not part of the SVR4-based Solaris distribution. The
/usr directory is exclusively for software bundled with
the Solaris operating system. If needed for storing
machine-local add-on software, create the directory
/opt/local and make /usr/local a symbolic link to
/opt/local. The /opt directory or filesystem is for
storing add-on software to the system.
-
Well, i've finally managed to get amule running on my system. I'm using Solaris 10 sparc, GNU compilers (soon to be changed to the sun suite), and wxGTK 2.6. With the current CVS, i used
./configure --enable-amulecmd --enable-webserver --disable-monolithic --enable-amule-daemon --enable-optimise --enable-gtk
and
--enable-gtk2
Compiling takes around 25 min... but all work fine, however,
--enable-amule-daemon
gives an error
ds -lwx_base-2.6 -lwx_base_net-2.6 -lz -lresolv -lnsl -lbfd -liberty -lgen
Undefined first referenced
symbol in file
nanosleep amuled-AICHSyncThread.o (symbol belongs to implicit dependency /usr/lib/librt.so.1)
ld: fatal: Symbol referencing errors. No output written to amuled
collect2: ld returned 1 exit status
make[3]: *** [amuled] Error 1
make[3]: Leaving directory `/export/home/xushi/stuff/amule-cvs/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/export/home/xushi/stuff/amule-cvs/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/export/home/xushi/stuff/amule-cvs'
make: *** [all] Error 2
xushi@yooniks:~/stuff/amule-cvs$
Its a new one, so i didn't have time to look for the solution, so currently i just ignore that prefix.
The previous problem, Undefined first referenced
symbol in file
XParseGeometry amule-amule-gui.o (symbol belongs to implic it dependency /usr/lib/libX11.so.4)
ld: fatal: Symbol referencing errors. No output written to amule
collect2: ld returned 1 exit status
EDIT:
======
The problem still exists here.. hmm =/ for a quick solution (and i dont think its the best one out there), just comment out this line in src/amule-gui.cpp XParseGeometry(unicode2char(geom_string), &geometry_x, &geometry_y, &geometry_width, &geometry_height);
Most of the other 15 odd problems i had were my machine's fault in sticking libraries everywhere but the required place..
I'll keep testing, and keep you all updated. Will switch to the Sun compiler suite soon.
-
ohh...that filesystem info was really useful, xushi! I had no idea of such thing, but I'll correct my filesystem layout ASAP. BTW: nice to read you got amule running on your SPARC system, and I hope my advices were useful and not misleading.
Also, I thought the --enable-gtk2 was a wxGTK switch, not an amule one... ?(
Regards.
-
Heh, i took alot of advice from you skolnick =) Your guide was very useful. When i have the time, i'll try and contribute some errors and solutions to it if you like.
Also, I thought the --enable-gtk2 was a wxGTK switch, not an amule one... Confused
Hmm, you're quite right.. I didn't realise that, and from what i see in the configure file, there's isn't even any --enable-gtk or --enable-gtk2 ..
I think i've already compiled wxGTK with --enable-gtk2, but recompiling again will be faster than finding out if i did or not :) So more updates later on tonight..
I just want to sort out that amuled-AICHSyncThread.o issue, then i'm going to make a move to Sun's studio and compiler.
And btw skolnick, feel free to use my system for any testing you'd like to do at any time.
-
Originally posted by xushi
Heh, i took alot of advice from you skolnick =) Your guide was very useful. When i have the time, i'll try and contribute some errors and solutions to it if you like.
Glad it was useful. Of course, any suggestion or error correction you have, PM me and I'll correct the original post. Of course, all credits will go to you ;)
Originally posted by xushi
I think i've already compiled wxGTK with --enable-gtk2, but recompiling again will be faster than finding out if i did or not :) So more updates later on tonight..
you can use wx-config to know which parameters you used to compile wxGTK. Don't remember now which parameter should you give to it (--libs, maybe) but it can be done.
Originally posted by xushi
I just want to sort out that amuled-AICHSyncThread.o issue, then i'm going to make a move to Sun's studio and compiler.
And btw skolnick, feel free to use my system for any testing you'd like to do at any time.
I can't help you on this one, since I know not enough C++ to even understand the code :(
Regards.
-
If i can trouble you for a moment, wxGTK 2.6 is being a b*ch on solaris. It says
checking for GTK+ - version >= 2.0.0... no
*** Could not run GTK+ test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GTK+ is incorrectly installed.
configure: error:
The development files for GTK+ were not found. For GTK+ 2, please
ensure that pkg-config is in the path and that gtk+-2.0.pc is
installed. For GTK+ 1.2 please check that gtk-config is in the path,
and that the version is 1.2.3 or above. Also check that the
libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
--libs' are in the LD_LIBRARY_PATH or equivalent.
Now i know for a fact that GTK2 is installed, along with the devl package
root@yooniks:/download/wxGTK-2.6.0# pkginfo | grep gtk
system CSWgtk gtk - the Gimp ToolKit library, libgtk
application CSWgtk2 gtk2 - GTK+, The GIMP Toolkit
application CSWgtkspell gtkspell - Spell checking enhancement for the GtkTextView widget
# find / -name \*gtk+-2.0.pc -print
/usr/lib/sparcv9/pkgconfig/gtk+-2.0.pc
/usr/lib/pkgconfig/gtk+-2.0.pc
# which pkg-config
/usr/bin/pkg-config
I'm using the following prefexes
./configure --prefix=/usr --with-gtk --enable-unicode --disable-compat24 --enable-optimise && make
I tried adding --with-gtk-exec-prefix=/usr/bin
--with-gtk-prefix=/usr
--with-gtk-prefix=/opt/csw
and none of them solve the problem =/
EDIT: My config.log is here
http://xushi.co.uk/xushi/config.log
Edit 2: Hmm, Pho3nix spotted this on irc, configure:24476: gcc -o conftest -mt -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/openwin/include -I/usr/sfw/include -I/usr/sfw/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES conftest.c -mt -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lmlib -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread
-2.0 -lglib-2.0 >&5
cc1: error: invalid option `t'
cc1: error: invalid option `t'
$ pkg-config --cflags gtk+-2.0
-DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
heh
no mt here.
-
no bother for me at all, I've seen the exact same failure here, that's why my amule on solaris is linked against GTK1 only (no unicode available with GTK1 :(). If you check the config.log file, you will see that when it checks for GTK2 and fails, the reason for failing is not the absence of GTK2, is that in the compilation command of the test program, there is an "unknown option m" specified. Searching in google, I found that seems to be a thread model in some architecture/OS, but in solaris should be pthread instead of m, so that's the failure (at least on my system, YMMV) that could be a start point for your investigation on this GTK2 issue.
Regards.