Re: CSTD=c99 breaks package creation
On Thu, Jun 12, 2003, Tim Robbins wrote: On Wed, Jun 11, 2003 at 07:37:01PM -0700, Kris Kennaway wrote: It's possible that there's either a bug in gcc or there is C code in the system that has a different meaning when interpreted to C99 standards. I think I may have found the problem, and I think it's in GNU tar. GNU tar does this: #ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ # if __GNUC__ 2 || (__GNUC__ == 2 __GNUC_MINOR__ 5) || __STRICT_ANSI__ # define __attribute__(Spec) /* empty */ # endif #endif machine/_types.h does this: typedef int __attribute__((__mode__(__DI__))) __int64_t; typedef unsigned int __attribute__((__mode__(__DI__))) __uint64_t; If __attribute__ is empty, __int64_t becomes a synonym for int. Bad. Wow! Nice catch... ___ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: CSTD=c99 breaks package creation
deleting the define __attribute stuff in system.h of /usr/src/contrib/tar/src/system.h and rebuilding+installing tar repaired package creation here. -- Mit freundlichen Grüßen Fritz Heinrichmeyer FernUniversitaet, LG ES, 58084 Hagen (Germany) tel:+49 2331/987-1166 fax:987-355 http://www-es.fernuni-hagen.de/~jfh ___ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: CSTD=c99 breaks package creation
On Wed, Jun 11, 2003 at 07:37:01PM -0700, Kris Kennaway wrote: On Tue, Jun 10, 2003 at 04:38:58AM -0700, Kris Kennaway wrote: A couple of ports are creating broken bzip2 archives since I updated the build environments to 5.1-CURRENT: ... Backing out the recent changes to bsd.sys.mk fixed these problems. I don't know why, but pkg_create was creating packages that were truncated - perhaps tar was closing the pipe early or something. It's possible that there's either a bug in gcc or there is C code in the system that has a different meaning when interpreted to C99 standards. If you can wait until after USENIX, I'll track this down. Is there any more data than this email you can send me? -- -- David ([EMAIL PROTECTED]) ___ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: CSTD=c99 breaks package creation
On Thu, Jun 12, 2003 at 02:43:42PM -0700, David O'Brien wrote: On Wed, Jun 11, 2003 at 07:37:01PM -0700, Kris Kennaway wrote: On Tue, Jun 10, 2003 at 04:38:58AM -0700, Kris Kennaway wrote: A couple of ports are creating broken bzip2 archives since I updated the build environments to 5.1-CURRENT: ... Backing out the recent changes to bsd.sys.mk fixed these problems. I don't know why, but pkg_create was creating packages that were truncated - perhaps tar was closing the pipe early or something. It's possible that there's either a bug in gcc or there is C code in the system that has a different meaning when interpreted to C99 standards. If you can wait until after USENIX, I'll track this down. Is there any more data than this email you can send me? tjr has a fix. Kris pgp0.pgp Description: PGP signature
CSTD=c99 breaks package creation
On Tue, Jun 10, 2003 at 04:38:58AM -0700, Kris Kennaway wrote: A couple of ports are creating broken bzip2 archives since I updated the build environments to 5.1-CURRENT: ports-i386%bzip2 -t ja-makejvf-fkr-1.0_1.tbz bzip2: ja-makejvf-fkr-1.0_1.tbz: file ends unexpectedly You can use the `bzip2recover' program to attempt to recover data from undamaged sections of corrupted files. ports-i386%bzip2 -t cclient-2002c1_1,1.tbz bzip2: cclient-2002c1_1,1.tbz: file ends unexpectedly You can use the `bzip2recover' program to attempt to recover data from undamaged sections of corrupted files. They're broken no matter how many times I rebuild them. The bento package cluster machines haven't been updated, so I don't blame a kernel problem, but the build chroot is being populated with a 5.1-CURRENT world instead of 5.1-RELEASE. Can anyone else reproduce this, or has anyone else seen a similar problem? Backing out the recent changes to bsd.sys.mk fixed these problems. I don't know why, but pkg_create was creating packages that were truncated - perhaps tar was closing the pipe early or something. It's possible that there's either a bug in gcc or there is C code in the system that has a different meaning when interpreted to C99 standards. Kris pgp0.pgp Description: PGP signature
Re: CSTD=c99 breaks package creation
On Wed, Jun 11, 2003 at 07:37:01PM -0700, Kris Kennaway wrote: It's possible that there's either a bug in gcc or there is C code in the system that has a different meaning when interpreted to C99 standards. I think I may have found the problem, and I think it's in GNU tar. GNU tar does this: #ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ # if __GNUC__ 2 || (__GNUC__ == 2 __GNUC_MINOR__ 5) || __STRICT_ANSI__ # define __attribute__(Spec) /* empty */ # endif #endif machine/_types.h does this: typedef int __attribute__((__mode__(__DI__))) __int64_t; typedef unsigned int __attribute__((__mode__(__DI__))) __uint64_t; If __attribute__ is empty, __int64_t becomes a synonym for int. Bad. Attached is a test program. Compile it w/o a -std option and see that the output, which is sizeof(int64_t), is 8 as expected. Compile with -std=c99 and see that sizeof(int64_t) is 4. Tim #ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ # if __GNUC__ 2 || (__GNUC__ == 2 __GNUC_MINOR__ 5) || __STRICT_ANSI__ # define __attribute__(Spec) /* empty */ # endif #endif #include sys/types.h #include stdio.h #include stdint.h #include stdlib.h int main(int argc, char *argv[]) { (void)__bswap64((uint64_t)3); printf(%d\n, (int)sizeof(uint64_t)); exit(0); } ___ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to [EMAIL PROTECTED]