This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: with-headers should be 'build' != 'host'
On Thu, Jan 29, 2004 at 08:59:55AM -0800, dan clark wrote:
> Thank you for the clarification. I agree that a fix should be
> applied to configure.in. Since the tar file includes both
> configure and configure.in the configure script must also be patched in
> attempts to use the 6.0 distribution as provided.
>
> The use of is_cross_compiler does seem to be overloaded. In particular,
> it is subsequently used for determining the skipdirs, determining if
> newlib should be built, and if it is OK to have the 'with_headers' value
> defined, the later of which is most problematic. If the 'build' != 'host'
> then it is likely that 'with_headers' will be defined. But it may very
> well be that 'host' == 'target' in this case. The fix I proposed is a bit
> heavy handed, perhaps the more appropriate way of dealing with this
> issue is the refine the test which results in the error:
> "*** --with-headers is only supported when cross compiling"
>
> The resulting revised patch is attached for clarity.
First of all, this is off-topic for gdb-patches; --with-headers doesn't
affect GDB at all. Redirecting to gcc@.
Secondly, you're still confused about --build, --host, and --target.
If $build != $host == $target, you are building a native toolchain for
another system. This has never been especially well supported, but
--with-headers is definitely not the right way to do it. The copied
headers are used by the built gcc/xgcc, not by the compiler used to
build GCC.
> dan
>
> On Wed, 28 Jan 2004, Felix Lee wrote:
>
> > dan clark <dlc@ncube.com>:
> > > The configure script in 6.0 checks if the host != target to decide if a
> > > cross compiler should be used.
> >
> > no, it doesn't. is_cross_compiler is a badly named variable. it
> > means you're building a cross development gdb, and it doesn't
> > have anything to do with whether you're using a cross compiler to
> > build gdb. (the variable name makes more sense when you have an
> > integrated gdb/gcc source tree.)
> >
> > there are different tests elsewhere for build != host.
> >
> > (note, configure is a file generated by autoconf. patches should
> > be made to configure.in.)
> >
> > I don't really see a reason for the variable is_cross_compiler
> > to exist. the comment says
> > # Define is_cross_compiler to save on calls to 'test'.
> > but it's usually used like this
> > if test x${is_cross_compiler} != xno ; then
> > so it's not reducing the number of tests much. I think directly
> > testing host = target would be clearer.
> > --
> >
> >
>
>
Content-Description: diff
> *** configure Thu Jan 29 08:55:35 2004
> --- configure.orig Thu Jan 29 08:56:01 2004
> *************** copy_dirs=
> *** 1603,1609 ****
> # Handle --with-headers=XXX. If the value is not "yes", the contents of
> # the named directory are copied to $(tooldir)/sys-include.
> if test x"${with_headers}" != x ; then
> ! if test x"${host}" = x"${build}"; then
> echo 1>&2 '***' --with-headers is only supported when cross compiling
> exit 1
> fi
> --- 1603,1609 ----
> # Handle --with-headers=XXX. If the value is not "yes", the contents of
> # the named directory are copied to $(tooldir)/sys-include.
> if test x"${with_headers}" != x ; then
> ! if test x${is_cross_compiler} = xno ; then
> echo 1>&2 '***' --with-headers is only supported when cross compiling
> exit 1
> fi
> *** configure.in Thu Jan 29 08:57:13 2004
> --- configure.in.orig Thu Jan 29 08:56:55 2004
> *************** copy_dirs=
> *** 917,923 ****
> # Handle --with-headers=XXX. If the value is not "yes", the contents of
> # the named directory are copied to $(tooldir)/sys-include.
> if test x"${with_headers}" != x ; then
> ! if test x"${host}" = x"${build}"; then
> echo 1>&2 '***' --with-headers is only supported when cross compiling
> exit 1
> fi
> --- 917,923 ----
> # Handle --with-headers=XXX. If the value is not "yes", the contents of
> # the named directory are copied to $(tooldir)/sys-include.
> if test x"${with_headers}" != x ; then
> ! if test x${is_cross_compiler} = xno ; then
> echo 1>&2 '***' --with-headers is only supported when cross compiling
> exit 1
> fi
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer