Ticket #78 (closed defect: fixed)

Opened 2 years ago

Last modified 7 months ago

Defective bash in the temporary system

Reported by: ken Assigned to: 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

07/31/06 22:11:28 changed by ken

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

08/01/06 15:46:28 changed 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).

08/02/06 23:18:45 changed 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.

08/03/06 01:38:27 changed by ken

  • owner changed from clfs-commits@lists.cross-lfs.org. to ken.
  • status changed from new to assigned.

08/03/06 11:42:37 changed by ken

  • type changed from task to defect.

08/03/06 13:19:13 changed by ken

  • status changed from assigned to closed.
  • resolution set to fixed.

Done in r2293

08/03/06 13:20:09 changed by ken

  • status changed from closed to reopened.
  • version changed from unstable to 2.0.0.
  • resolution deleted.

Whoops, reopening for CLFS-2.

08/03/06 13:22:17 changed by ken

  • owner changed from ken to jciccone.
  • status changed from reopened to new.

For Joe, re CLFS-2.

08/07/06 17:43:21 changed by jciccone

  • status changed from new to closed.
  • resolution set to fixed.

Fixed in r2315

05/21/08 14:19:45 changed 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.

05/22/08 00:40:41 changed 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.