Ticket #189 (closed defect: fixed)

Opened 5 months ago

Last modified 2 months ago

runbuild.sh fails on RHEL5 with missing symbols in libreadline.so

Reported by: hudad01 Assigned to: rosan01
Priority: major Milestone: summer08
Component: compile Version: main
Keywords: Red Hat Enterprise 5, build, iyacc, libreadline Cc: A.C.Hudnott@warwick.ac.uk

Description

I did a checkout of main from SVN on 20 June 2008 on Red Hat Enterprise Linux Client 5 (Tikanga) and the build process failed using runbuild.sh. The first point of failure shown in the log is copied below.

Link /dcs/pg07/adrianh/workspace/ingres_main/build/bin/iyacc /dcs/pg07/adrianh/workspace/ingres_main/build/lib/libcompat.a(louniq.o): In function `LOuniq': louniq.c:(.text+0x17f): warning: the use of mktemp' is dangerous, better use mkstemp' /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../libreadline.so: undefined reference to `PC' /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../libreadline.so: undefined reference to `tgetflag' /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../libreadline.so: undefined reference to `tgetent' /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../libreadline.so: undefined reference to `UP' /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../libreadline.so: undefined reference to `tputs' /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../libreadline.so: undefined reference to `tgoto' /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../libreadline.so: undefined reference to `tgetnum' /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../libreadline.so: undefined reference to `BC' /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../libreadline.so: undefined reference to `tgetstr' collect2: ld returned 1 exit status

cc -rdynamic -o /dcs/pg07/adrianh/workspace/ingres_main/build/bin/iyacc /dcs/pg07/adrianh/workspace/ingres_main/src/front/tools/yacc/y1.o /dcs/pg07/adrianh/workspace/ingres_main/tools/lib/libyacc.a /dcs/pg07/adrianh/workspace/ingres_main/build/lib/libcompat.a -L/dcs/pg07/adrianh/workspace/ingres_main/build/lib -lpthread -lrt -lm -lc -lcrypt -ldl -lgcc_s -lreadline

...failed

The full log file is attached.

Attachments

jam_06_20_08_1755.log.gz (202.0 kB) - added by hudad01 on 06/21/08 10:34:38.
Log file from runbuild.sh

Change History

06/21/08 10:34:38 changed by hudad01

  • attachment jam_06_20_08_1755.log.gz added.

Log file from runbuild.sh

06/21/08 10:37:48 changed by hudad01

I should also add that the distribution named "Ingres 2006 Release 4 Alpha 9.3.0 build 119 Source Code" from http://www.ingres.com/downloads/community-editions.php builds fine on the same machine.

(follow-up: ↓ 3 ) 06/21/08 17:54:14 changed by rosan01

  • status changed from new to assigned.
  • owner changed from admin to rosan01.

Hi Adrian,

For this error, you're likely missing the readline development pacakge (readline-devel). I'm not 100%, but you likely require the readline static package as well since the server can be built with staticly linked libraries. Install should be fairly simple if you have yum.

While looking at your third party software from the default install, you'll likely also need kerberos, xerces, jam, and pax.

I don't have a RHEL5 machine handy myself but I'll try to find one so I can help find the precise package names and an appropriate repository for the ones not in the RHEL standard repository.

From the web (& some guesses based om Fedora), it looks like they may be the following:

yum install readline-devel yum install flex yum install jam yum install krb5-devel krb5-libs yum install pax

not sure about these on RHEL: yum install xerces-c xerces-c-devel yum install readline-static yum install jam

We'll get you going and then add the right packages to the pre-check to ensure everyo

(in reply to: ↑ 2 ) 06/24/08 11:08:36 changed by hudad01

Replying to rosan01: Thanks, but there is one problem with your otherwise excellent answer, which is that I don't have root access and therefore cannot run the package manager because the workstation in my office is university owned.

As I said, I did manage to build Ingres from the latest published community archive distribution, and I handled the other dependencies in that case as follows: jam: downloaded the source from Perforce and built. Kerberos: the distribution came with some header files and the binaries were already on the system path. Xerces: downloaded and built from source. Ingres seemed to want version 2.7 specifically. Is that still the version to use? pax: the distribution came with a special version patched by Ingres specifically for Linux.

So, it looks like I need to download the source for readline. Seems like a simple "configure" and "make" affair (I think?). Then Ingres will need to know where to find it. For that I put it in ~/lib and add that directory to LD_L

06/24/08 11:14:08 changed by hudad01

  • cc changed from Andrew Ross to A.C.Hudnott@warwick.ac.uk.
  • milestone changed from fall08 to summer08.

06/25/08 19:16:12 changed by rosan01

Hi Adrian,

One of my colleagues noticed an artifact from a change that wasn't intended to be submitted. I have cleaned it up in r116

This may not solve all the issues if your build isn't happy about the other third party software but a quick build will tell.

Andrew

09/28/08 17:58:53 changed by rosan01

  • status changed from assigned to closed.
  • resolution set to fixed.

I believe this ticket is resolved. Please re-open if I am mistaken. Thanks. - Andrew