gcc-2.95.1/newlib-1.8.x for SH and '_impure_ptr' blues

John Mills Jmills@TGA.com
Tue Sep 28 14:47:00 GMT 1999

Title: gcc-2.95.1/newlib-1.8.x for SH and '_impure_ptr' blues

Hello -
My first post to the list: this may be a fairly-FAQ.

I am attempting to build gcc-2.95.1 with newlib-1.8.1 for the 'sh' target (actually 'sh-rtems') and having problems. (I think my target choice is probably immaterial, but maybe not.)

1) I unpack gcc and newlib sources in parallel directories, then link 'newlib':
 $(gcc-srcdir)/newlib -> ../newlib-1.8.1/newlib

2) I configure from $(builddir)/gcc:
../../gcc-2.95.1/configure --target=sh=rtems \
  --verbose --with-gnu-as --with-gnu-ld --with-newlib \
  --enable-languages=c++ --prefix=$INSTALLDIR

3) When I do 'make' in $(builddir)/gcc, compilation in $(biulddir)/gcc/libiberty/ fails on missing '*.h' files which lie in '$(gcc-srcdir)/newlib/libc/include/' -- I put an additional "-I..." in .../libiberty/Makefile.in, and can then compile these objects.

The objects in gcc-2.95.1/libiberty are actually compiled in two directories:
 '$(builddir)/gcc/libiberty' and

4) I now get a linkage failure in on an undefined '_impure_ptr' whose definition can [apparently] be found in:

I have not been able to properly include that file [if that is indeed what is needed] from the two different directories in which 'libiberty' objects are compiled.

Can anyone suggest the way to configure this? Is there a work-around to build the pieces separately?

Thanks -

  John Mills, Sr. Software Engineer
  TGA Technologies, Inc.
  100 Pinnacle Way, Suite 140
  Norcross, GA 30071-3633
  e-mail: jmills@tga.com
  Phone: 770-441-2100 ext.124 (voice)
         770-449-7740 (FAX)

More information about the crossgcc mailing list