Automated report: NetBSD-current/i386 build failure

2016-06-07 Thread NetBSD Test Fixture
This is an automatically generated notice of a NetBSD-current/i386
build failure.

The failure occurred on babylon5.netbsd.org, a NetBSD/amd64 host,
using sources from CVS date 2016.06.07.06.14.18.

An extract from the build.sh output follows:

acket/build/2016.06.07.06.14.18-i386/src/sys/fs/msdosfs 
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/sbin/newfs_msdos 
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/sys 
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/sys/fs/udf 
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/sbin/newfs_udf 
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/sbin/fsck -D_KERNTYPES  -c
/tmp/bracket/build/2016.06.07.06.14.18-i386/src/sys/dev/clock_subr.c
--- dependall-external ---
/tmp/bracket/build/2016.06.07.06.14.18-i386/tools/bin/i486--netbsdelf-gcc 
-O2   -std=gnu99-Werror   -fPIE   
--sysroot=/tmp/bracket/build/2016.06.07.06.14.18-i386/destdir -DNETBSD4 
-DUSE_SASL_AUTH  
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/ibm-public/postfix/dist/src/util
  
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/ibm-public/postfix/dist/src/dns
 
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/ibm-public/postfix/dist/src/global
  
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/ibm-public/postfix/dist/src/master
 
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/ibm-public/postfix/dist/src/util
  
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/ibm-public/postfix/dist/src/tls
 
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/ibm-public/postfix/dist/src/milter
  
-I/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/ibm-public/postfix/dist/src/xsasl
   -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovec
 ot\" -DUSE_SASLC_SASL -DDEF_CL--- dependall-gpl2 ---
--- CW ---
#create  devcp1047/CW
(charwidth=`expr 240 / 10` ;  
/tmp/bracket/build/2016.06.07.06.14.18-i386/tools/bin/nbsed -e "s/^name 
[A-Z]*$/name CW/"  -e "s/^\\([^   ]*\\)   [0-9]+  /\\1$charwidth  
/"  -e "s/^spacewidth [0-9]+$/spacewidth $charwidth/"  -e "s/^internalname 
.*$/internalname CW/"  -e "/^internalname/s/BI/3/"  -e "/^internalname/s/B/2/"  
-e "/^internalname/s/I/1/"  -e "/^internalname .*[^ 0-9]/d"  
/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/gpl2/groff/dist/font/devcp1047/R.proto
 >CW)
--- dependall-ibm-public ---
IENT_SASL_TYPE=\"saslc\" -DUSE_TLS -DHAS_SQLITE -DHAS_LDAP 
-DDEF_HTML_DIR=\"/usr/share/doc/reference/ref8/postfix\"  
-DDEF_README_DIR=\"/usr/share/examples/postfix\"  
-DDEF_SAMPLE_DIR=\"/usr/share/examples/postfix\"  
-DDEF_MANPAGE_DIR=\"/usr/share/man\"  -c
/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/ibm-public/postfix/dist/src/util/vstream.c
 -o vstream.o
--- dependall-gpl2 ---
--- R ---
#create  devcp1047/R
(charwidth=`expr 240 / 10` ;  
/tmp/bracket/build/2016.06.07.06.14.18-i386/tools/bin/nbsed -e "s/^name 
[A-Z]*$/name R/"  -e "s/^\\([^]*\\)   [0-9]+  /\\1$charwidth  
/"  -e "s/^spacewidth [0-9]+$/spacewidth $charwidth/"  -e "s/^internalname 
.*$/internalname R/"  -e "/^internalname/s/BI/3/"  -e "/^internalname/s/B/2/"  
-e "/^internalname/s/I/1/"  -e "/^internalname .*[^ 0-9]/d"  
/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/gpl2/groff/dist/font/devcp1047/R.proto
 >R)
--- DESC ---
#create  devcp1047/DESC
/tmp/bracket/build/2016.06.07.06.14.18-i386/tools/bin/nbsed -e "s/^res 
.*$/res 240/"  -e "s/^hor .*$/hor `expr 240 / 10`/"  -e "s/^vert .*$/vert `expr 
240 / 6`/"  -e "s/^fonts .*$/fonts `set R I B BI S L CW; echo $#` R I B BI S L 
CW/"  
/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/gpl2/groff/dist/font/devcp1047/DESC.proto
 >DESC
echo "image_generator gs" >>DESC
--- dependall-devdvi ---
dependall ===> external/gpl2/groff/font/devdvi
--- dependall-bsd ---
cc1: all warnings being treated as errors
*** [dhcp-common.o] Error code 1
nbmake[10]: stopped in 
/tmp/bracket/build/2016.06.07.06.14.18-i386/src/external/bsd/dhcpcd/sbin/dhcpcd
1 error

The following commits were made between the last successful build and
the failed build:

2016.06.07.05.57.53 mrg 
src/external/gpl3/gcc/dist/libstdc++-v3/include/bits/uniform_int_dist.h,v 1.1
2016.06.07.05.58.19 mrg 
src/external/gpl3/gcc/dist/gcc/config/s390/2964.md,v 1.1
2016.06.07.06.14.16 mrg src/external/gpl3/gcc/dist/LAST_UPDATED,v 1.8
2016.06.07.06.14.16 mrg src/external/gpl3/gcc/dist/MD5SUMS,v 1.8
2016.06.07.06.14.16 mrg src/external/gpl3/gcc/dist/NEWS,v 1.6
2016.06.07.06.14.16 mrg src/external/gpl3/gcc/dist/gcc/ChangeLog,v 1.14
2016.06.07.06.14.16 mrg src/external/gpl3/gcc/dist/gcc/alias.c,v 1.3
2016.06.07.06.14.16 mrg src/external/gpl3/gcc/dist/gcc/builtins.c,v 1.9
2016.06.07.06.14.16 mrg src/external/gpl3/gcc/dist/gcc/cfgexpand.c,v 1.7
2016.06.07.06.14.16 mrg src/external/gpl3/gcc/dist/gcc/common.opt,v 1.5
2016.06.07.06.14.16 mrg 

Re: gcc 5.3 version of libasan is broken

2016-06-07 Thread Rin Okuyama

On 2016/06/07 8:58, Christos Zoulas wrote:

This is what I was thinking. Perhaps it is easier to use syscall for ILP32
and __syscall for LP64. But then there is lseek...


Yes. And it fails for LP64BE. I made the revised patch, where 3 kinds of
internal_syscall macros are provided for different types of retval:

  - internal_syscall for 32-bit length (int, pid_t)
  - internal_syscall64   for 64-bit length (off_t)
  - internal_syscall_ptr for pointer and (s)size_t

This seems a little messy, but it is a reliable and simple solution for
sharing codes between ILP32 and LP64 / LE and BE. I tested that libasan
works just fine for amd64, i386, and earmv7hf-eb; it detects a buffer
overflow like this:

  #include 
  #include 
  int main()
  {
char *dest, *from = "123";

dest = malloc(3);
strcpy(dest, from);
return 0;
  }

I also checked libubsan on amd64, i386, and earmv7hf-eb. It can detect
an undefined operation like this:

  int main()
  {
int i = 1, j = 0;
return i / j;
  }

I expect that it maybe works also for LP64BE though I could not test.

On 2016/06/07 8:57, Christos Zoulas wrote:

Are you sure this works for 64 bit? I am worried about the (long)0, padding.


Yes. I checked. The padding for mmap(2) is long:
https://nxr.netbsd.org/source/xref/src/sys/sys/syscallargs.h#1215

I also checked and reorganized arguments for other syscalls in the
attached patch.

I did not test on GCC 5.4. But I suppose that it should work because
no syscall-related changes were made for libsanitizer.

Thanks,
Rin

--- 
./src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_syscall_generic.inc.orig
   2016-06-07 16:36:47.544537652 +0900
+++ 
./src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_syscall_generic.inc
2016-06-07 19:25:02.083848571 +0900
@@ -25,7 +25,22 @@
 # define SYSCALL(name) __NR_ ## name
 #endif
 
-#if (SANITIZER_FREEBSD && defined(__x86_64__)) || SANITIZER_NETBSD

+#if SANITIZER_NETBSD
+// We use 3 kinds of internal_syscall's for different types of retval in order
+// to address problems related to the byte order.
+//   - internal_syscall for 32-bit length (int, pid_t)
+//   - internal_syscall64   for 64-bit length (off_t)
+//   - internal_syscall_ptr for pointer and (s)size_t
+# define  internal_syscall syscall
+# define  internal_syscall64   __syscall
+# if SANITIZER_WORDSIZE == 64
+#  define internal_syscall_ptr __syscall
+# else
+#  define internal_syscall_ptr syscall
+# endif
+#endif
+
+#if (SANITIZER_FREEBSD && defined(__x86_64__))
 # define internal_syscall __syscall
 # else
 # define internal_syscall syscall
--- 
./src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cc.orig
  2016-06-07 16:36:59.863423802 +0900
