Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  <19981999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  Index 1994  1995  1996  1997  <19981999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: gcc2.8.1 cross compiler for vxWorks under Linux / hpux
From: Till Straumann <strauman@bii.bessy.de>
To: tech-talk@aps.anl.gov
Date: Fri, 30 Oct 1998 20:57:42 +0100
Hi there.

During the last couple of days I spent some efforts to get binutils-2.9.1 / gcc2.8.1 / gdb4.17  to work on our Linux / hpux10.20 platforms. (The gcc that was shipped with our vxWorks5.2 was still gcc2.2.3.1 and there is no Linux version of course.) It was surprisingly easy and after tweaking CONFIG_SITE.Vx & friends, EPICS-3.13.0.beta12 compiled successfully for the mv162 and mv167 targets under Linux (yes, it is possible to develop server side code under Linux -- I mean, I don't know about the legal issues, i. e. if the vxWorks license allows for using the headers under gcc/Linux).

However, I'd like to post some minor problems I came across:

  • vxWorks apparently was compiled using the -freg-struct-return option for gcc which allows for returning small structures in a register. By default, this option is disabled however. I strongly recommend to insert the line
  • /* set DEFAULT_PCC_STRUCT_RETURN to 0 for compat with vxWorks5.2 */
    #define     DEFAULT_PCC_STRUCT_RETURN       0

    at the end of the file  vxm68k.h in the gcc-2.8.1/config/m68k subdirectory. This applies for all host architectures.
    Note that objects compiled with different settings of this option must not be linked together. The linker doesn't complain, but the function return values are wrong. This is nasty, because only functions which return small structs are affected and these are not very frequent...
     

  • While building the cross linker (GNU binutils-2.9.1) under hpux, the SHLIB_PATH environment variable interferes with a makefile-variable of the same name and the linker script is incorrectly built. Make sure the dynamic loader (hpux' loader, not the one that is being compiled) doesn't need any of the paths listed in SHLIB_PATH and unset this variable during the build. If this is not possible, you have to change the mentioned makefile variable in the Makefiles, the script templates etc. As an alternative you may fix the linker script by hand.
There were no problems with gdb4.17 (I using it with the DDD2.2 frontend) which provides a nice development environment at low cost -- thank the GNU --.

Hope to meet you people soon in Berlin, Till.
 
   


Navigate by Date:
Prev: Re: portable CA server user survey john sinclair
Next: Frame grabber and Portable channel access Miroslaw Dach
Index: 1994  1995  1996  1997  <19981999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019 
Navigate by Thread:
Prev: Re: Conditional processing of links Andy Foster
Next: Frame grabber and Portable channel access Miroslaw Dach
Index: 1994  1995  1996  1997  <19981999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·