James Carlson wrote:
> 
> Roland Mainz writes:
> > http://svn.genunix.org/repos/on/branches/ksh93/gisburn/prototype004/usr/src/cmd/ksh/Makefile.com
> 
> (Have there been any code reviews yet ... ?)

Some people looked ar various parts and suggested lots of changes - but
the test run makefile target is in constant flux to hunt down the
various bugs.

> In that file, I see the following:
> 
>                             export \
>                                 SHELL="$(SRC)/cmd/ksh/$(CMDTRANSMACH)/ksh" \
>                                 
> LD_LIBRARY_PATH="$(ROOT)/usr/lib/$(MACH64):$(ROOT)/usr/lib/" ; \
>                             sync ; sync ; \
> 
> Besides the errant 'sync' invocations -- which don't belong here under
> any circumstances, as they'll burden the build server for no reason --

... the "sync ; sync" was added to figure out whether the build machine
at Sun triggers some test suite issues via excessive paging (which
wasn't the problem and that stuff will go away).

> this use of LD_LIBRARY_PATH cannot stand.
> 
> There's no guarantee whatsoever that the libraries and binaries found
> in the proto area (under $ROOT) can or will actually run on the build
> machine.  In fact, we can guarantee that they WILL NOT run correctly
> when there are libc/kernel flag days.

Why is "perl" then allowed to run their compiled binary as part of the
build ? It seems that this rule is bend very often during the build (I
don't say it's Ok - but there are cases where it may be unavoidable (see
below (I am not referring to the test suite here))).

BTW: The ksh93 binaries build up to Nevada B48 (beyond that point we
started to use |nanosleep()| which was previously in librt and now in
libc ; the current binaries still run on Solaris 10 via putting
LD_PRELOAD=librt.so.1 that the binary finds the required symbols in
librt) were able to run on Solaris 10 - the code doesn't use much
special features of the operating system as it is designed to be very
portable and it is IMO unlikely to run into problems (as it surrived all
flag days between Solaris 10 Update 1 and Nevada B48).

> This is why, in the very, very rare cases where we must produce
> binaries to be executed on the build system, we use a separate set of
> targets and symbols.  See NATIVE_CFLAGS, NATIVE_MACH, NATIVECC, and
> the related bits in $SRC/Makefile.master.

I think we have a problem then if we cannot use LD_LIBRARY_PATH - the
code which generates the localisation catalogs is actually a set of
ksh93 shell scripts. In theory we can avoid this after the putback since
then the underlying build machines will have ksh93 installed after some
Nevada build cycles... but for now it is almost unavoidable to run ksh93
as part of the build.

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 7950090
 (;O/ \/ \O;)

Reply via email to