Subject: package gcc does not depend on binutils and glibc

From: Bruno Haible <[email-masked]>
Date: Sat, 04 May 2019 00:57:26 +0200

Hi,

After installing the guix-1.0 installation image
(guix-system-vm-image-1.0.0.x86_64-linux) and running it with qemu,
I wanted to compile a hello-world program in C.

$ cat hello.c 
#include <stdio.h>
int main () {
  printf("Hello world\n");
  return 0;
}

$ guix install gcc
$ gcc hello.c
error trying to exec 'as': execvp: No such file or directory

Second try:
$ guix install binutils
$ gcc hello.c
/home/guest/.guix-profile/bin/ld: cannot find crt1.o: No such file or directory
/home/guest/.guix-profile/bin/ld: cannot find crt1.o: No such file or directory
collect2: error: ld returned 1 exit status

Third try:
$ guix install glibc
$ gcc hello.c
Now it succeeds!

I would have expected that 'guix install gcc' installs binutils and glibc
as well, because:
  * The use of gcc without binutils is limited: You can use "gcc -E" and "gcc -S"
    to preprocess or compile to .s files, but this is rarely what people need.
  * The use of gcc without glibc is limited: You can use "gcc -c" to compile
    to .o files. But without the ability to create a program or a shared library
    (which needs crti.o rather than crt1.o), the compiler is hardly useful.

Bruno