Closed Bug 107002 Opened 23 years ago Closed 21 years ago

Makefile.ref doesn't build on rh7.1 with readline

Categories

(Core :: JavaScript Engine, defect)

x86
Linux
defect
Not set
normal

Tracking

()

VERIFIED FIXED

People

(Reporter: rginda, Assigned: timeless)

Details

Attachments

(1 file)

I've been meaning to report this for a while, just keep patching my local tree
and forgetting about it :/

I seems that the default readline lib is not linked to ncurses anymore, this
patch fixes it for me.

Index: Makefile.ref
===================================================================
RCS file: /cvsroot/mozilla/js/src/Makefile.ref,v
retrieving revision 3.23
diff -u -r3.23 Makefile.ref
--- Makefile.ref        2001/03/09 04:02:36     3.23
+++ Makefile.ref        2001/10/26 20:02:34
@@ -112,7 +112,7 @@
 ifdef JS_READLINE
 # For those platforms with the readline library installed.
 DEFINES += -DEDITLINE
-PROG_LIBS += -lreadline
+PROG_LIBS += -lreadline -lncurses
 else
 ifdef JS_EDITLINE
 # Use the editline library, built locally.
Reassigning to Kenton and cc'ing others 
Assignee: rogerl → khanson
Target Milestone: --- → mozilla0.9.8
targeting future.
Target Milestone: mozilla0.9.8 → Future
I picked termcap while working on boffo, it's older and ncurses is a compatible
library.
.
Assignee: khanson → timeless
Target Milestone: Future → ---
Attachment #113666 - Flags: review?(rogerl)
Let me ask a question: how come I don't have any trouble building
the JS shell with RedHat 7.2? Is this a <7.2-specific problem ?
Comment on attachment 113666 [details] [diff] [review]
link against termcap

But given Phil's comment, is this a wontfix?
Attachment #113666 - Flags: review?(rogerl) → review+
because we don't use readline by default.

try:
JS_READLINE=1 make -f Makefile.ref
Status: NEW → ASSIGNED
checked in
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Summary: Makefile.ref doesn't build on rh7.1 → Makefile.ref doesn't build on rh7.1 with readline
Verified FIXED.

Following timeless' suggestion above, I defined JS_READLINE
when applying make, and I was able to see the original bug:


[/d/mozilla/js/src] make -f Makefile.ref JS_READLINE=1

       etc.
       etc.

gcc -o Linux_All_DBG.OBJ/js -Wall -Wno-format -DGCC_OPT_BUG -g -DXP_UNIX -DSVR4
-DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R -DX86_LINUX  -DDEBUG
-DDEBUG_pschwartau -DEDITLINE -ILinux_All_DBG.OBJ  Linux_All_DBG.OBJ/js.o
Linux_All_DBG.OBJ/libjs.a  -lm -Lfdlibm/Linux_All_DBG.OBJ -lfdm \
    -lreadline
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libreadline.so: undefined
reference to `tgetnum'
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libreadline.so: undefined
reference to `tgoto'
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libreadline.so: undefined
reference to `tgetflag'
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libreadline.so: undefined
reference to `BC'
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libreadline.so: undefined
reference to `tputs'
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libreadline.so: undefined
reference to `PC'
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libreadline.so: undefined
reference to `tgetent'
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libreadline.so: undefined
reference to `UP'
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libreadline.so: undefined
reference to `tgetstr'
collect2: ld returned 1 exit status
make[1]: *** [Linux_All_DBG.OBJ/js] Error 1
make[1]: Leaving directory `/d/mozilla/js/src'
make: *** [all] Error 2



After this fix was checked in, I was able to define JS_READLINE
and successfully build both the debug and opt JS shell on Linux.

My version of RedHat is 7.2
My version of gcc is 2.96
Status: RESOLVED → VERIFIED
Flags: testcase-
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: