Hello Richard,

The diff is reverted:

http://reviews.llvm.org/rL213450

I will propose another patch by Mon and there will address your questions about background and possible workarounds. Will let you know.

Thanks.


On 07/19/2014 12:29 AM, Richard Smith wrote:
On Thu, Jul 10, 2014 at 1:43 AM, Viktor Kutuzov <[email protected] <mailto:[email protected]>> wrote:

    Author: vkutuzov
    Date: Thu Jul 10 03:43:39 2014
    New Revision: 212689

    URL: http://llvm.org/viewvc/llvm-project?rev=212689&view=rev
    Log:
    Add clang headers that fix machine-dependent definitions on
    FreeBSD 9.2


This change has broken Darwin:

http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-July/038129.html

Please revert for now, and we can discuss a way to get this to work for both platforms.

I'm also not sure why this patch makes any sense: it seems you're trying to work around FreeBSD's broken /usr/include files? That doesn't seem like something we should be doing to me, but maybe I'm missing some background here?

    Differential Revision: http://reviews.llvm.org/D3908

    Added:
        cfe/trunk/lib/Headers/machine/
        cfe/trunk/lib/Headers/machine/_stdint.h
        cfe/trunk/lib/Headers/machine/_types.h
    Modified:
        cfe/trunk/lib/Headers/CMakeLists.txt

    Modified: cfe/trunk/lib/Headers/CMakeLists.txt
    URL:
    
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/CMakeLists.txt?rev=212689&r1=212688&r2=212689&view=diff
    
