Merge Patch File

Hi all,

The LLVM GCC merge patch file is available here:

  http://nondot.org/~void/llvm-r139307-r142930.diff.gz

Share and enjoy!
-bw

The LLVM GCC merge patch file is available here:

  http://nondot.org/~void/llvm-r139307-r142930.diff.gz

Share and enjoy!

On x86-linux:

../../gcc-4.2.llvm.master/gcc/config/i386/i386.c: In function ‘output_pic_addr_const’:
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:7682: error: ‘darwin_stubs’ undeclared (first use in this function)
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:7682: error: (Each undeclared identifier is reported only once
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:7682: error: for each function it appears in.)
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c: In function ‘ix86_expand_move’:
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:9453: warning: unused variable ‘insn’
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c: In function ‘ix86_expand_convert_uns_DI2DF_sse’:
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:10270: warning: large integer implicitly truncated to unsigned type
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c: In function ‘ix86_expand_convert_sign_DI2DF_sse’:
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:10377: warning: large integer implicitly truncated to unsigned type

Ciao,

D.

> The LLVM GCC merge patch file is available here:
>
> http://nondot.org/~void/llvm-r139307-r142930.diff.gz
>
> Share and enjoy!

On x86-linux:

../../gcc-4.2.llvm.master/gcc/config/i386/i386.c: In function 'output_pic_addr_const':
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:7682: error: 'darwin_stubs' undeclared (first use in this function)
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:7682: error: (Each undeclared identifier is reported only once
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:7682: error: for each function it appears in.)
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c: In function 'ix86_expand_move':
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:9453: warning: unused variable 'insn'

Fixed here:

http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080317/059912.html

../../gcc-4.2.llvm.master/gcc/config/i386/i386.c: In function 'ix86_expand_convert_uns_DI2DF_sse':
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:10270: warning: large integer implicitly truncated to unsigned type
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c: In function 'ix86_expand_convert_sign_DI2DF_sse':
../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:10377: warning: large integer implicitly truncated to unsigned type

These aren't from the patch...

-bw

Hi Bill, thanks for fixing it.

> ../../gcc-4.2.llvm.master/gcc/config/i386/i386.c: In function 'ix86_expand_convert_uns_DI2DF_sse':
> ../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:10270: warning: large integer implicitly truncated to unsigned type
> ../../gcc-4.2.llvm.master/gcc/config/i386/i386.c: In function 'ix86_expand_convert_sign_DI2DF_sse':
> ../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:10377: warning: large integer implicitly truncated to unsigned type
>
These aren't from the patch...

Yup, it's been like that for ever. I was secretly hoping you would
fix them too :slight_smile:

Ciao,

Duncan.

Hi Bill, thanks for fixing it.

No prob! :slight_smile:

> > ../../gcc-4.2.llvm.master/gcc/config/i386/i386.c: In function 'ix86_expand_convert_uns_DI2DF_sse':
> > ../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:10270: warning: large integer implicitly truncated to unsigned type
> > ../../gcc-4.2.llvm.master/gcc/config/i386/i386.c: In function 'ix86_expand_convert_sign_DI2DF_sse':
> > ../../gcc-4.2.llvm.master/gcc/config/i386/i386.c:10377: warning: large integer implicitly truncated to unsigned type
> >
> These aren't from the patch...

Yup, it's been like that for ever. I was secretly hoping you would
fix them too :slight_smile:

:slight_smile: Yeah, I looked at the code and didn't know of a good way to tackle
it...I'm *assuming* that it's complaining about this value:

  0x10000000000000ULL

but can't be for sure. I'm nervous dealing with the
REAL_VALUE_FROM_INT functions...

-bw

Bill Wendling wrote:

  

Hi Bill, thanks for fixing it.

No prob! :slight_smile:

