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 3 May 2014 08:11, John Marino wrote:
> 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.

Ian's approved the libiberty.h change, Joseph's approved the stddef.h
change, I've approved the libstdc++ parts.

IIUC it still needs explicit approval for the rest, e.g. trivial
adjustments to configuration stuff in libitm and libcilkrts. Are there
specific maintainers for those libs?

The rest look obvious to me, it doesn't touch other targets at all
except for one bit that replaces a check for __FreeBSD__ >= 7 with a
grep for the dl_iterate_phdr function in a system header, which only
affects FreeBSD and looks OK to me.

Anyone willing to give it an overall approval?


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