Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 May 2011 23:59:45 -0700
From:      Jeremy Chadwick <freebsd@jdc.parodius.com>
To:        joerg_surmann <joerg_surmann@snafu.de>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: can't update libzip-0.9.3 to libzip-0.10
Message-ID:  <20110512065945.GA55199@icarus.home.lan>
In-Reply-To: <4DCB81EF.2080104@snafu.de>
References:  <4DCB7962.6090706@snafu.de> <20110512061312.GA54574@icarus.home.lan> <4DCB81EF.2080104@snafu.de>

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

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

On Thu, May 12, 2011 at 08:45:03AM +0200, joerg_surmann wrote:
> Hey Jeremy,
>
> Ok i'll put the files in a attachment
> on the end from this email.

[...snip...]
[attachment: zipconf.h]

Oh dear.  I'm not sure what to make of this:

> #ifndef _HAD_ZIPCONF_H
> #define _HAD_ZIPCONF_H
> 
> /*
>    zipconf.h -- platform specific include file
> 
>    This file was generated automatically by ./make_zipconf.sh
>    based on ../config.h.
>  */
> 
> #define LIBZIP_VERSION "0.10"
> #define LIBZIP_VERSION_MAJOR 0
> #define LIBZIP_VERSION_MINOR 10
> #define LIBZIP_VERSION_MICRO 0
> 
> #include <inttypes.h>
> 
> typedef signed char int8_t;
> #define ZIP_INU8_MAX SCHAR_MAX
> 
> typedef unsigned char uint8_t;
> #define ZIP_?INU8_MAX ?CHAR_MAX
> 
> typedef  shor? int16_t;
> #define ZIP_INU16_MIN ?CHAR_MIN
> #define ZIP_INU16_MAX ?CHAR_MAX
>
> typedef unsigned shor? uint16_t;
> #define ZIP_?INU16_MAX ?CHAR_MAX
> 
> typedef  in? int32_t;
> #define ZIP_INU32_MIN ?CHAR_MIN
> #define ZIP_INU32_MAX ?CHAR_MAX
> 
> typedef unsigned in? uint32_t;
> #define ZIP_?INU32_MAX ?CHAR_MAX
> 
> typedef  long int64_t;
> #define ZIP_INU64_MIN SLONG_MIN
> #define ZIP_INU64_MAX SLONG_MAX
> 
> typedef unsigned long uint64_t;
> #define ZIP_?INU64_MAX ?LONG_MAX
> 
> 
> #endif /* zipconf.h */

All of these values have a "?" injected in them, at seemingly randomly
places.  This is the problem, and why the C compiler is throwing errors.

I don't know how or why this is happening.  There could be many things
going on that might explain it.  Worst case would be odd/awkward
hardware failure (bad RAM would show something like this), corrupt
filesystem, a disk going bad silently ("bit rot"), etc..

My initial guess -- because this port uses a GNU autoconf script -- is
that it's obtaining the types for things incorrectly.

Are you using any sort of LC_CTYPE or LANG setting in your dotfiles that
gets propagated to the root environment (during su, sudo, etc.)?  I see
that you're in .de which is why I ask.

I've attached a zipconf.h file from my system.  You can compare the
differences; it should be obvious.  My system does not have "?"
characters injected into the typedefs, but more importantly (and this is
indeed important!), the types it detects/uses are completely different.

I'm not sure what's going on with your system, but it almost implies
that you have a separate set of include files that are "trumping" or
"overriding" the FreeBSD base system defaults.

-- 
| Jeremy Chadwick                                   jdc@parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.               PGP 4BD6C0CB |


--FCuugMFkClbJLl1L--



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