Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 May 2005 10:34:24 -0600
From:      Greg Lewis <glewis@eyesbeyond.com>
To:        "Scott I. Remick" <scott@sremick.net>
Cc:        freebsd-java@freebsd.org
Subject:   Re: OS check fails on JDK 1.4 & FreeBSD 5.4R
Message-ID:  <20050526163424.GA99627@misty.eyesbeyond.com>
In-Reply-To: <pan.2005.05.26.16.04.34.914669@sremick.net>
References:  <pan.2005.05.22.18.40.12.945674@sremick.net> <200505221342.19274.vizion@vizion.occoxmail.com> <pan.2005.05.25.23.08.07.795801@sremick.net> <200505251623.55084.vizion@vizion.occoxmail.com> <pan.2005.05.26.03.50.59.597868@sremick.net> <20050526052502.GA90963@misty.eyesbeyond.com> <pan.2005.05.26.05.34.10.523080@sremick.net> <20050526145459.GA98285@misty.eyesbeyond.com> <pan.2005.05.26.16.04.34.914669@sremick.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--1yeeQ81UyVL57Vl7
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Thu, May 26, 2005 at 12:04:36PM -0400, Scott I. Remick wrote:
> On Thu, 26 May 2005 09:54:59 -0600, Greg Lewis wrote:
> 
> > That would be your problem then.  The test expects to use -lc_r on 5.x
> > and higher:
> > 
> > .if ${OSVERSION} > 500000
> > LINKIT= -lc_r
> > .else
> > LINKIT= -pthread
> > .endif
> 
> Isn't that backwards? The default threading library changed from libc_r to
> libpthread in 5.3

I don't know that its backwards, but it could probably use some help.
-lc_r became the official way early on in 5.x, but was reverted to
-pthread after 5.2.1.  So it was correct for a time, but is now out of
date.  I suspect that the variable should just go away and ${PTHREAD_LIBS}
should take its place.

> > However, you should have libc_r on 5.4:
> ...
> > So your machine would seem to be somewhat hosed unless you've
> > deliberately removed libc_r.

[explanation of removing libc_r snipped]

> So I guess I have 2 questions now:
> 
> 1) If libpthread is the new default, replacing libc_r, and you have to
> have all things linked to just one or the other, basically libc_r has been
> depreciated. How come the OS version check for JDK 1.4 wants libc_r if the
> OS > 5.0?

Because its old (see above).

> 2) What am I to do now, since the purging of all things libc_r when I
> upgraded to 5.3 is what ultimately fixed my system and has kept things
> running smoothly ever since?

You can do one of the following:

1. Try the attached patch.  This would be my preference since if it works
   I'll try and get it committed.
2. Turn on SKIP_OS_CHECK and eliminate the test altogether.

-- 
Greg Lewis                          Email   : glewis@eyesbeyond.com
Eyes Beyond                         Web     : http://www.eyesbeyond.com
Information Technology              FreeBSD : glewis@FreeBSD.org

--1yeeQ81UyVL57Vl7
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="Makefile.diff"

Index: Makefile
===================================================================
RCS file: /var/fcvs/ports/java/jdk14/Makefile,v
retrieving revision 1.90
diff -u -r1.90 Makefile
--- Makefile	11 May 2005 21:18:39 -0000	1.90
+++ Makefile	26 May 2005 16:31:42 -0000
@@ -184,17 +184,11 @@
 
 TESTPROG=testos
 
-.if ${OSVERSION} > 500000
-LINKIT=	-lc_r
-.else
-LINKIT=	-pthread
-.endif
-
 check-os:
 .if !defined(SKIP_OS_TEST)
 	-@mkdir -p ${WRKDIR} ; \
 	rm -f ${WRKDIR}/${TESTPROG} ; \
-	gcc ${LINKIT} -o ${WRKDIR}/${TESTPROG} \
+	gcc ${PTHREAD_LIBS} -o ${WRKDIR}/${TESTPROG} \
 		${FILESDIR}/${TESTPROG}.c > /dev/null 2>&1
 	@if [ ! -f ${WRKDIR}/${TESTPROG} ] ; \
 	then \

--1yeeQ81UyVL57Vl7--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050526163424.GA99627>