Giter Site home page Giter Site logo

First time compilation error about munit HOT 2 OPEN

nagyj2 avatar nagyj2 commented on July 25, 2024
First time compilation error

from munit.

Comments (2)

codylico avatar codylico commented on July 25, 2024

outsider comment; feel free to ignore

This kind of makes sense:

src/tests/munit.c:1836:47: warning: argument 4 of type 'char * const[argc + 1]' declared with mismatched bound 'argc + 1' [-Wvla-parameter]
 1836 |                         int argc, char* const argv[MUNIT_ARRAY_PARAM(argc + 1)],
      |                                   ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/tests/munit.c:118:
./inc/munit.h:478:51: note: previously declared as 'char * const[argc + 1]' with bound 'argc + 1'
  478 |                             int argc, char* const argv[MUNIT_ARRAY_PARAM(argc + 1)],
      |                                       ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

However, something concerning is this error message (the one you mention):

/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/Authorization.h:193:14: error: variably modified 'bytes' at file scope
  193 |         char bytes[kAuthorizationExternalFormLength];
      |              ^~~~~

This is actually coming from a macOS header, i.e. one not provided by or modified by munit. Based on
the kAuthorizationExternalFormLength documentation and a description of integer constant expressions required by fixed-size arrays, I would say the following:

  • Check again to ensure that the combination of compiler and operating system you listed is actually compatible. There may be Apple Clang features that handle kAuthorizationExternalFormLength in ways that GCC does not.
  • Check any additional compile-time parameters that may be interfering with compilation.
    I request that you follow up after doing so.

P.S. @nagyj2 May I confirm what you seem to state, that you're using macOS 11.4 (not 10.4)?

from munit.

HappySeaFox avatar HappySeaFox commented on July 25, 2024

It looks like VLAs (variable-length arrays) are not supported in this particular GCC version for macOS. It also looks like the macOS headers assume that the compiler supports VLAs as char bytes[kAuthorizationExternalFormLength] is a VLA. I guess you won't be able to use this particular GCC version. Try to use a newer GCC version with VLA support in C11. In particular, __STDC_NO_VLA__ should not be defined by the compiler headers. If __STDC_NO_VLA__ is defined, the compiler doesn't support VLAs.

from munit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.