This is the mail archive of the
newlib@sources.redhat.com
mailing list for the newlib project.
Re: m32r-elf libgloss problem in newlib 1.9.0
- To: "J. Johnston" <jjohnstn at cygnus dot com>
- Subject: Re: m32r-elf libgloss problem in newlib 1.9.0
- From: Joel Sherrill <joel dot sherrill at OARcorp dot com>
- Date: Thu, 26 Jul 2001 17:38:05 -0500
- CC: newlib at sources dot redhat dot com
- Organization: OAR Corporation
- References: <3B5DD559.BF981EE1@OARcorp.com> <3B5E235F.C6985A01@cygnus.com>
- Reply-To: joel dot sherrill at OARcorp dot com
I think this is in spirit the fix but the configure in libgloss
now fails with this:
configure: error: installation or configuration problem: C compiler
cannot creat
e executables.
configure: error: ../../../../../gcc-30-cvs/libgloss/m32r/configure
failed for m
32r
The i386, i960 and other targets have their own version of AC_PROG_CC
in their configure.in with this comment:
# FIXME: We temporarily define our own version of AC_PROG_CC. This is
# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
# are probably using a cross compiler, which will not be able to fully
# link an executable. This should really be fixed in autoconf
# itself.
I think the rationale applies in this case as well. Is the right thing
a cut and paste or is there a better autoconf macro?
Sorry if the email trouble on our side if visible. :(
--joel
"J. Johnston" wrote:
>
> Joel Sherrill wrote:
> >
> > The build fails with...
> >
> > /usr3/ftp_archive/gnu/gcc/ss/b3/b-m32r-elf/gcc/xgcc
> > -B/usr3/ftp_archive/gnu/gcc/
> > ss/b3/b-m32r-elf/gcc/ -nostdinc
> > -B/usr3/ftp_archive/gnu/gcc/ss/b3/b-m32r-elf/m32
> > r-elf/newlib/ -isystem
> > /usr3/ftp_archive/gnu/gcc/ss/b3/b-m32r-elf/m32r-elf/newli
> > b/targ-include -isystem
> > /usr3/ftp_archive/gnu/gcc/ss/b3/gcc-30-cvs/newlib/libc/i
> > nclude -B/opt/gnucross/m32r-elf/bin/ -B/opt/gnucross/m32r-elf/lib/ -isystem
> > /opt
> > /gnucross/m32r-elf/include -O2 -g -I.
> > -I../../../../gcc-30-cvs/libgloss/m32r/..
> > `if [ -d ./../../newlib ]; then echo -I./../../newlib/targ-include
> > -I../../../.
> > ./gcc-30-cvs/libgloss/m32r/../../newlib/libc/include; fi` -O2 -I.
> > -I../../../../
> > gcc-30-cvs/libgloss/m32r/.. -c -g -Os
> > ../../../../gcc-30-cvs/libgloss/m32r/m32r-
> > lib.c
> > make[2]: *** No rule to make target
> > `../../../../gcc-30-cvs/libgloss/m32r/../../
> > gdb/m32r-stub.c', needed by `m32r-stub.o'. Stop.
> > make[2]: Leaving directory
> > `/usr3/ftp_archive/gnu/gcc/ss/b3/b-m32r-elf/m32r-elf/
> > libgloss/m32r'
> >
> > It looks like that the libgloss included with newlib 1.9.0 has never been
> > built outside a one-source tree with gdb. I just checked CVS and the
> > Makefile.in still reaches up and over into gdb. How should this be fixed?
> >
> > --
>
> Try the attached patch which checks at configuration time if the file is in the source tree.
>
> -- Jeff J.
>
> ------------------------------------------------------------------------
> Index: libgloss/m32r/Makefile.in
> ===================================================================
> RCS file: /cvs/src/src/libgloss/m32r/Makefile.in,v
> retrieving revision 1.1
> diff -u -r1.1 Makefile.in
> --- libgloss/m32r/Makefile.in 2000/03/17 22:48:50 1.1
> +++ libgloss/m32r/Makefile.in 2001/07/25 01:36:30
> @@ -64,7 +64,7 @@
>
> CRT0 = crt0.o
> GDBLIB = m32r-lib.o
> -GDBSTUB = m32r-stub.o
> +GDBSTUB = @GDBSTUB@
> EVASCRIPT = eva.ld
> STUBSCRIPT = eva-stub.ld
>
> Index: libgloss/m32r/configure
> ===================================================================
> RCS file: /cvs/src/src/libgloss/m32r/configure,v
> retrieving revision 1.2
> diff -u -r1.2 configure
> --- libgloss/m32r/configure 2001/07/18 21:26:59 1.2
> +++ libgloss/m32r/configure 2001/07/25 01:36:30
> @@ -566,6 +566,13 @@
> ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
>
>
> +if test -f "${srcdir}/${with_multisrctop}../../gdb/m32r-stub.c"; then
> + GDBSTUB=${srcdir}/${with_multisrctop}../../gdb/m32r-stub.c
> +else
> + GDBSTUB=
> +fi
> +
> +
>
> # Do some error checking and defaulting for the host and target type.
> # The inputs are:
> @@ -594,7 +601,7 @@
> fi
>
> echo $ac_n "checking host system type""... $ac_c" 1>&6
> -echo "configure:598: checking host system type" >&5
> +echo "configure:605: checking host system type" >&5
>
> host_alias=$host
> case "$host_alias" in
> @@ -615,7 +622,7 @@
> echo "$ac_t""$host" 1>&6
>
> echo $ac_n "checking target system type""... $ac_c" 1>&6
> -echo "configure:619: checking target system type" >&5
> +echo "configure:626: checking target system type" >&5
>
> target_alias=$target
> case "$target_alias" in
> @@ -633,7 +640,7 @@
> echo "$ac_t""$target" 1>&6
>
> echo $ac_n "checking build system type""... $ac_c" 1>&6
> -echo "configure:637: checking build system type" >&5
> +echo "configure:644: checking build system type" >&5
>
> build_alias=$build
> case "$build_alias" in
> @@ -687,7 +694,7 @@
> # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
> # ./install, which can be erroneously created by make from ./install.sh.
> echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
> -echo "configure:691: checking for a BSD compatible install" >&5
> +echo "configure:698: checking for a BSD compatible install" >&5
> if test -z "$INSTALL"; then
> if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
> echo $ac_n "(cached) $ac_c" 1>&6
> @@ -743,7 +750,7 @@
> # Extract the first word of "gcc", so it can be a program name with args.
> set dummy gcc; ac_word=$2
> echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
> -echo "configure:747: checking for $ac_word" >&5
> +echo "configure:754: checking for $ac_word" >&5
> if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
> echo $ac_n "(cached) $ac_c" 1>&6
> else
> @@ -773,7 +780,7 @@
> # Extract the first word of "cc", so it can be a program name with args.
> set dummy cc; ac_word=$2
> echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
> -echo "configure:777: checking for $ac_word" >&5
> +echo "configure:784: checking for $ac_word" >&5
> if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
> echo $ac_n "(cached) $ac_c" 1>&6
> else
> @@ -824,7 +831,7 @@
> # Extract the first word of "cl", so it can be a program name with args.
> set dummy cl; ac_word=$2
> echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
> -echo "configure:828: checking for $ac_word" >&5
> +echo "configure:835: checking for $ac_word" >&5
> if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
> echo $ac_n "(cached) $ac_c" 1>&6
> else
> @@ -856,7 +863,7 @@
> fi
>
> echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
> -echo "configure:860: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
> +echo "configure:867: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
>
> ac_ext=c
> # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
> @@ -867,12 +874,12 @@
>
> cat > conftest.$ac_ext << EOF
>
> -#line 871 "configure"
> +#line 878 "configure"
> #include "confdefs.h"
>
> main(){return(0);}
> EOF
> -if { (eval echo configure:876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
> +if { (eval echo configure:883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
> ac_cv_prog_cc_works=yes
> # If we can't run a trivial program, we are probably using a cross compiler.
> if (./conftest; exit) 2>/dev/null; then
> @@ -898,12 +905,12 @@
> { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
> fi
> echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
> -echo "configure:902: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
> +echo "configure:909: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
> echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
> cross_compiling=$ac_cv_prog_cc_cross
>
> echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
> -echo "configure:907: checking whether we are using GNU C" >&5
> +echo "configure:914: checking whether we are using GNU C" >&5
> if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
> echo $ac_n "(cached) $ac_c" 1>&6
> else
> @@ -912,7 +919,7 @@
> yes;
> #endif
> EOF
> -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:916: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
> +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:923: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
> ac_cv_prog_gcc=yes
> else
> ac_cv_prog_gcc=no
> @@ -931,7 +938,7 @@
> ac_save_CFLAGS="$CFLAGS"
> CFLAGS=
> echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
> -echo "configure:935: checking whether ${CC-cc} accepts -g" >&5
> +echo "configure:942: checking whether ${CC-cc} accepts -g" >&5
> if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
> echo $ac_n "(cached) $ac_c" 1>&6
> else
> @@ -971,7 +978,7 @@
> # Extract the first word of "ranlib", so it can be a program name with args.
> set dummy ranlib; ac_word=$2
> echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
> -echo "configure:975: checking for $ac_word" >&5
> +echo "configure:982: checking for $ac_word" >&5
> if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
> echo $ac_n "(cached) $ac_c" 1>&6
> else
> @@ -1150,6 +1157,7 @@
> s%@oldincludedir@%$oldincludedir%g
> s%@infodir@%$infodir%g
> s%@mandir@%$mandir%g
> +s%@GDBSTUB@%$GDBSTUB%g
> s%@host@%$host%g
> s%@host_alias@%$host_alias%g
> s%@host_cpu@%$host_cpu%g
> Index: libgloss/m32r/configure.in
> ===================================================================
> RCS file: /cvs/src/src/libgloss/m32r/configure.in,v
> retrieving revision 1.1
> diff -u -r1.1 configure.in
> --- libgloss/m32r/configure.in 2000/03/17 22:48:50 1.1
> +++ libgloss/m32r/configure.in 2001/07/25 01:36:30
> @@ -17,6 +17,13 @@
> fi
> AC_CONFIG_AUX_DIR($libgloss_topdir)
>
> +if test -f "${srcdir}/${with_multisrctop}../../gdb/m32r-stub.c"; then
> + GDBSTUB=${srcdir}/${with_multisrctop}../../gdb/m32r-stub.c
> +else
> + GDBSTUB=
> +fi
> +AC_SUBST(GDBSTUB)
> +
> AC_CANONICAL_SYSTEM
> AC_ARG_PROGRAM
>
--
Joel Sherrill, Ph.D. Director of Research & Development
joel@OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985