+++ 
./src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cc   
2016-06-07 21:46:48.721082396 +0900
@@ -101,7 +101,10 @@
 // --- sanitizer_libc.h
 uptr internal_mmap(void *addr, uptr length, int prot, int flags,
 int fd, u64 offset) {
-#if SANITIZER_NETBSD || SANITIZER_FREEBSD || 
SANITIZER_LINUX_USES_64BIT_SYSCALLS
+#if SANITIZER_NETBSD
+  return internal_syscall_ptr(SYSCALL(mmap), addr, length, prot, flags, fd,
+ (long)0, offset);
+#elif SANITIZER_FREEBSD || SANITIZER_LINUX_USES_64BIT_SYSCALLS
   return internal_syscall(SYSCALL(mmap), (uptr)addr, length, prot, flags, fd,
   offset, 0);
 #else
@@ -142,21 +145,33 @@
 
 uptr internal_read(fd_t fd, void *buf, uptr count) {

   sptr res;
+#ifdef SANITIZER_NETBSD
+  HANDLE_EINTR(res, internal_syscall_ptr(SYSCALL(read), fd, buf, count));
+#else
   HANDLE_EINTR(res, (sptr)internal_syscall(SYSCALL(read), fd, (uptr)buf,
count));
+#endif
   return res;
 }
 
 uptr internal_write(fd_t fd, const void *buf, uptr count) {

   sptr res;
+#ifdef SANITIZER_NETBSD
+  HANDLE_EINTR(res, internal_syscall_ptr(SYSCALL(write), fd, buf, count));
+#else
   HANDLE_EINTR(res, (sptr)internal_syscall(SYSCALL(write), fd, (uptr)buf,
count));
+#endif
   return res;
 }
 
 uptr internal_ftruncate(fd_t fd, uptr size) {

   sptr res;
+#ifdef SANITIZER_NETBSD
+  HANDLE_EINTR(res, internal_syscall(SYSCALL(ftruncate), fd, 0, (s64)size));
+#else
   HANDLE_EINTR(res, (sptr)internal_syscall(SYSCALL(ftruncate), fd, size));
+#endif
   return res;
 }
 
@@ -239,7 +254,9 @@

 }
 
 uptr internal_readlink(const char *path, char *buf, uptr bufsize) {

-#if SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
+#if SANITIZER_NETBSD
+  return internal_syscall_ptr(SYSCALL(readlink), path, buf, bufsize);
+#elif SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
   return internal_syscall(SYSCALL(readlinkat), AT_FDCWD,
   (uptr)path, (uptr)buf, bufsize);
 #else
@@ -311,7 +328,11 @@
   kernel_timeval tv;
 #endif
   internal_memset(&tv, 0, sizeof(tv));
+#if SANITIZER_NETBSD
+  internal_syscall(SYSCALL(gettimeofday), &tv, NULL);
+#else
   internal_syscall(SYSCALL(gett

gcc 5.4 and dhcpcd

2016-06-07 Thread Patrick Welche
You probably already saw this... On -current/amd64:

/usr/src/external/bsd/dhcpcd/dist/dhcp-common.c: In function 'dhcp_set_leasefile
':
/usr/src/external/bsd/dhcpcd/dist/dhcp-common.c:833:1: error: stack protector no
t protecting local variables: variable length buffer [-Werror=stack-protector]
 dhcp_set_leasefile(char *leasefile, size_t len, int family,

New gcc 5.4 default warning settings?

(I'm doing a MKUPDATE build, and hoping that
/usr/include/g++/bits/stl_alog.h:66:35: fatal error: bits/uniform_int_dist.h: 
No such file or directory
will go away with a successful build...)


Cheers,

Patrick


Re: gcc 5.3 version of libasan is broken

2016-06-07 Thread Christos Zoulas
On Jun 7, 10:49pm, rokuy...@rk.phys.keio.ac.jp (Rin Okuyama) wrote:
-- Subject: Re: gcc 5.3 version of libasan is broken

| On 2016/06/07 8:58, Christos Zoulas wrote:
| > This is what I was thinking. Perhaps it is easier to use syscall for ILP32
| > and __syscall for LP64. But then there is lseek...
| 
| Yes. And it fails for LP64BE. I made the revised patch, where 3 kinds of
| internal_syscall macros are provided for different types of retval:
| 
|- internal_syscall for 32-bit length (int, pid_t)
|- internal_syscall64   for 64-bit length (off_t)
|- internal_syscall_ptr for pointer and (s)size_t
| 
| This seems a little messy, but it is a reliable and simple solution for
| sharing codes between ILP32 and LP64 / LE and BE. I tested that libasan
| works just fine for amd64, i386, and earmv7hf-eb; it detects a buffer
| overflow like this:
| 
|#include 
|#include 
|int main()
|{
|  char *dest, *from = "123";
| 
|  dest = malloc(3);
|  strcpy(dest, from);
|  return 0;
|}
| 
| I also checked libubsan on amd64, i386, and earmv7hf-eb. It can detect
| an undefined operation like this:
| 
|int main()
|{
|  int i = 1, j = 0;
|  return i / j;
|}
| 
| I expect that it maybe works also for LP64BE though I could not test.
| 
| On 2016/06/07 8:57, Christos Zoulas wrote:
| > Are you sure this works for 64 bit? I am worried about the (long)0, padding.
| 
| Yes. I checked. The padding for mmap(2) is long:
| https://nxr.netbsd.org/source/xref/src/sys/sys/syscallargs.h#1215
| 
| I also checked and reorganized arguments for other syscalls in the
| attached patch.
| 
| I did not test on GCC 5.4. But I suppose that it should work because
| no syscall-related changes were made for libsanitizer.

I think it is better to do what linux does and write an internal_syscall()
macro that just DTRT's instead of special-casing each syscall.

christos


Re: gcc 5.4 and dhcpcd

2016-06-07 Thread Patrick Welche
On Tue, Jun 07, 2016 at 03:28:26PM +0100, Patrick Welche wrote:
> (I'm doing a MKUPDATE build, and hoping that
> /usr/include/g++/bits/stl_alog.h:66:35: fatal error: bits/uniform_int_dist.h: 
> No such file or directory
> will go away with a successful build...)

According to the changelog, bits/uniform_int_dist.h is a new header.
Does it really want to be added to every? arch/*/defs.mk, or is there
a more central location?

Cheers,

Patrick


Re: gcc 5.3 version of libasan is broken

2016-06-07 Thread Rin Okuyama

On 2016/06/07 23:42, Christos Zoulas wrote:

I think it is better to do what linux does and write an internal_syscall()
macro that just DTRT's instead of special-casing each syscall.


Sorry, I cannot grasp what you mean. Let me explain more in details what I
did. First, I defined three macros:

#define  internal_syscall syscall
#define  internal_syscall64   __syscall
#if SANITIZER_WORDSIZE == 64
# define internal_syscall_ptr __syscall
#else
# define internal_syscall_ptr syscall
#endif

Then, I used an appropriate one depending on a return value, i.e.,

(1) internal_syscall for int or pid_t, e.g.,

  int internal_fork() {
return internal_syscall(SYS_fork);
  }

(2) internal_syscal64 for off_t, e.g.,

  uptr internal_lseek(fd_t fd, OFF_T offset, int whence) {
return internal_syscall64(SYSCALL(lseek), fd, 0, offset, whence);
  }

(3) internal_syscall_ptr for pointer or (s)size_t, e.g.,

  uptr internal_mmap(void *addr, uptr length, int prot, int flags,
  int fd, u64 offset) {
 return internal_syscall_ptr(SYSCALL(mmap), addr, length, prot, flags, fd,
(long)0, offset);
  }

At this stage, no casting is involving.

Next, I rearranged the arguments for syscalls appropriately, namely,

(a) inserted paddings, e.g.,

  +#if SANITIZER_NETBSD
  +  return internal_syscall64(SYSCALL(lseek), fd, 0, offset, whence);
  +#else
 return internal_syscall(SYSCALL(lseek), fd, offset, whence);
  +#endif

(b) corrected length of arguments via casting, e.g.,

  +#if SANITIZER_NETBSD
  +  internal_syscall(SYSCALL(gettimeofday), &tv, NULL);
  +#else
 internal_syscall(SYSCALL(gettimeofday), (uptr)&tv, 0);
  +#endif

  (in this case, the length of the last argument was wrong for LP64, so
   I used casting, NULL <--> (void *) 0)

In summary, I used casting only for (b). What do you mean by "special-casing"?
I may have misunderstood something, if so, please let me know.

Thanks,
Rin


Re: gcc 5.3 version of libasan is broken

2016-06-07 Thread Christos Zoulas
On Jun 8,  1:03am, rokuy...@rk.phys.keio.ac.jp (Rin Okuyama) wrote:
-- Subject: Re: gcc 5.3 version of libasan is broken

| On 2016/06/07 23:42, Christos Zoulas wrote:
| > I think it is better to do what linux does and write an internal_syscall()
| > macro that just DTRT's instead of special-casing each syscall.
| 
| Sorry, I cannot grasp what you mean. Let me explain more in details what I
| did. First, I defined three macros:

I am trying to avoid having all these ifdefs in the common code, so that
the upstream has a better chance to accept them. My idea was to do something
like it is done in sanitizer_syscall_linux_x86_64.inc (but differently)
In our case I think we could provide a varyadic macro that switched on
the syscall number and DTRT...

static inline uptr netbsd_lseek(int fd, OFF_T offset, int whence) {
return internal_syscall64(SYS_lseek, fd, 0, offset, whence);
}

#define internal_syscall(sys...) \
switch (sys) { \
case SYS_fork: \
return syscall(sys); \
case SYS_lseek: \
return netbsd_lseek(__VA_ARGS__); \

This could all go in a separate header for NetBSD.  Alternatively,
we just provide a separate header for all the syscall interception
function that is NetBSD-specific, instead of sprinkling ifdefs in
the common code (sanitizer_syscall_netbsd.inc).

christos


Re: gcc 5.4 and dhcpcd

2016-06-07 Thread Nick Hudson

On 06/07/16 16:44, Patrick Welche wrote:

On Tue, Jun 07, 2016 at 03:28:26PM +0100, Patrick Welche wrote:

(I'm doing a MKUPDATE build, and hoping that
/usr/include/g++/bits/stl_alog.h:66:35: fatal error: bits/uniform_int_dist.h: 
No such file or directory
will go away with a successful build...)

According to the changelog, bits/uniform_int_dist.h is a new header.
Does it really want to be added to every? arch/*/defs.mk, or is there
a more central location?


This should be fixed in the mknative run that's being done as I type



Cheers,

Patrick



Nick


Re: gcc 5.3 version of libasan is broken

2016-06-07 Thread Christos Zoulas
In article <20160607162041.b4e3817f...@rebar.astron.com>,
Christos Zoulas  wrote:
>On Jun 8,  1:03am, rokuy...@rk.phys.keio.ac.jp (Rin Okuyama) wrote:
>-- Subject: Re: gcc 5.3 version of libasan is broken
>
>| On 2016/06/07 23:42, Christos Zoulas wrote:
>| > I think it is better to do what linux does and write an internal_syscall()
>| > macro that just DTRT's instead of special-casing each syscall.
>| 
>| Sorry, I cannot grasp what you mean. Let me explain more in details what I
>| did. First, I defined three macros:
>
>I am trying to avoid having all these ifdefs in the common code, so that
>the upstream has a better chance to accept them. My idea was to do something
>like it is done in sanitizer_syscall_linux_x86_64.inc (but differently)
>In our case I think we could provide a varyadic macro that switched on
>the syscall number and DTRT...
>
>static inline uptr netbsd_lseek(int fd, OFF_T offset, int whence) {
>   return internal_syscall64(SYS_lseek, fd, 0, offset, whence);
>}
>
>#define internal_syscall(sys...) \
>   switch (sys) { \
>   case SYS_fork: \
>   return syscall(sys); \
>   case SYS_lseek: \
>   return netbsd_lseek(__VA_ARGS__); \
>
>This could all go in a separate header for NetBSD.  Alternatively,
>we just provide a separate header for all the syscall interception
>function that is NetBSD-specific, instead of sprinkling ifdefs in
>the common code (sanitizer_syscall_netbsd.inc).

Or perhaps what you have is better... I think that the file is full
of messy ifdefs, and a couple of more won't hurt. It would be better
if someone refactored it. I'll commit your changes for now.

christos



Re: gcc 5.4 and dhcpcd

2016-06-07 Thread Roy Marples
On Tuesday 07 June 2016 15:28:26 Patrick Welche wrote:
> You probably already saw this... On -current/amd64:
> 
> /usr/src/external/bsd/dhcpcd/dist/dhcp-common.c: In function
> 'dhcp_set_leasefile ':
> /usr/src/external/bsd/dhcpcd/dist/dhcp-common.c:833:1: error: stack
> protector no t protecting local variables: variable length buffer
> [-Werror=stack-protector] dhcp_set_leasefile(char *leasefile, size_t len,
> int family,
> 
> New gcc 5.4 default warning settings?

Does this patch fix it for you?
http://roy.marples.name/projects/dhcpcd/vpatch?from=a71bee067cefd47a&to=2ed87aa8b8241562

Roy


Re: gcc 5.3 version of libasan is broken

2016-06-07 Thread Christos Zoulas
In article ,
Christos Zoulas  wrote:
>
>Or perhaps what you have is better... I think that the file is full
>of messy ifdefs, and a couple of more won't hurt. It would be better
>if someone refactored it. I'll commit your changes for now.

Also:
1. Can you please explain the removal of the (uptr) casts in some
   of the syscall arguments? My understanding is that sizeof(uptr) == 4
   on ILP32 and 8 in LP64, so this has no effect?
2. Also in mmap, you cast 0 to long? Is that right?

thanks,

christos



Re: gcc 5.3 version of libasan is broken

2016-06-07 Thread Rin Okuyama

On 2016/06/08 1:20, Christos Zoulas wrote:

I am trying to avoid having all these ifdefs in the common code, so that
the upstream has a better chance to accept them. My idea was to do something
like it is done in sanitizer_syscall_linux_x86_64.inc (but differently)
In our case I think we could provide a varyadic macro that switched on
the syscall number and DTRT...


(snip)


This could all go in a separate header for NetBSD.  Alternatively,
we just provide a separate header for all the syscall interception
function that is NetBSD-specific, instead of sprinkling ifdefs in
the common code (sanitizer_syscall_netbsd.inc).


On 2016/06/08 1:57, Christos Zoulas wrote:

Or perhaps what you have is better... I think that the file is full
of messy ifdefs, and a couple of more won't hurt. It would be better
if someone refactored it. I'll commit your changes for now.


I understand your idea. I agree that it is better to avoid the ifdef
dance and DTRT by providing NetBSD-specific files in the future. But
it also requires more work. IMO, it is not a bad choice to adopt my
workaround tentatively.

On 2016/06/08 4:47, Christos Zoulas wrote:

Also:
1. Can you please explain the removal of the (uptr) casts in some
   of the syscall arguments? My understanding is that sizeof(uptr) == 4
   on ILP32 and 8 in LP64, so this has no effect?
2. Also in mmap, you cast 0 to long? Is that right?


1. I removed (uptr) casts for pointer and (s)size_t from the NetBSD-
   specific codes, as they are meaningless. This is (partially) done
   also for FreeBSD. But the casts bring about no bad side effects.
   Please feel free to put them back, if you feel it better.

2. Yes. The padding for mmap is, somehow, long. Please refer to
   sys/syscallargs.h:

   https://nxr.netbsd.org/source/xref/src/sys/sys/syscallargs.h#1209

Thanks,
Rin


build failure (gmake: static declaration of 'bsd_signal' follows non-static declaration)

2016-06-07 Thread bch
dependall-gmake ===> tools
dependall ===> tools/gmake
install-gmake ===> tools
install ===> tools/gmake
Making install in glob
Making install in config
Making install in po
if test "make" = "gettext-tools"; then  /bin/sh
/usr/src/tools/gmake/../../external/gpl2/gmake/dist/config/mkinstalldirs
/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/share/gettext/po;  for file
in Makefile.in.in remove-potcdate.sin  quot.sed boldquot.sed
en@quot.header en@boldquot.header insert-header.sin Rules-quot
Makevars.template; do
/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/bin/x86_64--netbsd-install
-c -p -r -m 644
/usr/src/tools/gmake/../../external/gpl2/gmake/dist/po/$file
/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/share/gettext/po/$file;
done;  for file in Makevars; do  rm -f
/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/share/gettext/po/$file;
done;  else  : ;  fi
Making install in doc
test -z "/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/info" || /bin/sh
/usr/src/tools/gmake/../../external/gpl2/gmake/dist/config/mkinstalldirs
"/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/info"
 install-info --info-dir='/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/info'
'/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/info/make.info'
install-info: No such file or directory for
/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/info/make.info
NOT REBUILDING /usr/src/tools/gmake/../../external/gpl2/gmake/dist/config.h.in
NOT REBUILDING /usr/src/tools/gmake/../../external/gpl2/gmake/dist/configure
if cc -DLOCALEDIR=\"/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/share/locale\"
-DLIBDIR=\"/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/lib\"
-DINCLUDEDIR=\"/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/include\"
-DHAVE_CONFIG_H -I.
-I/usr/src/tools/gmake/../../external/gpl2/gmake/dist -I.
-I/usr/src/tools/gmake/../../external/gpl2/gmake/dist/glob -O -MT
main.o -MD -MP -MF ".deps/main.Tpo" -c -o main.o
/usr/src/tools/gmake/../../external/gpl2/gmake/dist/main.c;  then mv
-f ".deps/main.Tpo" ".deps/main.Po"; else rm -f ".deps/main.Tpo"; exit
1; fi
/usr/src/tools/gmake/../../external/gpl2/gmake/dist/main.c:521:1:
error: static declaration of 'bsd_signal' follows non-static
declaration
 bsd_signal (int sig, bsd_signal_ret_t func)
 ^
In file included from /usr/include/signal.h:45:0,
 from
/usr/src/tools/gmake/../../external/gpl2/gmake/dist/make.h:70,
 from
/usr/src/tools/gmake/../../external/gpl2/gmake/dist/main.c:19:
/usr/include/sys/signal.h:238:8: note: previous declaration of
'bsd_signal' was here
 void (*bsd_signal(int, void (*)(int)))(int);
^

*** Failed target:  main.o
*** Failed command: if cc
-DLOCALEDIR=\"/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/share/locale\"
-DLIBDIR=\"/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/lib\"
-DINCLUDEDIR=\"/usr/src/obj/tooldir.NetBSD-7.99.30-amd64/include\"
-DHAVE_CONFIG_H -I.
-I/usr/src/tools/gmake/../../external/gpl2/gmake/dist -I.
-I/usr/src/tools/gmake/../../external/gpl2/gmake/dist/glob -O -MT
main.o -MD -MP -MF ".deps/main.Tpo" -c -o main.o
/usr/src/tools/gmake/../../external/gpl2/gmake/dist/main.c; then mv -f
".deps/main.Tpo" ".deps/main.Po"; else rm -f ".deps/main.Tpo"; exit 1;
fi
*** Error code 1


Re: gcc 5.4 and dhcpcd

2016-06-07 Thread Patrick Welche
On Tue, Jun 07, 2016 at 08:10:58PM +0100, Roy Marples wrote:
> On Tuesday 07 June 2016 15:28:26 Patrick Welche wrote:
> > You probably already saw this... On -current/amd64:
> > 
> > /usr/src/external/bsd/dhcpcd/dist/dhcp-common.c: In function
> > 'dhcp_set_leasefile ':
> > /usr/src/external/bsd/dhcpcd/dist/dhcp-common.c:833:1: error: stack
> > protector no t protecting local variables: variable length buffer
> > [-Werror=stack-protector] dhcp_set_leasefile(char *leasefile, size_t len,
> > int family,
> > 
> > New gcc 5.4 default warning settings?
> 
> Does this patch fix it for you?
> http://roy.marples.name/projects/dhcpcd/vpatch?from=a71bee067cefd47a&to=2ed87aa8b8241562

Yes, it does. Thank you!

Patrick


Re: gcc 5.4 and dhcpcd

2016-06-07 Thread Patrick Welche
On Tue, Jun 07, 2016 at 05:36:20PM +0100, Nick Hudson wrote:
> On 06/07/16 16:44, Patrick Welche wrote:
> > On Tue, Jun 07, 2016 at 03:28:26PM +0100, Patrick Welche wrote:
> > > (I'm doing a MKUPDATE build, and hoping that
> > > /usr/include/g++/bits/stl_alog.h:66:35: fatal error: 
> > > bits/uniform_int_dist.h: No such file or directory
> > > will go away with a successful build...)
> > According to the changelog, bits/uniform_int_dist.h is a new header.
> > Does it really want to be added to every? arch/*/defs.mk, or is there
> > a more central location?
> 
> This should be fixed in the mknative run that's being done as I type

Indeed - thanks!

Patrick


Re: build failure (gmake: static declaration of 'bsd_signal' follows non-static declaration)

2016-06-07 Thread Patrick Welche
On Tue, Jun 07, 2016 at 03:01:42PM -0700, bch wrote:
> /usr/src/tools/gmake/../../external/gpl2/gmake/dist/main.c:521:1:
> error: static declaration of 'bsd_signal' follows non-static
> declaration
>  bsd_signal (int sig, bsd_signal_ret_t func)
>  ^
> In file included from /usr/include/signal.h:45:0,


RCS file: /cvsroot/src/sys/sys/signal.h,v

revision 1.68
date: 2016-06-04 00:57:37 +0100;  author: christos;  state: Exp;  lines: +2 -1; 
 commitid: 5bami7lKvfHpX49z;
Add bsd_signal as required by POSIX (from GSoC 2016, Charles Cui)


Revert?

P


Re: build failure (gmake: static declaration of 'bsd_signal' follows non-static declaration)

2016-06-07 Thread Christos Zoulas
In article <20160607231429.GA28753@quark>,
Patrick Welche   wrote:
>
>Revert?

I just did a full build and it works; you must have installed headers
without libc.

christos



Re: build failure (gmake: static declaration of 'bsd_signal' follows non-static declaration)

2016-06-07 Thread Takeshi Nakayama
>>> chris...@astron.com (Christos Zoulas) wrote

> In article <20160607231429.GA28753@quark>,
> Patrick Welche   wrote:
> >
> >Revert?
> 
> I just did a full build and it works; you must have installed headers
> without libc.

Or just cleanup tools/gmake directory to reconfigure gmake build.

-- Takeshi Nakayama


daily CVS update output

2016-06-07 Thread NetBSD source update

Updating src tree:
P src/distrib/sets/lists/comp/mi
P src/external/bsd/blacklist/bin/blacklistctl.8
P src/external/bsd/blacklist/bin/blacklistd.8
P src/external/bsd/blacklist/bin/blacklistd.conf.5
P src/external/bsd/dhcp/bin/server/Makefile
P src/external/bsd/dhcpcd/dist/dhcp-common.c
P src/external/gpl3/gcc/dist/ChangeLog
U src/external/gpl3/gcc/dist/LAST_UPDATED
P src/external/gpl3/gcc/dist/MD5SUMS
P src/external/gpl3/gcc/dist/Makefile.def
P src/external/gpl3/gcc/dist/Makefile.in
P src/external/gpl3/gcc/dist/NEWS
P src/external/gpl3/gcc/dist/config/ChangeLog
P src/external/gpl3/gcc/dist/contrib/ChangeLog
P src/external/gpl3/gcc/dist/contrib/reghunt/ChangeLog
P src/external/gpl3/gcc/dist/contrib/regression/ChangeLog
P src/external/gpl3/gcc/dist/fixincludes/ChangeLog
P src/external/gpl3/gcc/dist/fixincludes/fixincl.x
P src/external/gpl3/gcc/dist/fixincludes/inclhack.def
P src/external/gpl3/gcc/dist/fixincludes/tests/base/stdio.h
U src/external/gpl3/gcc/dist/gcc/BASE-VER
P src/external/gpl3/gcc/dist/gcc/ChangeLog
U src/external/gpl3/gcc/dist/gcc/DATESTAMP
P src/external/gpl3/gcc/dist/gcc/alias.c
P src/external/gpl3/gcc/dist/gcc/bb-reorder.c
P src/external/gpl3/gcc/dist/gcc/builtins.c
P src/external/gpl3/gcc/dist/gcc/calls.c
P src/external/gpl3/gcc/dist/gcc/cfgexpand.c
P src/external/gpl3/gcc/dist/gcc/cgraph.c
P src/external/gpl3/gcc/dist/gcc/cgraph.h
P src/external/gpl3/gcc/dist/gcc/cgraphclones.c
P src/external/gpl3/gcc/dist/gcc/cgraphunit.c
P src/external/gpl3/gcc/dist/gcc/combine.c
P src/external/gpl3/gcc/dist/gcc/common.opt
P src/external/gpl3/gcc/dist/gcc/config.in
P src/external/gpl3/gcc/dist/gcc/configure
P src/external/gpl3/gcc/dist/gcc/configure.ac
P src/external/gpl3/gcc/dist/gcc/dse.c
P src/external/gpl3/gcc/dist/gcc/dwarf2out.c
P src/external/gpl3/gcc/dist/gcc/emit-rtl.c
P src/external/gpl3/gcc/dist/gcc/fold-const.c
P src/external/gpl3/gcc/dist/gcc/gcse.c
P src/external/gpl3/gcc/dist/gcc/gengtype-lex.c
P src/external/gpl3/gcc/dist/gcc/genpreds.c
P src/external/gpl3/gcc/dist/gcc/gimple-expr.c
P src/external/gpl3/gcc/dist/gcc/gimple-expr.h
P src/external/gpl3/gcc/dist/gcc/gimple-ssa-strength-reduction.c
P src/external/gpl3/gcc/dist/gcc/gimple.c
P src/external/gpl3/gcc/dist/gcc/gimplify.c
P src/external/gpl3/gcc/dist/gcc/haifa-sched.c
P src/external/gpl3/gcc/dist/gcc/ifcvt.c
P src/external/gpl3/gcc/dist/gcc/ipa-cp.c
P src/external/gpl3/gcc/dist/gcc/ipa-devirt.c
P src/external/gpl3/gcc/dist/gcc/ipa-icf.c
P src/external/gpl3/gcc/dist/gcc/ipa-inline-analysis.c
P src/external/gpl3/gcc/dist/gcc/ipa-inline.h
P src/external/gpl3/gcc/dist/gcc/ipa-polymorphic-call.c
P src/external/gpl3/gcc/dist/gcc/ipa-prop.c
P src/external/gpl3/gcc/dist/gcc/ipa-split.c
P src/external/gpl3/gcc/dist/gcc/ira.c
P src/external/gpl3/gcc/dist/gcc/lra-constraints.c
P src/external/gpl3/gcc/dist/gcc/lra-remat.c
P src/external/gpl3/gcc/dist/gcc/lra.c
P src/external/gpl3/gcc/dist/gcc/lto-streamer.h
P src/external/gpl3/gcc/dist/gcc/match.pd
P src/external/gpl3/gcc/dist/gcc/modulo-sched.c
P src/external/gpl3/gcc/dist/gcc/omp-low.c
P src/external/gpl3/gcc/dist/gcc/optabs.c
P src/external/gpl3/gcc/dist/gcc/passes.c
P src/external/gpl3/gcc/dist/gcc/postreload.c
P src/external/gpl3/gcc/dist/gcc/regstat.c
P src/external/gpl3/gcc/dist/gcc/rtl.h
P src/external/gpl3/gcc/dist/gcc/rtlanal.c
P src/external/gpl3/gcc/dist/gcc/sched-deps.c
P src/external/gpl3/gcc/dist/gcc/sched-int.h
P src/external/gpl3/gcc/dist/gcc/sel-sched-ir.c
P src/external/gpl3/gcc/dist/gcc/sel-sched.c
P src/external/gpl3/gcc/dist/gcc/shrink-wrap.c
P src/external/gpl3/gcc/dist/gcc/stmt.c
P src/external/gpl3/gcc/dist/gcc/targhooks.c
P src/external/gpl3/gcc/dist/gcc/tree-cfg.c
P src/external/gpl3/gcc/dist/gcc/tree-chrec.c
P src/external/gpl3/gcc/dist/gcc/tree-data-ref.c
P src/external/gpl3/gcc/dist/gcc/tree-inline.c
P src/external/gpl3/gcc/dist/gcc/tree-parloops.c
P src/external/gpl3/gcc/dist/gcc/tree-scalar-evolution.c
P src/external/gpl3/gcc/dist/gcc/tree-sra.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa-alias.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa-dom.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa-forwprop.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa-loop-ivcanon.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa-loop-niter.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa-loop.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa-math-opts.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa-pre.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa-reassoc.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa-sccvn.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa-sccvn.h
P src/external/gpl3/gcc/dist/gcc/tree-ssa-threadupdate.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa-uninit.c
P src/external/gpl3/gcc/dist/gcc/tree-ssa.c
P src/external/gpl3/gcc/dist/gcc/tree-vect-data-refs.c
P src/external/gpl3/gcc/dist/gcc/tree-vect-loop.c
P src/external/gpl3/gcc/dist/gcc/tree-vrp.c
P src/external/gpl3/gcc/dist/gcc/tree.c
P src/external/gpl3/gcc/dist/gcc/ubsan.c
P src/external/gpl3/gcc/dist/gcc/varasm.c
P src/external/gpl3/gcc/dist/gcc/wide-int.cc

Re: build failure (gmake: static declaration of 'bsd_signal' follows non-static declaration)

2016-06-07 Thread bch
Hr. This is a curious case. I got the same for a while the other day,
and did various updates from CVS, and maybe (probably?) did do a build
without -u so it did a clean. It did later build to completion, but now I'm
running into the same thing again. Is something newly brittle?

Kind regards,

-bch
On Jun 7, 2016 6:24 PM, "Takeshi Nakayama"  wrote:

> >>> chris...@astron.com (Christos Zoulas) wrote
>
> > In article <20160607231429.GA28753@quark>,
> > Patrick Welche   wrote:
> > >
> > >Revert?
> >
> > I just did a full build and it works; you must have installed headers
> > without libc.
>
> Or just cleanup tools/gmake directory to reconfigure gmake build.
>
> -- Takeshi Nakayama
>