bugmake - Bugs: bug #58435, make 4.3 is not c89 compliant

 
 

bug #58435: make 4.3 is not c89 compliant

Submitter:  None
Submitted:  Sat 23 May 2020 10:35:54 PM UTC
   
 
Severity:  3 - Normal Item Group:  Build/Install
Status:  Fixed Privacy:  Public
Assigned to:  psmith Open/Closed:  Closed
Component Version:  4.3 Operating System:  POSIX-Based
Fixed Release:  4.4 Triage Status:  Small Effort
* Mandatory Fields

Add a New Comment Rich Markup
   

Sun 19 Jul 2020 11:06:09 PM UTC, comment #4: 

I asked the Gnulib developers and they added missing markup to gnulib modules that require c99 support, to ensure that configure checks for it.

Since we are going to require c99 anyway due to gnulib, I updated the minimum C version for GNU make to c99 as well.

Paul D. Smith <psmith>
Group administrator
Sun 24 May 2020 08:43:45 PM UTC, comment #3: 

perhaps the maintainers of gnulib ought to be notified of this also...

gnu's coding standards state that c89 should be the default targeted c standard, and c99 functionality should be checked for if used. if gnulib is using c99 features, and is meant to be the canonical source of portability code, that seems like an issue to me...

Anonymous
Sun 24 May 2020 12:13:39 PM UTC, comment #2: 

This code was introduced when a local implementation of strerror was replaced with gnulib's one.

commit 4d00ceba264a9fd04241dcd2685526ce64c1346b
Author: Paul Smith <psmith@gnu.org>
Date:   Sat Jul 13 08:34:45 2019 -0400

    Switch to the gnulib version of strerror()
   
    * bootstrap.conf: Add strerror module
    * configure.ac: Remove strerror check
    * src/misc.c: Remove local strerror() implementation
    * src/config.ami.template: Remove HAVE_STRERROR
    * src/config.h-vms.template: Ditto.
    * src/config.h.W32.template: Ditto.


Either c90 conformance has to be dropped or code from gnulib cannot be easily integrated.

Dmitry Goncharov <dgoncharov>
Sun 24 May 2020 06:05:56 AM UTC, comment #1: 

i probably worded the title badly.

the fact that gnu make requires c99 features is not a problem, but if it does require c99, then this should be clear and the configure script should be checking for c99 support and adding flags if necessary.

however, since prior versions (4.2.1) built when in c89 mode, i was unsure if the use of c99 features is intentional.

Anonymous
Sat 23 May 2020 10:35:54 PM UTC, original submission:  

make 4.2.1 builds with compilers that default to strict c89, but make 4.3 does not due to use of variable argument macros (a c99 feature) in lib/verify.h.

specifically, i am using the sgi mipspro 7.4.3 compiler on irix 6.5.22.

please consider either returning to c89 compliance when compiled without support for later standards, or officially requiring C99 and using an autotools macro such as AC_PROG_CC_C99 to ensure that necessary flags for c99 compilation are passed to the compiler.

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by psmith (Posted a comment)
  • -email is unavailable- added by dgoncharov (Posted a comment)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 6 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2020-07-19 psmith StatusNone Fixed
        Assigned toNone psmith
        Open/ClosedOpen Closed
        Component VersionNone 4.3
        Fixed ReleaseNone 4.4
        Triage StatusNone Small Effort

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code