This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: newlib for baremetal m68k coldfire v2 isa-aplus:emac microarchitecture


On 10/14/2014 7:36 AM, Randy Yates wrote:
> I am trying to build newlib for a baremetal Coldfire V2, namely, the
> MCF52235CAL60. This is to match the m68k-unknown-elf tools I've recently
> built using crosstool-ng.
>
> I built the "vanilla" baremetal m68k toolchain with crosstool-ng using
> the unaltered sample, which builds for the cpu32 microarchitecture.
> However, I am compiling my code with the -mcpu=52235 option to gcc,
> which generates Coldfire V2 code.
FWIW m68k-rtems in gcc adds more an extra gcc/config/m68k/t-* file compared
to m68k-elf. We have BSPs for the 52235 and various other Coldfires. It
is quite
possible that this variant is matched better in m68k-rtems than m68k-elf.

You could try a build of gcc with this addressed in gcc/config.gcc. If
so, it may
make sense to merge config/m68k/t-rtems into a file shared with m68k-elf.
> I am also doing a fairly "vanilla" newlib configure for the m68k (see
> the attached make file).
>
> The problem is that newlib generates code (libc.a and libm.a) for the
> cpu32 microarchitecture, while I need the isa-aplus:emac
> microarchitecture:
>
> -*- mode: compilation; default-directory: "/home/hvp630-src/nmm-original/Applications/uTaskerV1.4/GNU_ColdFire/" -*-
> Compilation started at Mon Oct 13 19:48:27
>
>   make -f utaskerv1p4.mak 
>   /home/yates/x-tools/m68k-unknown-elf/bin/m68k-unknown-elf-gcc
> -mcpu=52235 -nostartfiles -Wall -Wstrict-prototypes
> -I/home/yates/x-tools/m68k-unknown-elf/include
> -I/home/hvp630-src/nmm-original/Applications/uTaskerV1.4 -L
> /home/yates/x-tools/m68k-unknown-elf/lib/ -D _GNU -D _M5223X -g -Os
> -Wl,-Map=uTaskerV1.4.map -Tm5225XUSB-rom.ld -o uTaskerV1.4.elf
> Build/application.o Build/debug.o Build/webInterface.o Build/KeyScan.o
> Build/GLCD.o Build/LCD.o Build/NetworkIndicator.o
> Build/usb_application.o Build/MODBUS.o Build/modbus_app.o
> Build/Startup_gnu.o Build/M5223X.o Build/eth_drv.o Build/iic_drv.o
> Build/Driver.o Build/uMalloc.o Build/uTasker.o Build/Tty_drv.o
> Build/uFile.o Build/Watchdog.o Build/GlobalTimer.o Build/USB_drv.o
> Build/low_power.o Build/can_drv.o Build/Ethernet.o Build/arp.o
> Build/dhcp.o Build/dns.o Build/ftp.o Build/http.o Build/icmp.o
> Build/ip_utils.o Build/ip.o Build/pop3.o Build/smtp.o Build/tcp.o
> Build/telnet.o Build/tftp.o Build/udp.o Build/webutils.o
> Build/NetBIOS.o Build/snmp.o
>   /home/yates/x-tools/m68k-unknown-elf/m68k-unknown-elf/bin/ld.real: m68k:cpu32 architecture of input file `/home/yates/x-tools/m68k-unknown-elf/lib//libc.a(lib_a-strcat.o)' is incompatible with m68k:isa-aplus:emac output
>   /home/yates/x-tools/m68k-unknown-elf/m68k-unknown-elf/bin/ld.real: m68k:cpu32 architecture of input file `/home/yates/x-tools/m68k-unknown-elf/lib//libc.a(lib_a-strcmp.o)' is incompatible with m68k:isa-aplus:emac output
>   /home/yates/x-tools/m68k-unknown-elf/m68k-unknown-elf/bin/ld.real: m68k:cpu32 architecture of input file `/home/yates/x-tools/m68k-unknown-elf/lib//libc.a(lib_a-strcpy.o)' is incompatible with m68k:isa-aplus:emac output
>   /home/yates/x-tools/m68k-unknown-elf/m68k-unknown-elf/bin/ld.real: m68k:cpu32 architecture of input file `/home/yates/x-tools/m68k-unknown-elf/lib//libc.a(lib_a-strlen.o)' is incompatible with m68k:isa-aplus:emac output
>   Build/application.o: In function `fnApplication':
>   /home/hvp630-src/nmm-original/Applications/uTaskerV1.4/GNU_ColdFire/../application.c:920: undefined reference to `fnStartBP5_Server'
>   Build/webInterface.o: In function `fnHandleWeb':
>   webInterface.c:(.text+0x112c): undefined reference to `setBP5ArrayParameter'
>   Build/M5223X.o: In function `_IIC_Interrupt':
>   /home/hvp630-src/nmm-original/Applications/uTaskerV1.4/GNU_ColdFire/../../../Hardware/M5223X/M5223X.c:3311: undefined reference to `ucRx'
>   Build/M5223X.o:(.rodata+0xf6): undefined reference to `fnBP5'
>   Build/Tty_drv.o: In function `fnSciRxByte':
>   Tty_drv.c:(.text+0x9f6): undefined reference to `ParseNextLetter'
>   Build/http.o: In function `fnDoWebPage':
>   http.c:(.text+0x640): undefined reference to `getBP5SerialNumberLength'
>   http.c:(.text+0x666): undefined reference to `getBP5SerialNumber'
>   collect2: error: ld returned 1 exit status
>   make: *** [uTaskerV1.4.elf] Error 1
>   
>   Compilation exited abnormally with code 2 at Mon Oct 13 19:48:27
>
> My question is this: How can I build newlib for the m68k so that the
> libc.a and libm.a libraries are generated using the isa-aplus:emac
> microarchitecture instead of the cpu32 microarchitecture?

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill@OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]