Article View: gnu.utils.bug
Article #1525-Tdata command not properly handled by gcc/ld
From: Glenn Engel
Date: Wed, 29 Mar 1989 18:14
Date: Wed, 29 Mar 1989 18:14
131 lines
4400 bytes
4400 bytes
System: hp9000/350
gcc : 1.34 using gnu a.out
ld : December 88
When using the new -Tdata option with gcc, gcc splits up the option
when it get's passed on to ld:
gcc -v -Tdata c00000 test.c
gcc version 1.34
/usr/local/lib/gcc-cpp -v -undef -D__GNUC__ -Dhp9000s200 -Dhp9000s300 -DPWB -Dm
c68k -Dhpux -Dunix -D__hp9000s200__ -D__hp9000s300__ -D__PWB__ -D__mc68k__ -D__h
pux__ -D__unix__ -D__HAVE_68881__ -Dmc68020 test.c /tmp/cca28029.cpp
GNU CPP version 1.34
/usr/local/lib/gcc-cc1 /tmp/cca28029.cpp -quiet -dumpbase test.c -version -o /t
mp/cca28029.s
GNU C version 1.34 (68k, MIT syntax) compiled by GNU C version 1.34.
/usr/local/lib/gcc-as -mc68020 /tmp/cca28029.s -o test.o
/usr/local/lib/gcc-ld -Tdata /usr/local/lib/gnu/crt0.o c00000 test.o /usr/local
/lib/gcc-gnulib -lc
ld: invalid argument to -Tdata
Notice that crt0.o got put between -Tdata and c00000. If I try combining
the options together I get this result:
gcc -v -Tdatac00000 test.c
gcc version 1.34
/usr/local/lib/gcc-cpp -v -undef -D__GNUC__ -Dhp9000s200 -Dhp9000s300 -DPWB -Dm
c68k -Dhpux -Dunix -D__hp9000s200__ -D__hp9000s300__ -D__PWB__ -D__mc68k__ -D__h
pux__ -D__unix__ -D__HAVE_68881__ -Dmc68020 test.c /tmp/cca28064.cpp
GNU CPP version 1.34
/usr/local/lib/gcc-cc1 /tmp/cca28064.cpp -quiet -dumpbase test.c -version -o /t
mp/cca28064.s
GNU C version 1.34 (68k, MIT syntax) compiled by GNU C version 1.34.
/usr/local/lib/gcc-as -mc68020 /tmp/cca28064.s -o test.o
/usr/local/lib/gcc-ld -Tdatac00000 /usr/local/lib/gnu/crt0.o test.o /usr/local/
lib/gcc-gnulib -lc
ld: -T argument not multiple of page size, with sharable output
I have fixed my version of ld.c to make it accept the -Tdatac00000 syntax.
Patches follow.
Thanks,
--
| Glenn R. Engel
| Hewlett-Packard
| (206) 335-2066
| glenne%hplsla@hplabs.hp.com
*** ld.c.orig Wed Mar 29 09:09:09 1989
--- ld.c Wed Mar 29 09:26:29 1989
***************
*** 1128,1134
decode_option (swt, arg)
register char *swt, *arg;
{
! if (! strcmp (swt + 1, "Ttext"))
{
text_start = parse (arg, "%x", "invalid argument to -Ttext");
T_flag_specified = 1;
--- 1128,1134 -----
decode_option (swt, arg)
register char *swt, *arg;
{
! if (! strncmp (swt + 1, "Ttext", 5))
{
if (swt[6] == 0)
text_start = parse (arg, "%x", "invalid argument to -Ttext");
***************
*** 1130,1136
{
if (! strcmp (swt + 1, "Ttext"))
{
! text_start = parse (arg, "%x", "invalid argument to -Ttext");
T_flag_specified = 1;
return;
}
--- 1130,1140 -----
{
if (! strncmp (swt + 1, "Ttext", 5))
{
! if (swt[6] == 0)
! text_start = parse (arg, "%x", "invalid argument to -Ttext");
! else
! text_start = parse (swt+6, "%x", "invalid argument to -Ttext");
!
T_flag_specified = 1;
return;
}
***************
*** 1134,1140
T_flag_specified = 1;
return;
}
! if (! strcmp (swt + 1, "Tdata"))
{
data_start = parse (arg, "%x", "invalid argument to -Tdata");
Tdata_flag_specified = 1;
--- 1138,1144 -----
T_flag_specified = 1;
return;
}
! if (! strncmp (swt + 1, "Tdata",5))
{
if (swt[6] == 0)
data_start = parse (arg, "%x", "invalid argument to -Tdata");
***************
*** 1136,1142
}
if (! strcmp (swt + 1, "Tdata"))
{
! data_start = parse (arg, "%x", "invalid argument to -Tdata");
Tdata_flag_specified = 1;
return;
}
--- 1140,1149 -----
}
if (! strncmp (swt + 1, "Tdata",5))
{
! if (swt[6] == 0)
! data_start = parse (arg, "%x", "invalid argument to -Tdata");
! else
! data_start = parse (swt+6, "%x", "invalid argument to -Tdata");
Tdata_flag_specified = 1;
return;
}
Technical Details
Message-ID:
<8903291814.AA28078@labgre.HP.COM>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!HP-SDE.SDE.HP.COM!glenne%hplslaShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!HP-SDE.SDE.HP.COM!glenne%hplsla From: glenne%hplsla@HP-SDE.SDE.HP.COM (Glenn Engel) Newsgroups: gnu.utils.bug Subject: -Tdata command not properly handled by gcc/ld Message-ID: <8903291814.AA28078@labgre.HP.COM> Date: 29 Mar 89 18:14:55 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 131