[LLVMdev] Error building compiler-rt

Pranav Garg pranav.garg2107 at gmail.com
Thu Aug 1 09:47:35 PDT 2013


Btw I just checked, my project does not require compiler-rt (though its
installation instructions had asked me to install compiler-rt). However, I
would be glad to answer any questions related to my specific system to
debug this compilation error.

Thanks


On Thu, Aug 1, 2013 at 10:26 AM, Pranav Garg <pranav.garg2107 at gmail.com>wrote:

> yes I think that is correct. I wrote a simple program to print if
> sizeof(uintptr_t) != sizeof(unsigned char *) and when I compile with gcc
> -m64 and execute it on a 64-bit host (that is different from the 32-bit
> laptop on which I originally compiled the program), it says the sizes are
> not equal.
>
> Thanks
> Pranav
>
>
> On Thu, Aug 1, 2013 at 9:29 AM, Alexey Samsonov <samsonov at google.com>wrote:
>
>>
>> On Thu, Aug 1, 2013 at 5:32 PM, Pranav Garg <pranav.garg2107 at gmail.com>wrote:
>>
>>> Dear Alexey,
>>>
>>> Yes I am sure that the llvm, clang and compiler-rt are synced to the
>>> same version. I downloaded them all from git
>>> http://llvm.org/docs/GettingStarted.html#git-mirror
>>> I think I need compiler-rt for my project but I'll verify it again to
>>> see if I can proceed without it.
>>> You are correct that compiler-rt is compiled with the just built clang.
>>> The complete command that gives an error while compiler-rt compilation is:
>>>
>>> /home/pranav/smack-project/llvm/build/Release+Asserts/bin/clang -fPIC
>>> -Wall -Werror -O3 -fomit-frame-pointer -m64
>>> --sysroot=/home/pranav/smack-project/llvm/src/projects/compiler-rt/SDKs/linux
>>> -c -o
>>> /home/pranav/smack-project/llvm/build/tools/clang/runtime/compiler-rt/clang_linux/full-x86_64/x86_64/SubDir.lib/enable_execute_stack.o
>>> /home/pranav/smack-project/llvm/src/projects/compiler-rt/lib/enable_execute_stack.c
>>>
>>> /home/pranav/smack-project/llvm/src/projects/compiler-rt/lib/enable_execute_stack.c:53:29:
>>> error: cast to 'unsigned char *' from smaller integer type 'unsigned int'
>>>       [-Werror,-Wint-to-pointer-cast]
>>>         unsigned char* startPage = (unsigned char*)(p & pageAlignMask);
>>>
>>
>> Hm... Is it true that somewhy on your system (32-bit host, I presume),
>> sizeof(uintptr_t) != sizeof(unsigned char *) when you build code in 64-bit
>> mode (with -m64)?
>>
>>
>>>
>>>
>>> Thanks
>>> Pranav
>>>
>>>
>>> On Thu, Aug 1, 2013 at 7:27 AM, Alexey Samsonov <samsonov at google.com>wrote:
>>>
>>>> Hi Pranav,
>>>>
>>>> On Thu, Aug 1, 2013 at 1:54 AM, Pranav Garg <pranav.garg2107 at gmail.com>wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I see that ENABLE_WERROR is being set to off (the default value) in
>>>>> the config.log in the llvm build. However on grepping for WERROR in the
>>>>> compiler-rt folder I get the following output:
>>>>>
>>>>> pranav at pranav:~/smack-project/llvm-3.4/src/projects/compiler-rt$ grep
>>>>> -Rin WERROR *
>>>>> lib/asan/tests/CMakeLists.txt:38:  -Werror
>>>>> lib/asan/asan_malloc_mac.cc:253:// This function is currently unused,
>>>>> and we build with -Werror.
>>>>> lib/tsan/check_cmake.sh:8:CC=clang CXX=clang++ cmake
>>>>> -DLLVM_ENABLE_WERROR=ON -DCMAKE_BUILD_TYPE=Release
>>>>> -DLLVM_ENABLE_ASSERTIONS=ON $ROOT/../../../..
>>>>> lib/tsan/Makefile.old:3:CXXFLAGS = -fPIE -fno-rtti -g -Wall -Werror \
>>>>> lib/tsan/rtl/Makefile.old:1:CXXFLAGS = -fPIE -g -Wall -Werror
>>>>> -fno-builtin -DTSAN_DEBUG=$(DEBUG) -DSANITIZER_DEBUG=$(DEBUG)
>>>>> lib/tsan/go/buildgo.sh:68:FLAGS=" -I../rtl -I../..
>>>>> -I../../sanitizer_common -I../../../include -m64 -Wall -Werror
>>>>> -Wno-maybe-uninitialized -fno-exceptions -fno-rtti -DTSAN_GO -DSANITIZER_GO
>>>>> -DTSAN_SHADOW_COUNT=4 $OSCFLAGS"
>>>>> lib/sanitizer_common/sanitizer_platform_limits_posix.cc:410:  unsigned
>>>>> IOCTL_FDWERRORCLR = FDWERRORCLR;
>>>>> lib/sanitizer_common/sanitizer_platform_limits_posix.cc:411:  unsigned
>>>>> IOCTL_FDWERRORGET = FDWERRORGET;
>>>>> lib/sanitizer_common/sanitizer_platform_limits_posix.h:442:  extern
>>>>> unsigned IOCTL_FDWERRORCLR;
>>>>> lib/sanitizer_common/sanitizer_platform_limits_posix.h:443:  extern
>>>>> unsigned IOCTL_FDWERRORGET;
>>>>> lib/sanitizer_common/tests/CMakeLists.txt:36:  -Wall -Werror
>>>>> -Werror=sign-compare)
>>>>> lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc:177:
>>>>> _(FDWERRORCLR, NONE, 0);
>>>>> lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc:178:
>>>>> _(FDWERRORGET, WRITE, struct_floppy_write_errors_sz);
>>>>> make/options.mk:10:CFLAGS := -Wall -Werror
>>>>> make/platform/clang_linux.mk:85:CFLAGS := -Wall -Werror -O3
>>>>> -fomit-frame-pointer
>>>>> make/platform/clang_darwin.mk:109:CFLAGS := -Wall -Werror -O3
>>>>> -fomit-frame-pointer
>>>>> make/platform/multi_arch.mk:10:CFLAGS := -Wall -Werror
>>>>> make/platform/darwin_fat.mk:42:CFLAGS := -Wall -Werror
>>>>>
>>>>> I see that -DLLVM_ENABLE_WERROR is being set in the script
>>>>> "lib/tsan/check_cmake.sh". Should I disable -DLLVM_ENABLE_WERROR at this
>>>>> point?
>>>>>
>>>>> Thanks
>>>>> Pranav
>>>>>
>>>>>
>>>>> On Wed, Jul 31, 2013 at 3:24 PM, Matt Arsenault <arsenm2 at gmail.com>wrote:
>>>>>
>>>>>> You can disable -Werror by adding the cmake flag
>>>>>> -DLLVM_ENABLE_WERROR=OFF, which should let it just ignore that (that's also
>>>>>> the default, so you must have turned it on somewhere)
>>>>>>
>>>>>> On Jul 31, 2013, at 13:09 , Pranav Garg <pranav.garg2107 at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>> > Hi,
>>>>>> >
>>>>>> > I am trying to build llvm along with clang and compiler-rt. When I
>>>>>> run make, I am getting the following compilation error (I tried compiling
>>>>>> llvm-3.2, which is what I need for my project, but also tried llvm-3.3 and
>>>>>> the current llvm source from the git repository).
>>>>>> >
>>>>>> > ...
>>>>>> >   COMPILE:   clang_linux/full-x86_64/x86_64:
>>>>>> /home/pranav/smack-project/llvm/src/projects/compiler-rt/lib/enable_execute_stack.c
>>>>>> >
>>>>>> /home/pranav/smack-project/llvm/src/projects/compiler-rt/lib/enable_execute_stack.c:53:29:
>>>>>> error: cast to 'unsigned char *' from smaller integer type 'unsigned int'
>>>>>> >       [-Werror,-Wint-to-pointer-cast]
>>>>>> >         unsigned char* startPage = (unsigned char*)(p &
>>>>>> pageAlignMask);
>>>>>> >                                    ^
>>>>>> >
>>>>>> /home/pranav/smack-project/llvm/src/projects/compiler-rt/lib/enable_execute_stack.c:54:27:
>>>>>> error: cast to 'unsigned char *' from smaller integer type 'unsigned int'
>>>>>> >       [-Werror,-Wint-to-pointer-cast]
>>>>>> >         unsigned char* endPage = (unsigned
>>>>>> char*)((p+TRAMPOLINE_SIZE+pageSize) & pageAlignMask);
>>>>>> >                                  ^
>>>>>> > 2 errors generated.
>>>>>>
>>>>>
>>>> This is weird. In configure+make build all sources from
>>>> projects/compiler-rt are compiled with just-built Clang, so -Werror should
>>>> work fine for you,
>>>> no matter which host compiler you have. Are you sure llvm, clang and
>>>> compiler-rt checkouts are synced to the same revision?
>>>> As a workaround, you may try to remove compiler-rt checkout if you
>>>> don't need it for now.
>>>>
>>>>
>>>>
>>>>>  > ...
>>>>>> >
>>>>>> > On gcc --version I get the following output:
>>>>>> >         gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
>>>>>> > My operating system is a Ubuntu 12.04.1 LTS. On typing uname -a I
>>>>>> get:
>>>>>> >         Linux pranav 3.2.0-33-generic-pae #52-Ubuntu SMP Thu Oct 18
>>>>>> 16:39:21 UTC 2012 i686 i686 i386 GNU/Linux
>>>>>> >
>>>>>> > Any ideas as to how to resolve this compilation error?
>>>>>> >
>>>>>> > Thanks
>>>>>> > Pranav
>>>>>> > _______________________________________________
>>>>>> > LLVM Developers mailing list
>>>>>> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>>>>> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> LLVM Developers mailing list
>>>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Alexey Samsonov, MSK
>>>>
>>>
>>>
>>
>>
>> --
>> Alexey Samsonov, MSK
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130801/bd432966/attachment.html>


More information about the llvm-dev mailing list