This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
> You may look@the following message in this thread:
> <3C63C15E.BDCD6865@luukku.com>
> Wolfgang
I haven't find within this thread <3C63C15E.BDCD6865@luukku.com> to make what
I've done (may be I missed something, this is a little bit to difficult for me)
... or I am not a guru enough patch the original code to produce what I've
done.
I think that the ``startfile'' options is usefull to help having something from
scratch. In fact we have allready a full running programm that runs with a
Microtec C++ compiler, (thus the _start to main and bzero the memory is
allready done) ...
(I use a HOST=sparc-sun-solaris2.6 TARGET=m68k-coff)
I change my gcc/specs file so that the nostartfiles disappear from the specs file :
> -------------- specs file --------
> *link_command:
> %{!fsyntax-only: %{!c:%{!M:%{!MM:%{!E:%{!S:%(linker) %l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r} %{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}} %{static:} %{L*} %D %o %{!nostdlib:%{!nodefaultlibs:%G %L %G}} %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*}
> }}}}}}
> --------------
---------------------------------
*link_command:
! %{!fsyntax-only: %{!c:%{!M:%{!MM:%{!E:%{!S:%(linker) %l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r} %{s} %{t} %{u*} \
%{x} %{z} %{Z} %{static:} %{L*} %D %o %{!nostdlib:%{!nodefaultlibs:%G %L %G}} %{T*}
}}}}}}
-----------------------------------
I remove !A:%{!nostdlib:%{!nostartfiles:%S}}} and %{!A:%{!nostdlib:%{!nostartfiles:%E}}}
With that modification a gcc hello-world.cc -o hello-world -lstdc++ -lc link
without any complain.
Now a with a:
cd build-gcc
make
this makes the configure found m68k-coff-gcc able to generate a executable. It
compile the whole rest of libiberty well, and the libstdc++ is ranlibed !!!
Just a point : vsprintf does not compile :
diff -c /home/export/delarue/gcc-2.95.3/gcc-2.95.3/libiberty/vsprintf.c.orig /home/export/delarue/gcc-2.95.3/gcc-2.95.3/libiberty/vsprintf.c
*** /home/export/delarue/gcc-2.95.3/gcc-2.95.3/libiberty/vsprintf.c.orig Thu Feb 14 12:37:51 2002
--- /home/export/delarue/gcc-2.95.3/gcc-2.95.3/libiberty/vsprintf.c Thu Feb 14 12:50:07 2002
***************
*** 39,53 ****
{
FILE b;
int ret;
! #ifdef VMS
! b->_flag = _IOWRT|_IOSTRG;
! b->_ptr = buf;
! b->_cnt = 12000;
! #else
! b._flag = _IOWRT|_IOSTRG;
! b._ptr = buf;
! b._cnt = 12000;
! #endif
ret = _doprnt(format, ap, &b);
putc('\0', &b);
--- 39,57 ----
{
FILE b;
int ret;
! /* #ifdef VMS */
! /* b->_flag = _IOWRT|_IOSTRG; */
! /* b->_ptr = buf; */
! /* b->_cnt = 12000; */
! /* #else */
! /* b._flag = _IOWRT|_IOSTRG; */
! /* b._ptr = buf; */
! /* b._cnt = 12000; */
! /* #endif */
!
! b._flags = __SWR | __SSTR;
! b._bf._base = b._p = (unsigned char *) buf;
! b._bf._size = b._w = 1200;
ret = _doprnt(format, ap, &b);
putc('\0', &b);
Diff finished at Thu Feb 14 12:50:20
I hope this is a valid hack. I take the code from the newlib part ...
With those modification I have a valid c++ compiler.
My next step is making to translate the mapping from C++ Microtec file to gnu.
If anybody as done that ... here is my exec.locate file :
-------------- exec.locate
CHIP 68000
* * * Code CCES
*
* la premiere partie de la table des vecteurs (vector00) est mappee en 0x00
* la seconde partie de la table des vecteurs (vector01) est mappee en 0x100
* la zone des registres 0xF0-0xFF est protegee par RESMEM
RESMEM $F0, $10
* tables des vecteurs d'IT dont les entrees pointent sur vector02
SECT vector00 = $0
SECT vector01 = $100
ORDER vector00, vector01
* Sections Boot minimal
SECT BOOTVERS = $400
ORDER BOOTVERS, BOOT_T, BOOT_S, BOOT_L, BOOT_C
* Partie modifiable lors d'un upgrade logiciel
SECT CODEINFO = $4000
SECT btext = $4010
SECT vector02 = $4010
SECT SUITEBOOT= $4200
ORDER btext, vector02, SUITEBOOT
* Suite de la partie modifiable lors d'un upgrade logiciel
ORDER code, codeflash, initfini, const, literals, strings
ORDER ehscfn, ehsftbl, S_codeAsmScoop, ROM_VARS, etext, ??INITDATA, dataio
ORDER 0, 10, 11, stack, heap, SYSHOST
SECT 12 = $B80000
* * * RAM carte CCES
*
*
SECT DEBUT_RAM = $C00000
ORDER DEBUT_RAM, ANNUAIRE, RAM_SAVE, TRACESIG
ORDER bdata, vars, edata, bbss, zerovars, ebss
* Zone reservee pour la pile uniquement a l'init SYSTEME
RESMEM $C00000, $100
* Zone reservee pour l'identifiant de PABX
RESMEM $003F80, $80
* Alignement TRACESIG sur 16 octets
ALIGNMOD TRACESIG,16
INITDATA vars
* * * Definitions d'adresses
*
*
public _systemIdAddress = $003F80
public _base = $B00000
public _var_debug = $B00000
public _syst_config_reg = $F0
public _bulle = $A00000
public _DEBUT_RAM_APPLI = $C00000
public _portExt3 = $A20000
public _portStatus = $A40000
public _PAC_Registers = $A80000
* Declarations de variables a utiliser pour la carte PAC R1 uniquement :
* (Elles definissent les fenetres memoires CCES pour chacun des slots PCMCIA)
public _PAC_BeginAddressSlotA = $800000
public _PAC_EndAddressSlotA = $8FFFFF
public _PAC_BeginAddressSlotB = $900000
public _PAC_EndAddressSlotB = $9FFFFF
* Infos relatives a la carte PCMCIA
public _ccesCodeInfo = $004000
public _UpgradeSoftwareAddress = $004010
public _ccesBootInfo = $C00200
public _BootStrapAddress = $C00400
-------------- end exec.locate
--
Christophe DELARUE E-Generis
Tel.: (+33) 299 842052 Fax.: (+33) 299 639331
13, sq. du Chene Germain / 35510 Cesson-Sevigne / France
mailto:cdelarue@e-generis.com
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |