pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/45278: bootstrap fails in libfetch NetBSD -current (gcc4.5)



>Number:         45278
>Category:       pkg
>Synopsis:       bootstrap fails in libfetch NetBSD -current (gcc4.5)
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Aug 20 10:30:00 +0000 2011
>Originator:     Kai-Uwe Eckhardt
>Release:        NetBSD -current 5.9.55 i386
>Organization:
>Environment:
>Description:
gcc4.5 has become the default compiler on NetBSD -current. This breaks
the build of libfetch during /pkgsrc/bootstrap:

cc -O2 -I/usr/include  -Wall -Wstrict-prototypes -Wmissing-prototypes 
-Wpointer-arith -Wno-uninitialized -Wreturn-type -Wcast-qual -Wpointer-arith 
-Wwrite-strings -Wswitch -Wshadow -Werror  -D_LARGEFILE_SOURCE -D_LARGE_FILES 
-D_FILE_OFFSET_BITS=64 -DDEF_UMASK=0022 
-I/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libfetch 
-DHAVE_NBCOMPAT_H=1 
-I/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libnbcompat 
-I/usr/include -I. -D_LARGEFILE_SOURCE -D_LARGE_FILES -DFTP_COMBINE_CWDS -c 
ftp.c
cc1: warnings being treated as errors
ftp.c: In function 'ftp_transfer':
ftp.c:917:45: error: array subscript is above array bounds
ftp.c:917:33: error: array subscript is above array bounds
ftp.c:917:21: error: array subscript is above array bounds
ftp.c:917:9: error: array subscript is above array bounds
ftp.c:916:43: error: array subscript is above array bounds
ftp.c:916:31: error: array subscript is above array bounds
ftp.c:916:20: error: array subscript is above array bounds
ftp.c:916:9: error: array subscript is above array bounds
*** Error code 1

>How-To-Repeat:
Do ./bootstrap in /pkgsrc/bootstrap on a recent NetBSD.
>Fix:
bootstrap creates a copy of /pkgsrc/net/libfetch/files/ftp.c which has
code that makes assumptions on the memory layout of a union inside a
struct. Calling the actual union member directly makes it work. 

To fix change line 910:

ap = (char *)&u.sin6.sin6_addr;

to

ap = (char *)&u.sin6.sin6_addr.__u6_addr.__u6_addr8;




Home | Main Index | Thread Index | Old Index