Subject: bug#33999: CP437: Invalid Argument on init

From: Danny Milosavljevic <[email-masked]>
Date: Thu, 10 Jan 2019 19:21:07 +0100

Also, if you want, please try the following program on the booted guix system:

#include <stdio.h>
#include <locale.h>
#include <iconv.h>
#include <langinfo.h>

static iconv_t iconv_init_codepage(int codepage)
{
    iconv_t result;
    char codepage_name[16];
    snprintf(codepage_name, sizeof(codepage_name), "CP%d", codepage);
    result = iconv_open(nl_langinfo(CODESET), codepage_name);
    if (result == (iconv_t) - 1) {
        printf("FOO\n");
        perror(codepage_name);
        printf("BAR\n");
    }
    return result;
}

int main() {
        setlocale(LC_ALL, "");
        iconv_init_codepage(437);
        return 0;
}

You'd have to put the above text into a file called "a.c", then invoke

guix package -i gcc-toolchain

Then invoke

gcc -o a a.c

Then invoke

./a

I suspect it will also fail with the same error message.

After that, please invoke

iconv -l |grep -i cp437

It will probably either return nothing or even fail with an error message.