Re: CVS commit: src/share/mk

2014-01-23 Thread Alan Barrett

On Tue, 21 Jan 2014, Matt Thomas wrote:

Module Name:src
Committed By:   matt
Date:   Tue Jan 21 16:40:24 UTC 2014

Modified Files:
src/share/mk: bsd.own.mk

Log Message:
Make MKGCCCMDS default mirror MKGCC.  (if MKGCC is no, MKGCCCMDS must be no).


If that's true, then please adjust bsd.README to say so.
Currently, they are documented as being independent (but there
seem to be some accidental yes/no inversions in the documentation).

--apb (Alan Barrett)


Re: CVS commit: src/share/mk

2014-01-23 Thread Taylor R Campbell
   Date: Thu, 23 Jan 2014 03:11:14 +
   From: Taylor R Campbell campbell+netbsd-source-change...@mumble.net

  Date: Wed, 22 Jan 2014 13:15:44 -0500
  From: chris...@zoulas.com (Christos Zoulas)

  On Jan 22,  7:29am, m...@3am-software.com (Matt Thomas) wrote:
  -- Subject: Re: CVS commit: src/share/mk

  | I always wondered why we don't use ln -sf
  | and avoid the race.

  That does not work because if the destnation is a directory it will
  try to link in the destination directory... (I tried). This is why
  I suggested that it needs to be done differently.

   ln -sfh?

   As an aside, it would be nice if there were an easy way to create a
   symlink at a temporary location and rename it over the permanent one.
   `ln -sfh' will unlink instead, and mv(1) is too smart for its own good
   about directories to be able to rename over a symlink reliably...

Disregard me -- `ln -sfh' is just as bad as the other race precisely
because of the unlink/symlink sequence, and `-h' is not POSIX to boot.
If we do add a TOOL_LN, we ought to implement a symlink-to-temporary
rename-to-permanent operation so that it actually doesn't race.


Re: CVS commit: src/share/mk

2014-01-23 Thread Masao Uebayashi
Is this all about symlink-to-directory in an OBJDIR, right?  My theory
is that directory creation in OBJDIR is all wrong...

Kernel build *should* include static headers in $DESTDIR (#include
foo.h) or generated headers (#include foo.h) IMO.


Re: CVS commit: src/share/mk

2014-01-23 Thread Masao Uebayashi
Sorry that I was lost, but I still believe that
creating-directories-as-make-target is to avoid.  Is there any
counter-example (use case) where it should be there?

On Fri, Jan 24, 2014 at 1:30 AM, Izumi Tsutsui tsut...@ceres.dti.ne.jp wrote:
 Is this all about symlink-to-directory in an OBJDIR, right?  My theory
 is that directory creation in OBJDIR is all wrong...

 Kernel build *should* include static headers in $DESTDIR (#include
 foo.h) or generated headers (#include foo.h) IMO.

 bsd.klinks.mk is used only for standalone programs
 and it should not require installed DESTDIR.

 For kernel builds, config(1) creates symlinks in compile dirs.

 ---
 Izumi Tsutsui


Re: CVS commit: src/share/mk

2014-01-23 Thread Izumi Tsutsui
 Is this all about symlink-to-directory in an OBJDIR, right?  My theory
 is that directory creation in OBJDIR is all wrong...
 
 Kernel build *should* include static headers in $DESTDIR (#include
 foo.h) or generated headers (#include foo.h) IMO.

bsd.klinks.mk is used only for standalone programs
and it should not require installed DESTDIR.

For kernel builds, config(1) creates symlinks in compile dirs.

---
Izumi Tsutsui


Re: CVS commit: src/distrib/sets

2014-01-23 Thread Masao Uebayashi
I agree that in an ideal reproducible world timestamp (== physical
time and its order) has no value.  But it is useful to detect
unnecessary rebuild - reproducible but built repeatedly 
unnecessarily.  I see some value in it.

On Fri, Jan 24, 2014 at 6:45 AM, Alan Barrett a...@netbsd.org wrote:
 Module Name:src
 Committed By:   apb
 Date:   Thu Jan 23 21:45:27 UTC 2014

 Modified Files:
 src/distrib/sets: Makefile

 Log Message:
 Remove time= keywords from METALOG.sanitised.

 The times add unnecessary differences to the DESTDIR trees for MKREPRO
 builds, and they are not needed by anything.  (maketars, the chief
 consumer of METALOG.sanitised, explicitly ignores the time fields.)

 Also factor out some duplicated code and update comments.


 To generate a diff of this commit:
 cvs rdiff -u -r1.91 -r1.92 src/distrib/sets/Makefile

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.



re: CVS commit: src/sys/opencrypto

2014-01-23 Thread matthew green

 Log Message:
 Implement in-module ref-counting, and do not allow auto-unload if there
 are existing references.
 
 Note that manual unloading is not prevented.
 
 OK christos@
 
 XXX Also note that there is still a small window where the ref-count can
 XXX be decremented, and then the process/thread preempted.  If auto-unload
 XXX happens before that thread can return from the module's code, bad
 XXX things (tm) could happen.

in this case, please simply disallow unload for this module always.
if the race is fixed, it can be enabled again.


.mrg.


re: CVS commit: src/share/mk

2014-01-23 Thread matthew green

 Module Name:  src
 Committed By: christos
 Date: Wed Jan 22 15:19:05 UTC 2014
 
 Modified Files:
   src/share/mk: bsd.klinks.mk
 
 Log Message:
 For now, ignore errors from creating klinks. This is racy and you can get
 it to trigger in 1/4 of the builds with -j 40 on a 24 processor box. Typical
 error is:
 
 ln: machine/include: File exists
 *** Failed target:  .BEGIN
 *** Failed command: rm -f machine  ln -s 
 /p/netbsd/cvsroot/src/sys/arch/vax/include machine
 *** Error code 1
 Stop.
 
 Another approach to fixing this is to create a lockfile or adding other flags
 to ln to change its behavior.

make ${SRCS} depend upon machine?  ie, fix this by fixing the
dependancies?


.mrg.


re: CVS commit: src/share/mk

2014-01-23 Thread matthew green

 Is this all about symlink-to-directory in an OBJDIR, right?  My theory
 is that directory creation in OBJDIR is all wrong...
 
 Kernel build *should* include static headers in $DESTDIR (#include
 foo.h) or generated headers (#include foo.h) IMO.

the kernel build 100% does not and should not depend upon $DESTDIR.


.mrg.


Re: CVS commit: src/share/mk

2014-01-23 Thread Masao Uebayashi
How about kernel modules?

On Fri, Jan 24, 2014 at 1:00 PM, matthew green m...@eterna.com.au wrote:

 Is this all about symlink-to-directory in an OBJDIR, right?  My theory
 is that directory creation in OBJDIR is all wrong...

 Kernel build *should* include static headers in $DESTDIR (#include
 foo.h) or generated headers (#include foo.h) IMO.

 the kernel build 100% does not and should not depend upon $DESTDIR.


 .mrg.


re: CVS commit: src/share/mk

2014-01-23 Thread matthew green

 How about kernel modules?

exactly the same.

our userland does not have anything useful for building
kernel code.  you _need_ the kernel source tree, and it
is bascially self-contained in src/sys (sans the src/common
problem we haven't fixed yet, and config(1).)

this is very much by design.

 On Fri, Jan 24, 2014 at 1:00 PM, matthew green m...@eterna.com.au wrote:
 
  Is this all about symlink-to-directory in an OBJDIR, right?  My theory
  is that directory creation in OBJDIR is all wrong...
 
  Kernel build *should* include static headers in $DESTDIR (#include
  foo.h) or generated headers (#include foo.h) IMO.
 
  the kernel build 100% does not and should not depend upon $DESTDIR.
 
 
  .mrg.


.mrg.