Is libc C99 compliant?

Steve Kargl sgk at troutmask.apl.washington.edu
Wed Jan 30 23:13:19 UTC 2019


Originally sent to freebsd-standards@ and freebsd-toolchain@,
but those list appear to be defunct.

Is libc C99 compliant?

-- 
steve

----- Forwarded message from Steve Kargl <sgk at troutmask.apl.washington.edu> -----

Date: Wed, 30 Jan 2019 13:29:04 -0800
From: Steve Kargl <sgk at troutmask.apl.washington.edu>
To: freebsd-standards at freebsd.org, freebsd-toolchain at freebsd.org
Subject: Is libc C99 compliant?
User-Agent: Mutt/1.11.2 (2019-01-07)

When building gcc file gcc/config/freebsd.c contains

#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function

In targhook.c, one finds

/* By default we assume that c99 functions are present at the runtime,
   but sincos is not.  */
bool
default_libc_has_function (enum function_class fn_class)
{
  if (fn_class == function_c94
      || fn_class == function_c99_misc
      || fn_class == function_c99_math_complex)
    return true;

  return false;
}

bool
no_c99_libc_has_function (enum function_class fn_class ATTRIBUTE_UNUSED)
{
  return false;
}

Shouldi/can TARGET_LIBC_HAS_FUNCTION be updated to at least
default_libc_has_function?  More importantly now that libm
contains sincos[fl], should FreeBSD gcc config file be updated
to use

bool
bsd_libc_has_function (enum function_class fn_class)
{
  if (fn_class == function_c94
      || fn_class == function_c99_misc
      || fn_class == function_c99_math_complex
      || fn_class == function_sincos)
    return true;

  return false;
}

-- 
Steve

----- End forwarded message -----

-- 
Steve
20170425 https://www.youtube.com/watch?v=VWUpyCsUKR4
20161221 https://www.youtube.com/watch?v=IbCHE-hONow


More information about the freebsd-hackers mailing list