[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: problems under IRIX 6.2, 6.5



Kurt,

On Fri, 8 Jan 1999, Kurt D. Zeilenga wrote:

> At 05:32 PM 1/8/99 -0500, Don Badrak wrote:
> >However, now it is not performing at all.  It is *very* slow.  I haven't
> >changed the configuration files (same indexes).  I've tried it against DB
> >2.4.14, 2.5.9, 2.6.4, and then even went back to 2.3.16, and it's all the
> >same.
> 
> We currently are recommending Berkeley DB 2.3.16.  Our code for
> later versions is still experimental (in fact DB 2.6.4 itself
> is a BETA TEST).

Right, I've been reading that.  But, when I first went to DB 2.x, I went
to 2.4.14 with Umich 3.3 (plus some patches).  Today, with my current
database, a query like this:

	ldapsearch -h localhost department=geo\* mail >/dev/null

takes 1.87 seconds with the Umich-3.3+DB-2.4.14.  I just rebuild OpenLDAP
1.1.2 with DB-2.4.14 (after making the small db.c patch).  I get 20
seconds for the same query.  Same thing with 1.1.2 and DB-2.3.16.  BTW,
2.4.14 is the Sleepycat "stable" version.  Before I made the db.c patch,
it took 30 seconds.

These numbers are why I am reluctant to believe DB is the problem.  I put
1.1.2 and DB 2.3.16 on a very fast machine, and still the query took 6
seconds.  The same database on a slightly slower Sun running Solaris 2.6
took 0.87 seconds.

> >I tried it under IRIX 6.5 on a 225MHz R10000 Octane (well, all
> >Octanes are R10Ks).  Slow there, too.
> 
> You may be running into a DB2 bug.  Try applying our DB2 patch,
> here a link to the FAQ answer with details.
> 	http://www.openldap.org/faq/index.cgi?file=44
> 
> I assume all ldbm options are the same on all benched systems...

Yes.  And the same pthread library.

> >Here's how I configure the current release (1.1.2):
> >
> >   setenv CFLAGS "-I /usr/local/include"
> >   setenv LDFLAGS "-L/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib"
> >   setenv LDFLAGS "-Wl,-woff,84 -Wl,-woff,85 $LDFLAGS"
> >   setenv LIBS "-lbind -lpthread"
> 
> I don't recommend putting -lpthread in your $LIBS (or $LDFLAGS).
> If you let configure find -lpthread by itself then only those
> utilities requiring -lpthread will be linked with it.  But
> this isn't the problem.

If I remove that, it fails to find pthread_kill and pthread_join (both in
libpthread.so).  After some playing and investigation, I found that on
IRIX 6.2, if I include -lpthread in the LIBS variable, configure hangs on
the wait3() test.  If I remove it, it manages to find pthread_kill, but
won't link correctly.  I had to manually add -lpthread to
servers/{slapd,slurpd,slapd/tools}/Makefile.

Under IRIX 6.5, it doesn't find pthread_kill or pthread_join without
-lpthread on the LIBS line.  It doesn't hang in the wait3 like 6.2 does.
But, this way, as you say, everything is linked with -lpthread.  So I
configured with -lpthread in the LIBS, saved the include/portable.h,
reconfigured without it, used the previous portable.h, and manually added
-lpthread as above in IRIX 6.2.

One thing I noticed that was missing was -D_SGI_MP_SOURCE, which used to
exist in earlier versions of OpenLDAP in the
build/platforms/irix-gcc/Make-platform directory.

> Note: I can easily add a test for -lbind.  I just need to
> know what routine to test for.

__inet_ntoa() should do.  libresolv.a has this as inet_ntoa().  One of the
things I see most with people having problems with their links missing
__inet_ntoa is because of failure to use -lbind (the bind 8.1.2 library).
This is cheating, assuming a private routine, I know.  You can also check
the macro __RES to be at least 19960801.  I don't remember off the top of
my head when Bind 8 came out, but this sounds like a good date.  I can get
you a list of routines from libresolv.a (bind 4.9.x) and libbind.a (bind
8.x) if you want (or a better one to check).

> >BTW, using autoconf with a subdirectory (for multi-machine builds in the
> >same source tree) doesn't seem to work.  Something like:
> >
> >	mkdir r10k-irix-6.5
> >	cd r10k-irix-6.5
> >	../configure --srcdir=../ [other options]
> >
> >fails when you do a "make" with (from configure.log)
> 
> Not sure why it trying to link with libldap.la and liblber.la here.
> Check your LIBS and LDFLAGS.
> 
> I use ../configure (with or without the --srcdir argument) and
> it runs fine (on FreeBSD) and the system even builds correctly.
> However, mkdep doesn't work, but that's another issue.

make depend doesn't work for me, either.  I just did it again without the
--srcdir, and the tests directory is missing scripts and data (links), and
the man pages and other docs didn't get installed.

> >  configure:1765: gcc -o conftest -I /usr/local/include -I -I./include   -DHAVE_CONFIG_H     conftest.c -L/home/csb/dbadrak/build-local/openldap-1.1.2/ldap/libraries -lldif /home/csb/dbadrak/build-local/openldap-1.1.2/ldap/libraries/libldap/libldap.la /home/csb/dbadrak/build-local/openldap-1.1.2/ldap/libraries/liblber/liblber.la  -Wl,-woff,84 -Wl,-woff,85 -L/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -lbind 1>&5
> >  gcc: /home/csb/dbadrak/build-local/openldap-1.1.2/ldap/libraries/libldap/libldap.la: No such file or directory
> >  gcc: /home/csb/dbadrak/build-local/openldap-1.1.2/ldap/libraries/liblber/liblber.la: No such file or directory

Don
-- 
Don Badrak <dbadrak@census.gov>              301.457.1793 work
Telecommunications Office		     301.457.4438 fax
U.S. Bureau of the Census                    301.457.1828 fax
Suitland MD, USA