From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29872 invoked by alias); 23 May 2006 08:23:08 -0000 Received: (qmail 29860 invoked by uid 22791); 23 May 2006 08:23:07 -0000 X-Spam-Check-By: sourceware.org Received: from d5152EF28.access.telenet.be (HELO lx-dmz.televic.com) (81.82.239.40) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 23 May 2006 08:23:04 +0000 Received: (qmail 3214 invoked from network); 23 May 2006 08:23:01 -0000 Received: from nt-email.televic.com (10.0.0.9) by 10.1.8.1 with SMTP; 23 May 2006 08:23:01 -0000 Received: from nt-server-email.TELEVIC.COM ([10.0.0.7]) by nt-email.TELEVIC.COM with Microsoft SMTPSVC(6.0.3790.1830); Tue, 23 May 2006 10:21:09 +0200 Received: from [127.0.0.1] ([10.0.60.1]) by nt-server-email.TELEVIC.COM with Microsoft SMTPSVC(5.0.2195.6713); Tue, 23 May 2006 10:21:08 +0200 Message-ID: <4472C5EB.7060704@televic.com> Date: Tue, 23 May 2006 08:23:00 -0000 From: Juergen Lambrecht Reply-To: Jurgen.Lambrecht@tiscali.be User-Agent: Thunderbird 1.5.0.2 (Windows/20060308) MIME-Version: 1.0 To: Andrew Lunn CC: ecos-discuss@ecos.sourceware.org References: <446B3B59.70801@televic.com> <20060517155527.GL14082@lunn.ch> <446C8809.3020907@tiscali.be> <20060518145419.GD11223@lunn.ch> In-Reply-To: <20060518145419.GD11223@lunn.ch> Content-Type: multipart/mixed; boundary="------------050109090602020409010305" X-IsSubscribed: yes Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Subject: [ECOS] Patch for Re: [ECOS] redefinition of `cyg_uint32' X-SW-Source: 2006-05/txt/msg00188.txt.bz2 --------------050109090602020409010305 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 3306 Hello Andrew, with FreeBDS, I have the same problem. By realizing that only the signed types give a problem, and not the unsigned ones, I found the solution: adding #undef's for the signed types. The new file ecos/packages/net/bsd_tcpip/current/include/sys/bsdtypes.h is in attach, together with the diff file (from ExamDiff Pro) diff_bsdtypes.h.txt Kind regards, Juergen Lambrecht Andrew Lunn wrote: > On Thu, May 18, 2006 at 04:43:21PM +0200, J?rgen Lambrecht wrote: > >> I'm sorry, I confused #define with typedef. >> This is the correct problem description: >> >> The problem started by using the openbsd package. >> > > Ah, O.K. I've not compiled OpenBSD for a long time. Most people have > swapped to the FreeBSD stack. > I just need a ftp server, LWIP does not have it. I will also swap to FreeBSD. > >> In ecos/packages/net/bsd_tcpip/current/include/sys/bsdtypes.h: >> >> typedef unsigned int u_int32_t; >> typedef unsigned int uint32_t; >> >> But in ecos/packages/compat/linux/current/include/linux/types.h: >> >> #define uint32_t cyg_uint32 >> >> So apparantly, the compiler replaces in bsdtypes.h the 'uint32_t' with >> cyg_uint32, which becomes then redefined. >> Apparantly, because it is not possible because the same file bdstypes.h >> contains also: >> #undef uint32_t >> >> The compiler complains when compiling jffs2: >> arm-elf-gcc -c ... ecos/packages/fs/jffs2/current/src/compr.c >> And compr.h contains >> #include >> >> What happens when a typedefed "uint32_t" exists, follewed by #define'ing >> it?? >> Could that be the cause of problems? >> > > Yes, this seems reasonable. > > So the question is, why is sys/bsdtypes.h being included in compr.h? > > Andrew > I followed the compiler trace, and this is the answer: #if !defined(_POSIX_SOURCE) # if CYGINT_ISO_BSDTYPES # ifdef CYGBLD_ISO_BSDTYPES_HEADER # include CYGBLD_ISO_BSDTYPES_HEADER # endif # endif #endif // !defined(_POSIX_SOURCE) From isoinfra/current/include/sys/types.h:112 This is the trace: In file included from /ecos-c/version/vcs/c/ims/std_ims/build/ecos_ims/install/include/sys/bsdtypes.h:80, ->net/bsd_tcpip/current/include/sys/bsdtypes.h from /ecos-c/version/vcs/c/ims/std_ims/build/ecos_ims/install/include/sys/types.h:112, ->isoinfra/current/include/sys/types.h from /ecos-c/version/vcs/c/ims/std_ims/build/ecos_ims/install/include/sys/stat.h:69, ->isoinfra/current/include/sys/stat.h from /ecos-c/version/vcs/c/ims/std_ims/build/ecos_ims/install/include/linux/stat.h:5, ->compat/linux/current/include/linux/stat.h from /ecos-c/version/vcs/c/ims/std_ims/build/ecos_ims/install/include/linux/fs.h:4, ->compat/linux/current/include/linux/fs.h from /ecos-c/version/vcs/c/ims/std_ims/ecos/packages/fs/jffs2/current/src/compr.h:24, ->fs/jffs2/current/src/compr.h from /ecos-c/version/vcs/c/ims/std_ims/ecos/packages/fs/jffs2/current/src/compr.c:16: /ecos-c/version/vcs/c/ims/std_ims/build/ecos_ims/install/include/machine/types.h:41: redefinition of `cyg_int8' /ecos-c/version/vcs/c/ims/std_ims/build/ecos_ims/install/include/cyg/infra/cyg_type.h:203: `cyg_int8' previously declared here Kind regards, Juergen Lambrecht --------------050109090602020409010305 Content-Type: text/plain; name="bsdtypes.h" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="bsdtypes.h" Content-length: 3223 //========================================================================== // // include/sys/bsdtypes.h // //========================================================================== //####BSDCOPYRIGHTBEGIN#### // // ------------------------------------------- // // Portions of this software may have been derived from OpenBSD, // FreeBSD or other sources, and are covered by the appropriate // copyright disclaimers included herein. // // Portions created by Red Hat are // Copyright (C) 2002 Red Hat, Inc. All Rights Reserved. // // ------------------------------------------- // //####BSDCOPYRIGHTEND#### //========================================================================== #ifndef _SYS_BSDTYPES_H_ #define _SYS_BSDTYPES_H_ #include #include #define __BIT_TYPES_DEFINED__ #undef uint8_t #undef uint16_t #undef uint32_t #undef int8_t #undef int16_t #undef int32_t typedef __signed char int8_t; typedef unsigned char u_int8_t; typedef unsigned char uint8_t; typedef short int16_t; typedef unsigned short u_int16_t; typedef unsigned short uint16_t; typedef int int32_t; typedef unsigned int u_int32_t; typedef unsigned int uint32_t; typedef long long int64_t; typedef unsigned long long u_int64_t; typedef unsigned long long uint64_t; // Types inherited from HAL typedef CYG_ADDRESS vaddr_t; typedef CYG_ADDRWORD vsize_t; typedef CYG_ADDRESS paddr_t; typedef CYG_ADDRWORD psize_t; typedef CYG_ADDRESS vm_offset_t; typedef CYG_ADDRWORD vm_size_t; // No good HAL definition for this typedef CYG_ADDRWORD register_t; // From /* * Types which are fundamental to the implementation and may appear in * more than one standard header are defined here. Standard headers * then use: * #ifdef _BSD_SIZE_T_ * typedef _BSD_SIZE_T_ size_t; * #undef _BSD_SIZE_T_ * #endif */ #define _BSD_SSIZE_T_ int /* byte count or error */ #define _BSD_CLOCKID_T_ int #define _BSD_TIMER_T_ int #ifndef __time_t_defined // As defined/used by eCos libc #define _BSD_CLOCK_T_ cyg_int64 /* clock() */ #define _BSD_TIME_T_ cyg_count32 /* time() */ #endif #endif // _MACHINE_TYPES_H_ // Standard BSD types typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef char *caddr_t; typedef u_int64_t u_quad_t; /* quads */ typedef int64_t quad_t; typedef quad_t * qaddr_t; /* * XPG4.2 states that inclusion of must pull these * in and that inclusion of must pull in sa_family_t. * We put there here because there are other headers that require * these types and and will indirectly * include . Thus we are compliant without too many hoops. */ typedef u_int32_t in_addr_t; /* base type for internet address */ typedef u_int16_t in_port_t; /* IP port type */ typedef u_int8_t sa_family_t; /* sockaddr address family type */ typedef u_int32_t socklen_t; /* length type for network syscalls */ --------------050109090602020409010305 Content-Type: text/plain; name="diff_bsdtypes.h.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diff_bsdtypes.h.txt" Content-length: 60 31a32,34 > #undef int8_t > #undef int16_t > #undef int32_t --------------050109090602020409010305 Content-Type: text/plain; charset=us-ascii Content-length: 148 -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss --------------050109090602020409010305--