==============================================================================
    --- cfe/trunk/lib/Headers/CMakeLists.txt (original)
    +++ cfe/trunk/lib/Headers/CMakeLists.txt Thu Jul 10 03:43:39 2014
    @@ -1,4 +1,6 @@
     set(files
    +  machine/_stdint.h
    +  machine/_types.h
       altivec.h
       ammintrin.h
       arm_acle.h

    Added: cfe/trunk/lib/Headers/machine/_stdint.h
    URL:
    
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/machine/_stdint.h?rev=212689&view=auto
    
==============================================================================
    --- cfe/trunk/lib/Headers/machine/_stdint.h (added)
    +++ cfe/trunk/lib/Headers/machine/_stdint.h Thu Jul 10 03:43:39 2014
    @@ -0,0 +1,71 @@
    +/*===---- _stdint.h - C99 type-related definitions on FreeBSD
    -------------===*\
    + *
    + * Permission is hereby granted, free of charge, to any person
    obtaining a copy
    + * of this software and associated documentation files (the
    "Software"), to deal
    + * in the Software without restriction, including without
    limitation the rights
    + * to use, copy, modify, merge, publish, distribute, sublicense,
    and/or sell
    + * copies of the Software, and to permit persons to whom the
    Software is
    + * furnished to do so, subject to the following conditions:
    + *
    + * The above copyright notice and this permission notice shall be
    included in
    + * all copies or substantial portions of the Software.
    + *
    + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
    KIND, EXPRESS OR
    + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    MERCHANTABILITY,
    + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
    EVENT SHALL THE
    + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
    OR OTHER
    + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
    OTHERWISE, ARISING FROM,
    + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    DEALINGS IN
    + * THE SOFTWARE.
    + *
    
+\*===----------------------------------------------------------------------===*/
    +
    +#ifndef __MACHINE_XSTDINT_H
    +#define __MACHINE_XSTDINT_H
    +
    +#include_next <machine/_stdint.h>
    +
    +/* Fix some definitions on x86-64 FreeBSD 9.2 in 32-bit mode. */
    +#if defined(__FreeBSD__) && defined(__i386__)
    +# include <osreldate.h>
    +# if __FreeBSD_version <= 902001  // v9.2
    +#  if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
    +#   undef INT64_C
    +#   define INT64_C(c) (c ## LL)
    +
    +#   undef UINT64_C
    +#   define UINT64_C(c) (c ## ULL)
    +#  endif  /* !defined(__cplusplus) ||
    defined(__STDC_CONSTANT_MACROS) */
    +
    +#  if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
    +#   undef INT64_MIN
    +#   define INT64_MIN (-0x7fffffffffffffffLL-1)
    +
    +#   undef INT64_MAX
    +#   define INT64_MAX 0x7fffffffffffffffLL
    +
    +#   undef UINT64_MAX
    +#   define UINT64_MAX 0xffffffffffffffffULL
    +
    +#   undef INTPTR_MIN
    +#   define INTPTR_MIN INT32_MIN
    +
    +#   undef INTPTR_MAX
    +#   define INTPTR_MAX INT32_MAX
    +
    +#   undef UINTPTR_MAX
    +#   define UINTPTR_MAX UINT32_MAX
    +
    +#   undef PTRDIFF_MIN
    +#   define PTRDIFF_MIN INT32_MIN
    +
    +#   undef PTRDIFF_MAX
    +#   define PTRDIFF_MAX INT32_MAX
    +
    +#   undef SIZE_MAX
    +#   define SIZE_MAX UINT32_MAX
    +#  endif  /* !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) */
    +# endif  /* __FreeBSD_version <= 902001 */
    +#endif  /* defined(__FreeBSD__) && defined(__i386__) */
    +
    +#endif /* !__MACHINE_XSTDINT_H */

    Added: cfe/trunk/lib/Headers/machine/_types.h
    URL:
    
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/machine/_types.h?rev=212689&view=auto
    
==============================================================================
    --- cfe/trunk/lib/Headers/machine/_types.h (added)
    +++ cfe/trunk/lib/Headers/machine/_types.h Thu Jul 10 03:43:39 2014
    @@ -0,0 +1,145 @@
    +/*===---- _types.h - Machine-dependent type definitions on
    FreeBSD --------===*\
    + *
    + * Permission is hereby granted, free of charge, to any person
    obtaining a copy
    + * of this software and associated documentation files (the
    "Software"), to deal
    + * in the Software without restriction, including without
    limitation the rights
    + * to use, copy, modify, merge, publish, distribute, sublicense,
    and/or sell
    + * copies of the Software, and to permit persons to whom the
    Software is
    + * furnished to do so, subject to the following conditions:
    + *
    + * The above copyright notice and this permission notice shall be
    included in
    + * all copies or substantial portions of the Software.
    + *
    + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
    KIND, EXPRESS OR
    + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    MERCHANTABILITY,
    + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
    EVENT SHALL THE
    + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
    OR OTHER
    + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
    OTHERWISE, ARISING FROM,
    + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    DEALINGS IN
    + * THE SOFTWARE.
    + *
    
+\*===----------------------------------------------------------------------===*/
    +
    +#ifndef __MACHINE_XTYPES_H
    +#define __MACHINE_XTYPES_H
    +
    +/* Fix some definitions on x86-64 FreeBSD 9.2 in 32-bit mode. */
    +#if defined(__FreeBSD__) && defined(__i386__)
    +# include <osreldate.h>
    +# if __FreeBSD_version <= 902001  // v9.2
    +#  define __FIX_FREEBSD_9_2_DEFINITIONS
    +# endif  /* __FreeBSD_version <= 902001 */
    +#endif  /* defined(__FreeBSD__) && defined(__i386__) */
    +
    +#if defined(__FIX_FREEBSD_9_2_DEFINITIONS)
    +#define __int64_t __broken_int64_t
    +#define __uint64_t __broken_uint64_t
    +#define __critical_t __broken_critical_t
    +#define __intfptr_t __broken_intfptr_t
    +#define __intptr_t __broken_intptr_t
    +#define __intmax_t __broken_intmax_t
    +#define __int_fast64_t __broken_int_fast64_t
    +#define __int_least64_t __broken_int_least64_t
    +#define __ptrdiff_t __broken_ptrdiff_t
    +#define __register_t __broken_register_t
    +#define __segsz_t __broken_segsz_t
    +#define __size_t __broken_size_t
    +#define __ssize_t __broken_ssize_t
    +#define __time_t __broken_time_t
    +#define __uintfptr_t __broken_uintfptr_t
    +#define __uintptr_t __broken_uintptr_t
    +#define __uintmax_t __broken_uintmax_t
    +#define __uint_fast64_t __broken_uint_fast64_t
    +#define __uint_least64_t __broken_uint_least64_t
    +#define __u_register_t __broken_u_register_t
    +#define __vm_offset_t __broken_vm_offset_t
    +#define __vm_paddr_t __broken_vm_paddr_t
    +#define __vm_size_t __broken_vm_size_t
    +#define __vm_ooffset_t __broken_vm_ooffset_t
    +#define __vm_pindex_t __broken_vm_pindex_t
    +#endif  // defined(__FIX_FREEBSD_9_2_DEFINITIONS)
    +
    +#include_next <machine/_types.h>
    +
    +#if defined(__FIX_FREEBSD_9_2_DEFINITIONS)
    +#undef __int64_t
    +typedef long long __int64_t;
    +
    +#undef __uint64_t
    +typedef unsigned long long __uint64_t;
    +
    +#undef __critical_t
    +typedef __int32_t __critical_t;
    +
    +#undef __intfptr_t
    +typedef __int32_t __intfptr_t;
    +
    +#undef __intptr_t
    +typedef __int32_t __intptr_t;
    +
    +#undef __intmax_t
    +typedef __int64_t __intmax_t;
    +
    +#undef __int_fast64_t
    +typedef __int64_t __int_fast64_t;
    +
    +#undef __int_least64_t
    +typedef __int64_t __int_least64_t;
    +
    +#undef __ptrdiff_t
    +typedef __int32_t __ptrdiff_t;
    +
    +#undef __register_t
    +typedef __int64_t __register_t;
    +
    +#undef __segsz_t
    +typedef __int32_t __segsz_t;
    +
    +#undef __size_t
    +typedef __uint32_t __size_t;
    +
    +#undef __ssize_t
    +typedef __int32_t __ssize_t;
    +
    +#undef __time_t
    +typedef __int32_t __time_t;
    +
    +#undef __uintfptr_t
    +typedef __uint32_t __uintfptr_t;
    +
    +#undef __uintptr_t
    +typedef __uint32_t __uintptr_t;
    +
    +#undef __uintmax_t
    +typedef __uint64_t __uintmax_t;
    +
    +#undef __uint_fast64_t
    +typedef __uint64_t __uint_fast64_t;
    +
    +#undef __uint_least64_t
    +typedef __uint64_t __uint_least64_t;
    +
    +#undef __u_register_t
    +typedef __uint32_t __u_register_t;
    +
    +#undef __vm_offset_t
    +typedef __uint32_t __vm_offset_t;
    +
    +#undef __vm_paddr_t
    +#ifdef PAE
    +typedef __uint64_t __vm_paddr_t;
    +#else
    +typedef __uint32_t __vm_paddr_t;
    +#endif
    +
    +#undef __vm_size_t
    +typedef __uint32_t __vm_size_t;
    +
    +#undef __vm_ooffset_t
    +typedef __int64_t __vm_ooffset_t;
    +
    +#undef __vm_pindex_t
    +typedef __uint64_t __vm_pindex_t;
    +#endif  // defined(__FIX_FREEBSD_9_2_DEFINITIONS)
    +
    +#endif  /* !__MACHINE_XTYPES_H */


    _______________________________________________
    cfe-commits mailing list
    [email protected] <mailto:[email protected]>
    http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

--

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to