grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fwd: grub2: FTBFS on powerpc (__floatundisf in ls is not defined)


From: Robert Millan
Subject: Re: Fwd: grub2: FTBFS on powerpc (__floatundisf in ls is not defined)
Date: Wed, 26 Dec 2007 10:21:16 +0100
User-agent: Mutt/1.5.13 (2006-08-11)

On Tue, Dec 25, 2007 at 08:21:50PM +0100, Robert Millan wrote:
> On Tue, Dec 25, 2007 at 01:06:12PM +0100, Philipp Kern wrote:
> > On Tue, Dec 25, 2007 at 11:52:47AM +0100, Robert Millan wrote:
> > > Philipp, I'm attaching a patch for the __floatundisf.  There might be 
> > > others,
> > > though.  Please, could you check and report ?
> > 
> > With the patch applied, on Debian Lenny:
> > 
> > cc -o kernel.elf kernel_elf-kern_powerpc_ieee1275_crt0.o 
> > kernel_elf-kern_powerpc_ieee1275_cmain.o 
> > kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-kern_main.o 
> > kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o 
> > kernel_elf-kern_err.o kernel_elf-kern_file.o kernel_elf-kern_fs.o 
> > kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o 
> > kernel_elf-kern_rescue.o kernel_elf-kern_term.o 
> > kernel_elf-kern_powerpc_ieee1275_init.o 
> > kernel_elf-term_ieee1275_ofconsole.o 
> > kernel_elf-kern_powerpc_ieee1275_openfw.o kernel_elf-disk_ieee1275_ofdisk.o 
> > kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o 
> > kernel_elf-kern_powerpc_dl.o kernel_elf-kernel_elf_symlist.o 
> > kernel_elf-kern_powerpc_cache.o  -nostdlib -static-libgcc -lgcc 
> > -Wl,-N,-S,-Ttext,0x10000,-Bstatic
> > kernel_elf-kernel_elf_symlist.o:(.data+0x584): undefined reference to 
> > `__make_dp'
> > kernel_elf-kernel_elf_symlist.o:(.data+0x58c): undefined reference to 
> > `__make_fp'
> > kernel_elf-kernel_elf_symlist.o:(.data+0x5bc): undefined reference to 
> > `__pack_d'
> > kernel_elf-kernel_elf_symlist.o:(.data+0x5c4): undefined reference to 
> > `__pack_f'
> > kernel_elf-kernel_elf_symlist.o:(.data+0x5dc): undefined reference to 
> > `__thenan_df'
> > kernel_elf-kernel_elf_symlist.o:(.data+0x5e4): undefined reference to 
> > `__thenan_sf'
> > kernel_elf-kernel_elf_symlist.o:(.data+0x5fc): undefined reference to 
> > `__unpack_d'
> > kernel_elf-kernel_elf_symlist.o:(.data+0x604): undefined reference to 
> > `__unpack_f'

Those were present in older versions of gcc, but not anymore.  The following
patch fixes the problem (while also breaking backwards compatibility):

diff -ur grub2-1.95+20071101/include/grub/powerpc/libgcc.h 
grub2-1.95+20071101.new/include/grub/powerpc/libgcc.h
--- grub2-1.95+20071101/include/grub/powerpc/libgcc.h   2007-07-21 
23:32:24.000000000 +0000
+++ grub2-1.95+20071101.new/include/grub/powerpc/libgcc.h       2007-12-26 
08:42:49.000000000 +0000
@@ -26,19 +26,12 @@
 void EXPORT_FUNC (__floatsidf) (void);
 void EXPORT_FUNC (__floatsisf) (void);
 void EXPORT_FUNC (__lshrdi3) (void);
-void EXPORT_FUNC (__make_dp) (void);
-void EXPORT_FUNC (__make_fp) (void);
 void EXPORT_FUNC (__muldf3) (void);
 void EXPORT_FUNC (__mulsf3) (void);
-void EXPORT_FUNC (__pack_d) (void);
-void EXPORT_FUNC (__pack_f) (void);
 void EXPORT_FUNC (__subdf3) (void);
 void EXPORT_FUNC (__subsf3) (void);
-void EXPORT_FUNC (__thenan_df) (void);
-void EXPORT_FUNC (__thenan_sf) (void);
 void EXPORT_FUNC (__trampoline_setup) (void);
 void EXPORT_FUNC (__truncdfsf2) (void);
-void EXPORT_FUNC (__unpack_d) (void);
-void EXPORT_FUNC (__unpack_f) (void);
 void EXPORT_FUNC (__floatdisf) (void);
+void EXPORT_FUNC (__floatundisf) (void);
 void EXPORT_FUNC (__cmpdi2) (void);

Is there any way we can preserve compatibility with gcc 3.x ?  Perhaps obtain
a list of symbols dynamicaly, but maybe this would bloat the kernel too much.

-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]