I can't build llvm-gcc4.2 on x86-32 Linux.
What is kext64, and how do I disable it? (I suppose I don't need it on a
32-bit platform?)
.....
ranlib kext/libgcc_eh.a
/home/edwin/llvm/obj42/./gcc/xgcc -B/home/edwin/llvm/obj42/./gcc/
-B/home/edwin/llvm/obj42/../install/i686-pc-linux-gnu/bin/
-B/home/edwin/llvm/obj42/../install/i686-pc-linux-gnu/lib/ -isystem
/home/edwin/llvm/obj42/../install/i686-pc-linux-gnu/include -isystem
/home/edwin/llvm/obj42/../install/i686-pc-linux-gnu/sys-include -O2
-O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC
-g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I.
-I../../llvm-gcc4.2/gcc -I../../llvm-gcc4.2/gcc/.
-I../../llvm-gcc4.2/gcc/../include
-I../../llvm-gcc4.2/gcc/../libcpp/include
-I../../llvm-gcc4.2/gcc/../libdecnumber -I../libdecnumber
-I/home/edwin/llvm/llvm-svn/trunk/include
-I/home/edwin/llvm/llvm-svn/trunk//include -mkernel -m64
-Dmalloc=kern_os_malloc -Dfree=kern_os_free -DLIBCC_KEXT -DL_muldi3
-fvisibility=hidden -DHIDE_EXPORTS -c ../../llvm-gcc4.2/gcc/libgcc2.c -o
libgcc/kext64/_muldi3.o
../../llvm-gcc4.2/gcc/libgcc2.c:1: sorry, unimplemented: 64-bit mode not
compiled in
make[4]: *** [libgcc/kext64/_muldi3.o] Error 1
make[4]: Leaving directory `/var/local/src/llvm/obj42/gcc'

I configured as:
../llvm-gcc4.2/configure --prefix=/home/edwin/llvm/obj42/../install
--enable-llvm=/home/edwin/llvm/llvm-svn/trunk/ --program-prefix=llvm-
--enable-checking=release --enable-languages=c,c++

Thanks,
--Edwin

Comes from:

         APPLE_LOCAL='APPLE LOCAL libcc_kext' \
         MULTILIBS="`$(GCC_FOR_TARGET) --print-multi-lib` static;@static@fno-pic kext;@Dmal
loc=kern_os_malloc@Dfree=kern_os_free@DLIBCC_KEXT@static@fno-pic@fno-exceptions@fno-non-ca
ll-exceptions$(KEXT_EXTRA_FLAGS) $(if $(findstring i686,$(target)),kext64;@mkernel@m64@Dma
lloc=kern_os_malloc@Dfree=kern_os_free@DLIBCC_KEXT$(KEXT_EXTRA_FLAGS))" \
         EXTRA_MULTILIB_PARTS='$(EXTRA_MULTILIB_PARTS)' \

in gcc/Makefile.in. I'd recommend something like:

# APPLE LOCAL begin libcc_kext
ifeq ($taregt, *-*-darwin*) SPELLING
APPLE_EXTRA_MULTI := static;@static@fno-pic kext;@Dmalloc=kern_os_malloc@Dfree=kern_os_free@DLIBCC_KEXT@static@fno-pic@fno-exceptions@fno-non-call-exceptions$(KEXT_EXTRA_FLAGS) $(if $(findstring i686,$(target)),kext64;@mkernel@m64@Dmalloc=kern_os_malloc@Dfree=kern_os_free@DLIBCC_KEXT$(KEXT_EXTRA_FLAGS))
endif
# APPLE LOCAL end libcc_kext

         APPLE_LOCAL='APPLE LOCAL libcc_kext' \
         MULTILIBS="`$(GCC_FOR_TARGET) --print-multi-lib` $(APPLE_EXTRA_MULTI)" \
         EXTRA_MULTILIB_PARTS='$(EXTRA_MULTILIB_PARTS)' \

Thanks, Mike! I applied this to the tree. Török, please give it a try.
In the meantime, I'm going to try on a Linux machine I just got access
to.

-bw

No, you applied something else to the tree! :slight_smile: I had a space before the \ and after the ". The below should fix it.

Doing diffs in .:
--- ./Makefile.in.~1~ 2008-03-19 15:45:54.000000000 -0700
+++ ./Makefile.in 2008-03-19 16:30:07.000000000 -0700
@@ -1689,7 +1689,7 @@ libgcc.mk: config.status Makefile mklibg
    D128PBIT='$(D128PBIT)' \
    D128PBIT_FUNCS='$(D128PBIT_FUNCS)' \
    APPLE_LOCAL='APPLE LOCAL libcc_kext' \
- MULTILIBS="`$(GCC_FOR_TARGET) --print-multi-lib` $(APPLE_EXTRA_MULTI)"\
+ MULTILIBS="`$(GCC_FOR_TARGET) --print-multi-lib` $(APPLE_EXTRA_MULTI)" \
    EXTRA_MULTILIB_PARTS='$(EXTRA_MULTILIB_PARTS)' \
    SHLIB_LINK='$(SHLIB_LINK)' \
    SHLIB_INSTALL='$(SHLIB_INSTALL)' \

You're right. :frowning: Fixed. Thanks!

-bw

Bill Wendling wrote:

Thanks, Mike! I applied this to the tree. Török, please give it a try.

I have successfully bootstrapped llvm-gcc4.2 r48587 on 32-bit Linux.

Thanks,
--Edwin

Wonderful, thanks for the report.