Mail Archives: cygwin/2003/01/23/18:13:12
Thanks Igor:
Solved my problem.
J.
Igor Pechtchanski wrote:
>John,
>
>There are different reasons for the two problems that you describe, but
>neither is a bug in GNU make. The answers to both of your questions are
>contained in <http://cygwin.com/ml/cygwin/2003-01/msg01104.html>, though
>in reverse order.
>
>The first error is related to your default shell being different on the
>two systems (Linux and Cygwin). Your default shell under Cygwin is bash
>(whatever the current version is), with the default options set at compile
>time. It seems that your Linux shell does not repeat the configuration
>(even if it also is bash). The one relevant bit of configuration is
>expanding null globs (i.e., when a glob doesn't match anything). Try
>setting 'shopt -s nullglob' in your .bashrc. That should get rid of the
>first error [*].
>
>The second error is the result of a bug in your Makefile. The result of a
>shell substitution
> export LIST=`grep -lr ":gcrt1.o%s}" *`
>is not quoted. Thus, when grep matches *two* files, the shell treats the
>second file as another variable to export. You should change that line to
> export LIST="`grep -lr ":gcrt1.o%s}" *`"
>That should get rid of the second error.
> Igor
>
>[*] Provided you don't set SHELL in your Makefile -- you haven't provided
>enough of a snippet to ascertain that. If you set your SHELL to, for
>example, ksh, you may need a different way of turning on nullglob
>expansion -- see the ksh manpage for details.
>
>
>On Thu, 23 Jan 2003, John McLean wrote:
>
>
>
>>Hi, I'm having some problems with GNU make under cygwin. Everything
>>works fine under linux, but it breaks under cygwin.
>>
>>Below is the relevant snippit from my Makefile.
>>
>><snip>
>>#############################################################
>>#
>># gcc1: uncompress and patch
>>#
>>#############################################################
>>.gcc1:
>> rm -f .gcc1
>> rm -rf ${GCC_PATH}
>> bzcat ${BASEDIR}/sources/${GCC_SOURCE} | tar ${VERBOSE_TAR} -x
>> # Apply all gcc patches in the source directory, named gcc-*.patch
>> for p in ${BASEDIR}/sources/gcc-*.patch ; do \
>> cat $$p | patch ${VERBOSE_PATCH} -p1 -d ${GCC_PATH} ; \
>> done
>> (cd ${GCC_PATH}; set -e; export LIST=`grep -lr ":gcrt1.o%s}" *`; \
>> if [ -n "$$LIST" ] ; then \
>> perl -i.orig -p -e "s,:gcrt1.o%s},:crt0.o%s},g;" \
>> $$LIST; fi);
>></snip>
>>
>>It runs fine under linux, but under cygwin I get
>>
>><snip>
>>gcc-3.2.1/GNATS
>>gcc-3.2.1/.brik
>># Apply all gcc patches in the source directory, named gcc-*.patch
>>for p in /home/david/tsi-tools-source/sources/gcc-*.patch ; do \
>> cat $p | patch -p1 -d
>>"/home/david/tsi-tools-source/gcc-"3.2.1"" ; \
>>done
>>cat: /home/david/tsi-tools-source/sources/gcc-*.patch: No such file or
>>directory
>>
>>(cd "/home/david/tsi-tools-source/gcc-"3.2.1""; set -e; export
>>LIST=`grep -lr "
>>:gcrt1.o%s}" *`; \
>> if [ -n "$LIST" ] ; then \
>> perl -i.orig -p -e "s,:gcrt1.o%s},:crt0.o%s},g;" \
>> $LIST; fi);
>>export: gcc/config/arm/linux-elf.h: bad variable name
>>make: *** [.gcc1] Error 2
>></snip>
>>
>>
>>Now the wierd thing is if I copy this output and type it on the command
>>line everything works fine.
>>
>>FYI: gcc/config/arm/linux-elf.h is the second file it finds. And I'm
>>trying to make a cross compiler for an embedded target.
>>
>>All of the cygwin programs are from downloading them today Jan.23
>>
>>Make is version 3.79.1
>>
>>
>
>
>
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -