Error compilling synth target

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Error compilling synth target

Claus Lensbøl
Hi

I'm trying to compile a synth target with eCos.
I downloaded using the tcl-script, and are running the configtool to
select the target.
I have set CYGBLD_GLOBAL_COMMAND_PREFIX to empty, to use the system
stack, however I cannot get it to compile due to "loss of precision"
errors. If I add -fpermissive to the compile I get further but end up
with a lot of:


==================================================================
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:387:
Error: operand type mismatch for `push'
make: Leaving directory
'/home/cmol/Dropbox/Documents/DTU/34299-Fagprojekt/eCos_synth_system_build'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:387:
Error: operand type mismatch for `pop'

/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:388:
Error: operand type mismatch for `push'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:388:
Error: operand type mismatch for `pop'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:389:
Error: operand type mismatch for `push'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:389:
Error: operand type mismatch for `pop'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:390:
Error: operand type mismatch for `push'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:390:
Error: operand type mismatch for `pop'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:391:
Error: operand type mismatch for `push'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:391:
Error: operand type mismatch for `pop'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:392:
Error: operand type mismatch for `push'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:392:
Error: operand type mismatch for `pop'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:393:
Error: operand type mismatch for `push'

........ loads more

/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:432:
Error: operand type mismatch for `pop'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:432:
Error: operand type mismatch for `pop'
/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:452:
Error: invalid instruction suffix for `pop'
/tmp/ccr4YNvl.s: Error: .size expression for __restore_rt does not
evaluate to a constant
/tmp/ccr4YNvl.s: Error: .size expression for __restore does not
evaluate to a constant
==================================================================

I'm running on a ubuntu 14.10 system wit gcc:

gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
4.9.1-16ubuntu6'
--with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.9 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--enable-gnu-unique-object --disable-vtable-verify --enable-plugin
--with-system-zlib --disable-browser-plugin --enable-java-awt=gtk
--enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre
--enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64
--with-arch-directory=amd64
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc
--enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --enable-multilib
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.9.1 (Ubuntu 4.9.1-16ubuntu6)

ld -v
GNU ld (GNU Binutils for Ubuntu) 2.24.90.20141014


Any clue as to what goes wrong?

--
Kind regards
Claus Lensbøl

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Reply | Threaded
Open this post in threaded view
|

Re: Error compilling synth target

John Dallaway-2
Hi Claus

On 22/04/15 18:50, Claus Lensbøl wrote:

> I'm trying to compile a synth target with eCos.
> I downloaded using the tcl-script, and are running the configtool to
> select the target.
> I have set CYGBLD_GLOBAL_COMMAND_PREFIX to empty, to use the system
> stack, however I cannot get it to compile due to "loss of precision"
> errors. If I add -fpermissive to the compile I get further but end up
> with a lot of:
>
>
> ==================================================================
> /opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:387:
> Error: operand type mismatch for `push'

[ snip ]

> I'm running on a ubuntu 14.10 system wit gcc:
>
> gcc -v
> Using built-in specs.
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
> Target: x86_64-linux-gnu

[ snip]

The eCos synthetic (linux) target does not support 64-bit compilation at
present. Try adding the "-m32" switch to the following eCos
configuration options:

  CYGBLD_GLOBAL_CFLAGS
  CYGBLD_GLOBAL_LDFLAGS

in order to force 32-bit compilation and linking on your 64-bit Linux host.

I hope this helps...

John Dallaway
eCos maintainer
http://www.dallaway.org.uk/john

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss