=================== BUG #3343: LATEST MODIFICATIONS ==================
http://savannah.gnu.org/bugs/?func=detailbug&bug_id=3343&group_id=68

Changes by: Joachim F. Kainz <[EMAIL PROTECTED]>
Date: Tue 07/22/2003 at 16:42 (GMT)

------------------ Additional Follow-up Comments ----------------------------
In the three lines mentioned memcpy is not used directly, but there are pass-by-value 
semantics used. As a consequence it seems that newer versions of gcc try to use memcpy 
(from stdlib) to create the duplicate structures.

I fixed the problem in my environment by adding the following code to the end of 
stage2/char_io.c:

#undef memcpy

void *
memcpy (void *to, const void *from, int len)
{
    return grub_memmove (to, from, len);
}

There are most likely more elegant ways to resolve this issue.



=================== BUG #3343: FULL BUG SNAPSHOT ===================


Submitted by: generica                Project: GNU GRUB                     
Submitted on: Sun 04/27/2003 at 11:21
Category:  Compilation                Severity:  Major                      
Priority:  None                       Bug Group:  Non-software Error        
Resolution:  None                     Assigned to:  None                    
Status:  Open                         Release:  0.93                        
Reproducibility:  Every Time          Planned Release:                      

Summary:  fails to compile: undefined reference to memcpy

Original Submission:  
linuxfromscratch system

gcc version 3.2.2
glibc version 2.3.1

Making all in stage2
make[2]: Entering directory `/usr/src/toinstall/grub-0.93/stage2'
gcc  -O3 -march=i586   -o pre_stage2.exec -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 
pre_stage2_exec-asm.o pre_stage2_exec-bios.o pre_stage2_exec-boot.o 
pre_stage2_exec-builtins.o pre_stage2_exec-char_io.o pre_stage2_exec-cmdline.o 
pre_stage2_exec-common.o pre_stage2_exec-console.o pre_stage2_exec-disk_io.o 
pre_stage2_exec-fsys_ext2fs.o pre_stage2_exec-fsys_fat.o pre_stage2_exec-fsys_ffs.o 
pre_stage2_exec-fsys_jfs.o pre_stage2_exec-fsys_minix.o 
pre_stage2_exec-fsys_reiserfs.o pre_stage2_exec-fsys_vstafs.o 
pre_stage2_exec-fsys_xfs.o pre_stage2_exec-gunzip.o pre_stage2_exec-hercules.o 
pre_stage2_exec-md5.o pre_stage2_exec-serial.o pre_stage2_exec-smp-imps.o 
pre_stage2_exec-stage2.o pre_stage2_exec-terminfo.o pre_stage2_exec-tparm.o
pre_stage2_exec-terminfo.o: In function `ti_set_term':
pre_stage2_exec-terminfo.o(.text+0x220): undefined reference to `memcpy'
pre_stage2_exec-terminfo.o: In function `ti_get_term':
pre_stage2_exec-terminfo.o(.text+0x23d): undefined reference to `memcpy'
collect2: ld returned 1 exit status
make[2]: *** [pre_stage2.exec] Error 1
make[2]: Leaving directory `/usr/src/toinstall/grub-0.93/stage2'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/toinstall/grub-0.93'
make: *** [all] Error 2


Follow-up Comments
*******************

-------------------------------------------------------
Date: Tue 07/22/2003 at 16:42       By: joachim_kainz
In the three lines mentioned memcpy is not used directly, but there are pass-by-value 
semantics used. As a consequence it seems that newer versions of gcc try to use memcpy 
(from stdlib) to create the duplicate structures.

I fixed the problem in my environment by adding the following code to the end of 
stage2/char_io.c:

#undef memcpy

void *
memcpy (void *to, const void *from, int len)
{
    return grub_memmove (to, from, len);
}

There are most likely more elegant ways to resolve this issue.


CC list is empty


No files currently attached


For detailed info, follow this link:
http://savannah.gnu.org/bugs/?func=detailbug&bug_id=3343&group_id=68

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/



_______________________________________________
Bug-grub mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-grub

Reply via email to