Bug 19136 - Can't build gcc 3.4.3: ld parse error on libgcc.map
Summary: Can't build gcc 3.4.3: ld parse error on libgcc.map
Status: RESOLVED DUPLICATE of bug 11003
Alias: None
Product: gcc
Classification: Unclassified
Component: c (show other bugs)
Version: 3.4.3
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-12-23 02:12 UTC by John Klingler
Modified: 2005-07-23 22:49 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John Klingler 2004-12-23 02:12:38 UTC
ld:libgcc/./libgcc.map: file format not recognized; treating as linker script

* the exact version of GCC being compiled;

    gcc-3.4.3

* the system type;

    SunOS ananke 5.5.1 Generic_103640-08 sun4m sparc SUNW,SPARCstation-5
    This system had gcc version 2.7.2 but no make. I downloaded,compiled
    and installed binutils-2.14.tar.gz and make-3.80.tar.gz.
   
* the options given when GCC was configured/built;

    None

* the complete command line that triggers the bug;

    make > & make.out & ; tail -f make.out

* the compiler output (error messages, warnings, etc.);

    (make output below)
    /usr/local/sparc-sun-solaris2.5.1/bin/ld:libgcc/./libgcc.map: file format
not recognized; treating as linker script
    /usr/local/sparc-sun-solaris2.5.1/bin/ld:libgcc/./libgcc.map:1: parse error
    collect2: ld returned 1 exit status
    make[2]: *** [libgcc_s.so] Error 1

* a complete set of source files;

    (The original gcc-3.4.3.tar file I downloaded)

* ld version linking GCC;

    GNU ld version 2.14 20030612

* the version of gcc compiling GCC;

    gcc version 2.7.2

Description:
1) I downloaded and unzipped gcc-3.4.3.tar.bz2

2)  I read the README and html files in INSTALL/, there did not seem to be any
special actions to be performed for my architecture so I didn't modify any files
or use any command line options.

3) I ran ./configure

4)  I ran  make > & make.out & ; tail -f make.out. ld failed in what appears to
be the final link of libgcc. It did not like the format of libgcc.map. It looked
fine to me (see attached)

Let me know if you need any of the post-configure files (Makefile, config.log,
etc. If you want the intermediate files I will have to remake saving the temp files.

================== libgcc.map ====================
GCC_3.0 {
  global:
	_Unwind_ForcedUnwind;
	__muldi3;
	__ashrdi3;
	__negvsi2;
	__subvdi3;
	__addvdi3;
	__clear_cache;
	__subvsi3;
	__addvsi3;
	__register_frame_info_table_bases;
	__ucmpdi2;
	_Unwind_GetGR;
	__fixunsdfdi;
	__ashldi3;
	__udivdi3;
	__deregister_frame_info;
	__negdi2;
	__deregister_frame_info_bases;
	__ffsdi2;
	__floatdidf;
	__register_frame_info;
	__fixdfdi;
	__cmpdi2;
	__register_frame_table;
	_Unwind_RaiseException;
	__divdi3;
	__lshrdi3;
	_Unwind_SetGR;
	__umoddi3;
	_Unwind_Resume;
	__fixunstfdi;
	_Unwind_GetIP;
	__fixunsdfsi;
	__fixunssfdi;
	__absvdi2;
	__mulvdi3;
	__fixtfdi;
	__floatdisf;
	__absvsi2;
	__mulvsi3;
	__moddi3;
	__fixsfdi;
	__register_frame_info_bases;
	_Unwind_GetDataRelBase;
	_Unwind_GetRegionStart;
	__deregister_frame;
	_Unwind_SetIP;
	_Unwind_GetLanguageSpecificData;
	__floatditf;
	_Unwind_DeleteException;
	__register_frame;
	__udivmoddi4;
	__fixunssfsi;
	_Unwind_Find_FDE;
	__negvdi2;
	__register_frame_info_table;
	_Unwind_GetTextRelBase;

  local:
	*;
};
GCC_3.3 {
  global:
	_Unwind_GetCFA;
	_Unwind_Resume_or_Rethrow;
	_Unwind_Backtrace;
	_Unwind_FindEnclosingFunction;
} GCC_3.0;
GCC_3.3.1 {
  global:
	__gcc_personality_v0;
} GCC_3.3;
GCC_3.4 {
  global:
	__ctzdi2;
	__ctzsi2;
	__clzdi2;
	__paritydi2;
	__clzsi2;
	__paritysi2;
	__popcountdi2;
	__popcountsi2;
} GCC_3.3.1;
GCC_3.4.2 {
  global:
	__enable_execute_stack;
} GCC_3.4;

================== make.out ==================
...
ranlib ./libgcc_eh.a
{ nm -pg  libgcc/./_muldi3.o libgcc/./_negdi2.o libgcc/./_lshrdi3.o
libgcc/./_ashldi3.o libgcc/./_ashrdi3.o libgcc/./_cmpdi2.o libgcc/./_ucmpdi2.o
libgcc/./_floatdidf.o libgcc/./_floatdisf.o libgcc/./_fixunsdfsi.o
libgcc/./_fixunssfsi.o libgcc/./_fixunsdfdi.o libgcc/./_fixdfdi.o
libgcc/./_fixunssfdi.o libgcc/./_fixsfdi.o libgcc/./_fixxfdi.o
libgcc/./_fixunsxfdi.o libgcc/./_floatdixf.o libgcc/./_fixunsxfsi.o
libgcc/./_fixtfdi.o libgcc/./_fixunstfdi.o libgcc/./_floatditf.o
libgcc/./_clear_cache.o libgcc/./_enable_execute_stack.o libgcc/./_trampoline.o
libgcc/./__main.o libgcc/./_absvsi2.o libgcc/./_absvdi2.o libgcc/./_addvsi3.o
libgcc/./_addvdi3.o libgcc/./_subvsi3.o libgcc/./_subvdi3.o libgcc/./_mulvsi3.o
libgcc/./_mulvdi3.o libgcc/./_negvsi2.o libgcc/./_negvdi2.o libgcc/./_ctors.o
libgcc/./_ffssi2.o libgcc/./_ffsdi2.o libgcc/./_clz.o libgcc/./_clzsi2.o
libgcc/./_clzdi2.o libgcc/./_ctzsi2.o libgcc/./_ctzdi2.o
libgcc/./_popcount_tab.o libgcc/./_popcountsi2.o libgcc/./_popcountdi2.o
libgcc/./_paritysi2.o libgcc/./_paritydi2.o libgcc/./_divdi3.o
libgcc/./_moddi3.o libgcc/./_udivdi3.o libgcc/./_umoddi3.o
libgcc/./_udiv_w_sdiv.o libgcc/./_udivmoddi4.o  libgcc/./unwind-dw2.o
libgcc/./unwind-dw2-fde.o libgcc/./unwind-sjlj.o libgcc/./gthr-gnat.o
libgcc/./unwind-c.o; echo %%; \
  cat ./libgcc-std.ver \
    | sed -e '/^[   ]*#/d' \
          -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' \
    | /share/jupiter/linux/ThirdPartySoftware/GNUtools/gcc-3.4.3/gcc/xgcc
-B/share/jupiter/linux/ThirdPartySoftware/GNUtools/gcc-3.4.3/gcc/
-B/usr/local/sparc-sun-solaris2.5.1/bin/
-B/usr/local/sparc-sun-solaris2.5.1/lib/ -isystem
/usr/local/sparc-sun-solaris2.5.1/include -isystem
/usr/local/sparc-sun-solaris2.5.1/sys-include -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. -I./. -I./../include -I../intl  -E
-xassembler-with-cpp -; \
} | nawk -f ./mkmap-symver.awk  > libgcc/./tmp-libgcc.map
mv 'libgcc/./tmp-libgcc.map' libgcc/./libgcc.map
/share/jupiter/linux/ThirdPartySoftware/GNUtools/gcc-3.4.3/gcc/xgcc
-B/share/jupiter/linux/ThirdPartySoftware/GNUtools/gcc-3.4.3/gcc/
-B/usr/local/sparc-sun-solaris2.5.1/bin/
-B/usr/local/sparc-sun-solaris2.5.1/lib/ -isystem
/usr/local/sparc-sun-solaris2.5.1/include -isystem
/usr/local/sparc-sun-solaris2.5.1/sys-include -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  -shared -nodefaultlibs -Wl,-h,libgcc_s.so.1
-Wl,-z,text -Wl,-z,defs -Wl,-M,libgcc/./libgcc.map -o libgcc_s.so.1.tmp  
libgcc/./_muldi3.o libgcc/./_negdi2.o libgcc/./_lshrdi3.o libgcc/./_ashldi3.o
libgcc/./_ashrdi3.o libgcc/./_cmpdi2.o libgcc/./_ucmpdi2.o libgcc/./_floatdidf.o
libgcc/./_floatdisf.o libgcc/./_fixunsdfsi.o libgcc/./_fixunssfsi.o
libgcc/./_fixunsdfdi.o libgcc/./_fixdfdi.o libgcc/./_fixunssfdi.o
libgcc/./_fixsfdi.o libgcc/./_fixxfdi.o libgcc/./_fixunsxfdi.o
libgcc/./_floatdixf.o libgcc/./_fixunsxfsi.o libgcc/./_fixtfdi.o
libgcc/./_fixunstfdi.o libgcc/./_floatditf.o libgcc/./_clear_cache.o
libgcc/./_enable_execute_stack.o libgcc/./_trampoline.o libgcc/./__main.o
libgcc/./_absvsi2.o libgcc/./_absvdi2.o libgcc/./_addvsi3.o libgcc/./_addvdi3.o
libgcc/./_subvsi3.o libgcc/./_subvdi3.o libgcc/./_mulvsi3.o libgcc/./_mulvdi3.o
libgcc/./_negvsi2.o libgcc/./_negvdi2.o libgcc/./_ctors.o libgcc/./_ffssi2.o
libgcc/./_ffsdi2.o libgcc/./_clz.o libgcc/./_clzsi2.o libgcc/./_clzdi2.o
libgcc/./_ctzsi2.o libgcc/./_ctzdi2.o libgcc/./_popcount_tab.o
libgcc/./_popcountsi2.o libgcc/./_popcountdi2.o libgcc/./_paritysi2.o
libgcc/./_paritydi2.o libgcc/./_divdi3.o libgcc/./_moddi3.o libgcc/./_udivdi3.o
libgcc/./_umoddi3.o libgcc/./_udiv_w_sdiv.o libgcc/./_udivmoddi4.o 
libgcc/./unwind-dw2.o libgcc/./unwind-dw2-fde.o libgcc/./unwind-sjlj.o
libgcc/./gthr-gnat.o libgcc/./unwind-c.o -lc && rm -f libgcc_s.so && if [ -f
libgcc_s.so.1 ]; then mv -f libgcc_s.so.1 libgcc_s.so.1.`basename `; else true;
fi && mv libgcc_s.so.1.tmp libgcc_s.so.1 && ln -s libgcc_s.so.1 libgcc_s.so
/usr/local/sparc-sun-solaris2.5.1/bin/ld:libgcc/./libgcc.map: file format not
recognized; treating as linker script
/usr/local/sparc-sun-solaris2.5.1/bin/ld:libgcc/./libgcc.map:1: parse error
collect2: ld returned 1 exit status
make[2]: *** [libgcc_s.so] Error 1
make[2]: Leaving directory
`/share/jupiter/linux/ThirdPartySoftware/GNUtools/gcc-3.4.3/gcc'
make[1]: *** [libgcc.a] Error 2
make[1]: Leaving directory
`/share/jupiter/linux/ThirdPartySoftware/GNUtools/gcc-3.4.3/gcc'
make: *** [all-gcc] Error 2
Comment 1 Andrew Pinski 2004-12-23 02:15:36 UTC
There is the problem:
binutils-2.14.tar.gz 

so you need --with-gnu-as and --with-gnu-ld.
Comment 2 John Klingler 2004-12-23 23:59:52 UTC
(In reply to comment #1)
> There is the problem:
> binutils-2.14.tar.gz 
> 
> so you need --with-gnu-as and --with-gnu-ld.

Adding these two options does not solve the problem. The libgcc_s.so does not
get built. Here's the command and output:
/share/jupiter/linux/ThirdPartySoftware/GNUtools/gcc-3.4.3/gcc/xgcc
-B/share/jupiter/linux/ThirdPartySoftware/GNUtools/gcc-3.4.3/gcc/
-B/usr/local/sparc-sun-solaris2.5.1/bin/
-B/usr/local/sparc-sun-solaris2.5.1/lib/ -isystem
/usr/local/sparc-sun-solaris2.5.1/include -isystem
/usr/local/sparc-sun-solaris2.5.1/sys-include -O2  -DIN_GCC    -W -Wall
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition
 -isystem ./include  -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 --with-gnu-as
--with-gnu-ld -D__GCC_FLOAT_NOT_NEEDED  -shared -nodefaultlibs
-Wl,-h,libgcc_s.so.1 -Wl,-z,text -Wl,-z,defs -Wl,-M,libgcc/./libgcc.map -o
libgcc_s.so.1.tmp   libgcc/./_muldi3.o libgcc/./_negdi2.o libgcc/./_lshrdi3.o
libgcc/./_ashldi3.o libgcc/./_ashrdi3.o libgcc/./_cmpdi2.o libgcc/./_ucmpdi2.o
libgcc/./_floatdidf.o libgcc/./_floatdisf.o libgcc/./_fixunsdfsi.o
libgcc/./_fixunssfsi.o libgcc/./_fixunsdfdi.o libgcc/./_fixdfdi.o
libgcc/./_fixunssfdi.o libgcc/./_fixsfdi.o libgcc/./_fixxfdi.o
libgcc/./_fixunsxfdi.o libgcc/./_floatdixf.o libgcc/./_fixunsxfsi.o
libgcc/./_fixtfdi.o libgcc/./_fixunstfdi.o libgcc/./_floatditf.o
libgcc/./_clear_cache.o libgcc/./_enable_execute_stack.o libgcc/./_trampoline.o
libgcc/./__main.o libgcc/./_absvsi2.o libgcc/./_absvdi2.o libgcc/./_addvsi3.o
libgcc/./_addvdi3.o libgcc/./_subvsi3.o libgcc/./_subvdi3.o libgcc/./_mulvsi3.o
libgcc/./_mulvdi3.o libgcc/./_negvsi2.o libgcc/./_negvdi2.o libgcc/./_ctors.o
libgcc/./_ffssi2.o libgcc/./_ffsdi2.o libgcc/./_clz.o libgcc/./_clzsi2.o
libgcc/./_clzdi2.o libgcc/./_ctzsi2.o libgcc/./_ctzdi2.o
libgcc/./_popcount_tab.o libgcc/./_popcountsi2.o libgcc/./_popcountdi2.o
libgcc/./_paritysi2.o libgcc/./_paritydi2.o libgcc/./_divdi3.o
libgcc/./_moddi3.o libgcc/./_udivdi3.o libgcc/./_umoddi3.o
libgcc/./_udiv_w_sdiv.o libgcc/./_udivmoddi4.o  libgcc/./unwind-dw2.o
libgcc/./unwind-dw2-fde.o libgcc/./unwind-sjlj.o libgcc/./gthr-gnat.o
libgcc/./unwind-c.o -lc && rm -f libgcc_s.so && if [ -f libgcc_s.so.1 ]; then mv
-f libgcc_s.so.1 libgcc_s.so.1.`basename `; else true; fi && mv
libgcc_s.so.1.tmp libgcc_s.so.1 && ln -s libgcc_s.so.1 libgcc_s.so
/usr/local/sparc-sun-solaris2.5.1/bin/ld:libgcc/./libgcc.map: file format not
recognized; treating as linker script
/usr/local/sparc-sun-solaris2.5.1/bin/ld:libgcc/./libgcc.map:1: parse error
collect2: ld returned 1 exit status
make[2]: *** [libgcc_s.so] Error 1
make[2]: Leaving directory
`/share/jupiter/linux/ThirdPartySoftware/GNUtools/gcc-3.4.3/gcc'
make[1]: *** [libgcc.a] Error 2
make[1]: Leaving directory
`/share/jupiter/linux/ThirdPartySoftware/GNUtools/gcc-3.4.3/gcc'
make: *** [all-gcc] Error 2

Comment 3 Eric Botcazou 2004-12-24 06:14:56 UTC
You should browse the database before filing a new bug report.

*** This bug has been marked as a duplicate of 11003 ***