On 29/10/2025 03:51, Collin Funk wrote:
Collin Funk <[email protected]> writes:

My intuition is that calling the Core Foundation locale functions will
cause that environment variable to be set along with creating that file.

Can you share the ./configure options you used? Or did you download
Coreutils through Homebrew? That would help lead me in the right
direction, I think.

Actually the environment variable is set in any program that is linked
against Core Foundation. Regardless of whether you call functions from
it or not. See the following test program:

     $ cat main.c
     #include <stdio.h>
     #include <stdlib.h>
     int
     main (void)
     {
       char *p = getenv ("__CF_USER_TEXT_ENCODING");
       printf ("%s\n", p ? p : "(null)");
       return EXIT_SUCCESS;
     }
     $ ./a.out
     (null)
     $ cc main.c -Wl,-framework -Wl,CoreFoundation
     $ ./a.out
     0xF23D:0:0

I believe Core Foundation is needed for our setlocale substitute on
MacOS.

Oh interesting.
That would be a reason to not link env(1) against it.
In fact only 6 commands require the localename-unsafe dependency:  date, du 
through show-date() (fprintftime), and
  ls, pr, stat, uptime through strftime().
So I'll adjust things to only link those against CoreFoundation.

cheers,
Padraig




Reply via email to