" /> Status for Andrew DeFaria: June 12, 2005 - June 18, 2005 Archives

« June 5, 2005 - June 11, 2005 | Main | June 19, 2005 - June 25, 2005 »

June 16, 2005

The Quest to build 3.0.0 from 3.4.3

  • Worked to build 3.0.0 from 3.4.3
Andrew DeFaria wrote:

Performed the following actions:

Change packaging by hand:

  1. cd /build/toolchain/install-powerpc178/cdk/linux-elf-ppc
  2. mkdir bin
  3. cd bin
  4. Created symlinks for the following: ar, as, byacc, c++, cc, cmp, diff, diff3, expect, flex, gcc, ld, make, nm, ranlib, size, strip to link to ../usr/bin (exception: cc -> ../usr/bin/gcc). Note: byacc, c++, cmp, diff, diff3 and expect do not exist in ../usr/bin! Removed symlinks
  5. cd ../..
  6. mkdir lib
  7. Copied cdk/linux-elf-ppc/usr/lib/gcc/powerpc-lynx-lynxos178/3.4.3/libgcc.a -> lib Note: Unable to find any libstdc++.a's!
  8. Created linux-elf-ppc.tar.gz with tar -zcvf ../linux-elf-ppc.tar.gz .

Removing libgcc from LOS178:

  1. cd /build/los178/src/lib/libgcc
  2. rm Makefile
  3. cvs delete Makefile
  4. cd ..
  5. Editted Makefile to remove libgcc from SUBCOMPONENTS
  6. cd /build/los178/src/cdk/common/bison-1.19
  7. rm Makefile
  8. cvs delete Makefile (Note: there are many other files here. Should they be likewise removed?)
  9. cd ../links
  10. rm Makefile
  11. cvs delete Makefile
  12. cd /build/los178/src/cdk
  13. Editted Makefile to remove references to bison-1.19 and links
  14. Editted Makefile to add -0.9.6 to "openssl".

