[Nix-dev] Re: [FAILURE] [BUILDFARM] emacs-22

Peter Simons simons at cryp.to
Wed Jul 9 14:19:20 CEST 2008


Hi Michael,

 > make[1]: *** No rule to make target `/usr/lib/crt1.o', needed by `temacs'.  Stop.

on my system, Emacs failed to compile because it looked for crt1.o in
$glibc/lib, but the file really is in $libc/lib64. The "builder.sh" script
contained code prior to my patch that re-wrote those paths from /usr/lib to the
corresponding nix path -- I merely extended that shell code to recognize a 64
bit system. The result is this:

    case "${system}" in
	x86_64-*)	glibclibdir=lib64 ;;
	*)		glibclibdir=lib ;;
    esac

    for i in src/s/*.h src/m/*.h; do
        substituteInPlace $i \
            --replace /usr/${glibclibdir}/crt1.o $libc/${glibclibdir}/crt1.o \
            --replace /usr/${glibclibdir}/crti.o $libc/${glibclibdir}/crti.o \
            --replace /usr/${glibclibdir}/crtn.o $libc/${glibclibdir}/crtn.o
    done

Now, I tested this on a system that uses glibc-2.5. It's quite possible that
glibc-2.7 behaves differently in some way and thus requires different paths.
Secondly, the build error is on the make level, so maybe the patch needs to be
extended to modify configure.ac or Makefile.in too?

It's difficult for me to judge that situation because I cannot re-produce the
failure. Except for the build farm, is there someone who can?

If in doubt, I think it's okay to revert my patch.

Peter




More information about the nix-dev mailing list