This is the mail archive of the newlib@sources.redhat.com mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: some questions for building newlib


 zsz wrote:

 > zsz wrote:
 > >
 > > Hello all,
 > >
 > >         Recently , I tried to build a cross-development environment
 > > for 'arm-elf' target on PentiumIII667 computer. OS is Red Hat 6.1.
 > > newlib version is 1.8.2 . gcc is 2.95.2 . binutils is 2.10.0.12 .
 > > insight
 > > is 5.0 . I has successfully builded binutils , gcc , insight and newlib.
 > >
 > > Today , I checked out mailing list of newlib and taked some
 > > questions . These questions go as follows:
 > >
 > > 1.I know that, to configure gcc,option '--with-newlib' is required. So
 > > Does configure need a option '--with-headers' to
 > > point somewhere path of newlib ? If  needed, Which path of newlib it
 > > should point  to?
 > >
 >
 > It is strongly recommended that you unpack gcc/binutils/newlib all in the
 > same source directory and build in a single build tree, distinct from the source tree.
 > In such a case, configure will set --with-newlib automatically.
 >
 > If you, for some strange reason, insist of having separate source/build
 > trees for the components, then you need to specify --with-newlib so
 > libgcc.a will be built correctly.  The --with-headers option must be
 > used to point to target header files.  The majority of these can be found in
 > newlib/libc/include.  It should be noted that the --with-headers option
 > only specifies one directory.  In some cases, platforms may specify platform-specific
 > header files in the machine or sys directories which will overwrite the ones
 > in libc/include during install.  In such a case, you would have to do this manually after
 > configuring and before building gcc or else you would have to do the process
 > again and this time point to the installed newlib header files.  I have never
 > tried this - I always use a single source tree / single build tree.  Talking
 > to the gcc folks, there is no certainty that gcc's make process wouldn't attempt to access
 > something in newlib after --with-newlib is specified.
 >
 > > 2.Is setting environment variable CC,AR,AS and RANLIB required before
 > > complie newlib in native ?
 > >
 >
 > It is the target tools you want to specify, not the host tools (CC_FOR_TARGET,
 > AS_FOR_TARGET, AR_FOR_TARGET, NM_FOR_TARGET, RANLIB_FOR_TARGET).
 >
 > Again, you are better off having unified src/build trees.  By default,
 > the top level Makefile.in will set these up to be the build versions of the
 > tools (e.g. build_path/gas/as-new) if the tools can be located.  Thus,
 > in the unified build tree, you do not have to do anything.
 >
 > If the "-new" tools cannot be found, then Makefile.in uses the target name
 > to create the target tool (e.g. arm-elf-as or arm-elf-gcc).  You can either
 > place the install directories for these tools in your path or else you
 > can manually set the CC_FOR_TARGET, etc.. flags when you issue the top
 > level make invocation.
 >
 > > 3.What files is generated after successfully compile newlib? and Where
 > > they are placed ?
 > >
 >
 > The main pieces are libc.a, libg.a, libm.a, the libgloss library(s), crtx objects,
 > ld scripts, and target includes.  The target includes are installed in the
 > install_directory/TARGET/include (where TARGET is based on the configuration
 > target - e.g. arm-elf).  The remaining files are installed in the install_directory/TARGET/lib.
 > It should be noted that if multilibs exist (multiple versions of libraries built with different
 > options - e.g. cpu variants/endianness options), they will be installed in subdirectories of
 > lib.  Multiple option combinations are specified as further subdirectories (e.g. be (big-endian)
 > cpu1 libraries/libgloss might be found in install_directory/TARGET/lib/be/cpu1).  The compiler
 > when used to compile/link knows which subdirectories to use to properly link in the correct
 > libraries.  You can see the various multilibs by invoking the compiler with the -print-multi-lib
 > option.
 >
 > -- Jeff Johnston (Red Hat Inc.)

I am sorry, I don't have completed the last letter, but I sent it by error
Thank you for your help,
 I can't understand "unpack gcc/binutils/newlib all in the same source directory and build in a single build tree".
What is "same source directory and build in a single build tree"?
My working method go as follow:

 /src
   |----binutils
   |           |------binutils-2.10.0.12  <--------source files are here
   |		|-----------xxxxx
   |		|-----------binutils_objdir <------configure, make
   |		|-----------xxxxx
   |----gcc
   |          |-------gcc-2.95.2 <-------source files are here
   |                            |---------gcc_objdir  <--------configure, make
   |----newlib
   |          |-------newlib-1.8.2  <------source files are here
   |                            |---------newlib_objdir  <--------configure, make
   |----insight
              |-------insight-5.0  <--------source files are here
		|---------insight-5.0_objdir <--------configure, make

Do you think it is right? 
I guess "same source directory and single build tree"  said by you may be as follows:

"same source directory"
 /src
   |----binutils
   |           |------binutils-2.10.0.12  <--------source files are here
   |----gcc
   |          |-------gcc-2.95.2 <-------source files are here
   |----newlib
   |          |-------newlib-1.8.2  <------source files are here
   |----insight
              |-------insight-5.0  <--------source files are here

"single build tree"
/build
   |------binutils  <--------configure, make
   |------gcc         <--------configure, make
   |------newlib   <--------configure, make
   |------insight   <--------configure, make

They are right? please give me detail description, thank you again and I eagerly look forward for your feedback.

amao
Email:zsz@chinadigipro

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]