Ticket #78 (closed defect: fixed)

Opened 11 years ago

Last modified 10 years ago

Defective bash in the temporary system

Reported by: ken Owned by: jciccone
Priority: major Milestone:
Component: BOOK Version: CLFS Sysroot 1.0.0
Keywords: Cc:

Description

If you 'su' to user clfs (or whomever) to build the temporary system, bash is defective. This mostly passes unnoticed, but when you run the glibc testsuite you will see

scripts/check-c++-types.sh: line 38: syntax error near unexpected token `('
scripts/check-c++-types.sh: line 38: `  $cxx -S -xc++ -o - -D_GNU_SOURCE <(cat <<EOF'
make[1]: *** [/building/glibc-build/c++-types-check.out] Error 2

We seem to have now traced this to a failed test in bash's configure:

checking whether /dev/fd is available... absent

This test returns 'standard' if the builder is logged in, or is root, but 'absent' if the user has used 'su' to become the user who will build the clfs system.

Change History

comment:1 Changed 11 years ago by ken

This probably applies to both 1.0 and 2.0 - I'm testing a fix at the moment.

comment:2 Changed 11 years ago by ken

Using

echo "bash_cv_dev_fd=standard" >>config.cache

works for me. Not yet sure if this is the best fix, the problem seems to be related to cross-compiling, rather than directly to the /dev/fd test in configure (e.g. lfs shows 'absent' in the build, but doesn't have the problem).

comment:3 Changed 11 years ago by ken

I prefer to go with Go Moko's further analysis and use

echo "bash_cv_sys_named_pipes=yes" >>config.cache

The /dev/fd stuff is, of itself, harmless enough, it is the absence of named pipes (which cannot be tested when cross-compiling) that causes PROCESS_SUBSTITUTION to be undefined.

Tested on x86_64-64, 'grep foo <(ls)' works, and no problems with c++-types-check in the glibc tests.

comment:4 Changed 11 years ago by ken

  • Status changed from new to assigned
  • Owner changed from clfs-commits@… to ken

comment:5 Changed 11 years ago by ken

  • Type changed from task to defect

comment:6 Changed 11 years ago by ken

  • Status changed from assigned to closed
  • Resolution set to fixed

Done in r2293

comment:7 Changed 11 years ago by ken

  • Status changed from closed to reopened
  • Version changed from unstable to 2.0.0
  • Resolution fixed deleted

Whoops, reopening for CLFS-2.

comment:8 Changed 11 years ago by ken

  • Status changed from reopened to new
  • Owner changed from ken to jciccone

For Joe, re CLFS-2.

comment:9 Changed 11 years ago by jciccone

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in r2315

comment:10 Changed 10 years ago by selmaguzel

Hi, I am new member and new to clfs,too. I want to build my own arm-toolchain. And I nearly understand what I must do. But unfortunately,i got an error when i wanted to start like below: cd export CLFS_HOST = "$ (echo $ MACHTYPE | \ sed" s / $ (echo $ MACHTYPE | cut-d--f2) / cross / ")" bash: syntax error near unexpected token `('

I run echo "bash_cv_dev_fd=standard" >>config.cache,but nothing has changed. Any suggestions? Thanks.

comment:11 Changed 10 years ago by jciccone

This ticket has been closed for a long time. The error your refering to is a typo/. You have spaces where you shouldn't have spaces and don't have spaces when you should have spaces. Check the command in the book against yours again.

Note: See TracTickets for help on using tickets.