The following is the result of building src/cdk:

  • coffcorrupt - for test PASSED
  • cofflook - for inspecting coff object PASSED
  • config - needed PASSED
  • crc - append script uses this PASSED
  • elflook - for inspecting elf object FAILED
  • install - use for installation PASSED
  • m4-1.4 - needed for config.tbl Didn't find anything about this!
  • man2html - html man page utility Didn't find anything about this!
  • mkbootprep - use by vmpc PASSED
  • mkimage - maybe need to be update to support elf kernel? PASSED
  • mktimestamp - needed for kernel timestamp PASSED
  • prepend-crc - mkboot178 uses this PASSED
  • gzip-1.2.4 - only for solaris host PASSED
  • tar-1.11.2 - only for solaris host FAILED
  • vctchk - use for checking vct FAILED
  • openssl (Failed to build saying it couldn't find /build/los178/cdk/linux-elf-ppc/bin/make)

I will try to pick this up from home but I have been having some connectivity issues lately...

Picking up...

Building LOS178 after sections I & II above completed:

  1. Logged in as int
  2. Exported toolchain source -> /build/toolchain.src (via tag DEV_LOS178_3p0p0_ppc_20050607)
  3. Instructions say to package source yet Makefile's package target does not include fixup.sh so performed this by hand.
  4. Stored previously successfully built toolchain -> t3:/export/dev_archive/los178/3p0p0/toolchain/20050607
  5. Checked that europa:/build/los178 had TOT. Only differences were the changes to the Makefile(s) describe above and the cvs deletes that I did.
  6. rm sys/miscgcc/*.o
  7. tar -zxvf /build/bin-image/ppc.cdksol.tar.gz sys/miscgcc
  8. tar -zxpf/build/1033-00.cdklinux.tar.gz
  9. Sourced SETUP.bash
  10. make DEVELOPMENT=yes install > install.log 2>&1
  11. make failed due to lack of crc (and a syntax error I introduced in the src/lib/Makefile - missed a "\"!). The crc was missing because I skipped a step, the make install in src/cdk. Turns out I skipped this step because I thought we had performed this yesterday - and we did - but we had some problems there and Vinnie helped me to get that to work. Unfortunately we were using make all during that time and failed to to the make install portion).
  12. make failed with the following:

          europa:check -t -v install.log
          ERRORS:
          make[3]: *** No rule to make target `_udivdi3.o', needed by `archive_step'.  Stop.
          make[3]: *** No rule to make target `install'.  Stop.
          make[3]: *** No rule to make target `install'.  Stop.
          make[3]: *** No rule to make target `install'.  Stop.
          make[3]: *** No rule to make target `install'.  Stop.
          make[3]: *** No rule to make target `install'.  Stop.
          /build/los178/cdk/linux-xcoff-ppc/bin/ld: cannot open -lmiscgcc: No such file or directory
          make[4]: *** [common_all] Error 1
          make[3]: *** [re_all] Error 2
          /build/los178/cdk/linux-xcoff-ppc/bin/ld: cannot open -lmiscgcc: No such file or directory
          make[4]: *** [a.out] Error 1
          make[3]: *** [re_all] Error 2
          make[2]: *** [real] Error 2
          make[1]: *** [install] Error 2
          make[3]: *** [gunzip] Error 1
          make[3]: *** [nohup] Error 1
          make[3]: *** [install_common] Error 1
          make[3]: *** [install] Error 1
          make[2]: *** [real] Error 2
          make[1]: *** [install] Error 2
          File: install.log Errors: 20 Warnings: 2545
    

    The issues here boil down to the _udivd3.o problem mostly (the No rule to make target `install' are the csp.x86, ibm440ep stuff and there are few permissions problems with chmod since this build was done as int this time). The _udivd3.o problem results from a new .o file introduced by Gilbert and CR #542 and a corresponding change to the Makefile. The miscgcc .o files are gotten from ppc.cdksol.tar.gz but there is no _udivd3.o in ppc.cdksol.tar.gz.

    After discussing this with Vinnie we determined that Gilbert had checked in these .o files when what really needs to be done is for us to include this new .o file into the ppc.cdk[sol|linux].tar.gz images in bin-image.

  13. After building the following errors remain:

    1. 5 "No rule to make target `install`" remains for devices.ibm440ep, drivers.ibm440ep, csp.440, csp.x86 and bsp.ibm440ep. These are known problems.
    2. Various permissions problems dealing with the fact that I had initially built things as adefaria and switched to building as int.

June 15, 2005

Rebuild 2.1.0/GDB 6.0

  • Rebuilt/re-released 2.1.0 with additional CR #632
  • Built GDB 6.0 on Windows!

June 13, 2005

3.4.3 toolchain build/LOS178 Makefile global clean/clobber

  • Added CR 636: LOS178 3.0.0 build fails with new 3.4.3 gcc
  • Reproduced make clobber problem
  • Added 637: 3.4.3 toolchain does not package properly

Make clobber problem

When a make clobber is performed in sys the make is propagated downward through the sub makes. However the sys level Makefile starts it's clobber target with: rm $(ENV_PREFIX)/sys/lib/* to remove all of the libraries in sys/lib.

When the make clobber gets propagated down to drivers/arinc653 the following happens:

    make -f Makefile.real DRV_IS_DLDD=no clobber
    make[1]: Entering directory `/build/los178/sys/drivers/arinc653'
    /bin/rm -f arinc653drvr.lint
    /build/los178/cdk/linux-elf-ppc/usr/bin/ar d /build/los178/sys/lib/libdrivers.a arinc653drvr.o
    make[1]: Leaving directory `/build/los178/sys/drivers/arinc653'
    make -f Makefile.real DRV_IS_DLDD=yes clobber
    make[1]: Entering directory `/build/los178/sys/drivers/arinc653'
    /bin/rm -f arinc653.*.o arinc653.*.bin arinc653.pre arinc653.import
    /bin/rm -f arinc653.dldd arinc653.info
    make[1]: Leaving directory `/build/los178/sys/drivers/arinc653'

At this point a small libdrivers.a is left in sys/lib:

    europa:ll ../../lib/libdrivers.a
    -rw-rw-r--    1 adefaria staff         170 Jun 13 13:02 ../../lib/libdrivers.a

Similar things happen in:

  • sys/drivers/mem
  • sys/driverspmac_g5/is_sungem
  • sys/drivers.vmpc/rs232
  • sys/drivers.vmpc/bdlan
  • sys/drivers.vmpc/if_dec21040

When we are done with a clobber we are left with:

    europa:ll ../../lib/
    total 20
    drwxrwxr-x    2 adefaria staff        4096 Jun 13 13:16 ./
    drwxrwxr-x   26 adefaria staff        4096 Jun 13 13:16 ../
    -rw-rw-r--    1 adefaria staff         170 Jun 13 13:16 libdrivers.a
    -rw-rw-r--    1 adefaria staff           8 Jun 13 13:16 libdrivers_pmac_g5.a
    -rw-rw-r--    1 adefaria staff           8 Jun 13 13:16 libdrivers_vmpc.a

This eventually screws up the build. Doing a make clobber followed by rm lib/* then a make install works OK...