This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Contributing new gcc targets: i386-*-dragonfly and x86-64-*-dragonfly


On 5/2/2014 22:15, Joseph S. Myers wrote:
> On Fri, 2 May 2014, John Marino wrote:
> 
>> 1) I don't know which type definitions are missing (iow, the important
>> ones from sys/type.h that are required to build gcc)
> 
> The default presumption should be:
> 
> * <stddef.h> from GCC provides what it needs to provide; nothing extra is 
> needed and such a #include should not be needed at all.
> 
> * Special measures to avoid duplicate typedefs (where some other header 
> also defines one of the typedefs defined in <stddef.h>) aren't in fact 
> needed, because GCC allows duplicate typedefs in system headers (even 
> outside C11 mode - in C11 mode it's a standard feature).
> 
> So try removing that #include.  If that causes problems, investigate based 
> on the actual problems seen.

Hi Joseph,
Removing the include worked after also removing the #ifdef __DragonFly
with regards to the rune_t type definition.

I built gcc with a full bootstraps on both DragonFly platforms
successfully.  stddef.h is much simpler now:

--- gcc/ginclude/stddef.h.orig
+++ gcc/ginclude/stddef.h
@@ -133,6 +133,7 @@
 #ifndef _BSD_PTRDIFF_T_
 #ifndef ___int_ptrdiff_t_h
 #ifndef _GCC_PTRDIFF_T
+#ifndef _PTRDIFF_T_DECLARED /* DragonFly */
 #define _PTRDIFF_T
 #define _T_PTRDIFF_
 #define _T_PTRDIFF
@@ -141,10 +142,12 @@
 #define _BSD_PTRDIFF_T_
 #define ___int_ptrdiff_t_h
 #define _GCC_PTRDIFF_T
+#define _PTRDIFF_T_DECLARED
 #ifndef __PTRDIFF_TYPE__
 #define __PTRDIFF_TYPE__ long int
 #endif
 typedef __PTRDIFF_TYPE__ ptrdiff_t;
+#endif /* _PTRDIFF_T_DECLARED */
 #endif /* _GCC_PTRDIFF_T */
 #endif /* ___int_ptrdiff_t_h */
 #endif /* _BSD_PTRDIFF_T_ */
@@ -198,6 +201,7 @@
 #define _GCC_SIZE_T
 #define _SIZET_
 #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
+  || defined(__DragonFly__) \
   || defined(__FreeBSD_kernel__)
 /* __size_t is a typedef on FreeBSD 5, must not trash it. */
 #elif defined (__VMS__)


revised patchset  :
http://leaf.dragonflybsd.org/~marino/gcc-df-target/patches/patch-dragonfly-target
revised changelog :
http://leaf.dragonflybsd.org/~marino/gcc-df-target/changelog_entries/gcc_ChangeLog_entry.txt
revised commit msg:
http://leaf.dragonflybsd.org/~marino/gcc-df-target/proposed_commit-msg.txt

Good catch!  Does the rest of the patch set look good to you?  I think
all the non-obvious patches have been reviewed collectively by various
people now and may be ready to be approved now.

Thanks,
John


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]