"Fossies" - the Fresh Open Source Software Archive

Member "SAOImageDS9/libxml2/VxWorks/README" (13 Nov 2019, 3508 Bytes) of package /linux/misc/ds9.8.1.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1              libxml2 on VxWorks 6.4+
    2 
    3 Here are my instructions for building on VxWorks.... I am very ashamed of
    4 how I did this because it is a complete hack, but it works great, so I
    5 can't complain too much.
    6 
    7 General Information
    8 
    9 1. The only way to build for VxWorks is to cross compile from a windows or
   10 linux system.  We use a RedHat 5.1 workstation system as our build
   11 environment.
   12 
   13 2. VxWorks 6.X has two main types of executable, DKMs (dynamic kernel
   14 modules), and RTPs (real-time processes).  Kernel modules are the bread
   15 and butter of VxWorks, but they look nothing like processes/threads in
   16 normal UNIX/Windows systems.  RTPs are more like processes that have
   17 memory protection, threads, etc.  VxWorks 6.X also introduces some level
   18 of POSIX conformance to their environment.  The POSIX conformance was the
   19 key for us to be able to port libxml2.  We support accessing libxml2 from
   20 both DKMs and RTPs.
   21 
   22 3. There are 2 compilers for VxWorks, the WindRiver compiler, and a port
   23 of the GNU toolchain, we have only tested and built with the GNU
   24 toolchain.
   25 
   26 How To Build
   27 
   28 1. Run the configure on your native linux system (this is the cheesy
   29 hack).  Since the VxWorks GNU toolchain is very close in version to the
   30 one in red hat, it generates a good config.h file.  We configured libxml2
   31 with the following to keep the size down, (but we have done basic testing
   32 with everything compiled in).
   33 
   34 ./configure --with-minimum --with-reader --with-writer --with-regexps
   35 --with-threads --with-thread-alloc
   36 
   37 2. Rename the libxml2 folder to "src".  This step is required for our
   38 replacement makefile to work.
   39 
   40 3. Run the replacement makefile.  I wrote a new makefile that sets all the
   41 proper vxworks defines and uses the correct compilers.  The two defines on
   42 the make command line are to tell it which VxWorks Target (SH3.2 little
   43 endian), and the executable type.  We have tested this code on PENTIUM2gnu
   44 and SH32gnule.
   45 
   46 This makefile creates a shared library that runs on VxWorks: (libxml2.so)
   47 make -f Makefile.vxworks clean all VXCPU=SH32gnule VXTYPE=RTP
   48 
   49 This makefile creates a kernel module that runs on VxWorks: (xml2.out)
   50 make -f Makefile.vxworks clean all VXCPU=SH32gnule VXTYPE=DKM
   51 
   52 Important Notes
   53 
   54 1. There are several ways that this process could be improved, but at the
   55 end of the day, we make products, not port libraries, so we did a meets
   56 minimum for our needs.
   57 
   58 2. VxWorks is the devil, give me embedded linux every day.
   59 
   60 3. No matter what I tried, I couldn't get the configure to pick up the
   61 VxWorks toolchain, and in my investigation, it has something to do with
   62 automake/autoconf, not any individual package.  VxWorks doesn't play by
   63 the normal rules for building toolchains.
   64 
   65 4. The PIC flag in VxWorks (especially for SH processors) is very
   66 important, and very troublesome.  On linux, you can liberally use the PIC
   67 flag when compiling and the compiler/linker will ignore it as needed, on
   68 VxWorks if must always be on for shared libraries, and always be off for
   69 static libraries and executables.
   70 
   71 5. If anyone wants to work on a better way to do the build of libxml2 for
   72 VxWorks, I'm happy to help as much as I can, but I'm not looking to
   73 support it myself.
   74 
   75 Attached Files
   76 
   77 1. To use my Makefile for vxworks, you should enter the vxworks
   78 environment (/opt/windriver/wrenv.linux -p vxworks-6.4 for me).
   79 2. Run: build.sh libxml2-2.6.32 SH32gnule RTP (where you have
   80 libxml2-2.6.32.tar.gz and the Makefile in the same directory as the script
   81 file).
   82 
   83 Thanks,
   84 
   85 Jim Wert Jr.
   86 JWert@ILSTechnology.com