Skip to content

configure.ac: update main() signatures to conform to the standard#171

Open
orlitzky wants to merge 2 commits into
trusteddomainproject:developfrom
orlitzky:configure.ac-c-standard
Open

configure.ac: update main() signatures to conform to the standard#171
orlitzky wants to merge 2 commits into
trusteddomainproject:developfrom
orlitzky:configure.ac-c-standard

Conversation

@orlitzky
Copy link
Copy Markdown

There are some tests in configure.ac that contain,

int main() { ... }

That's not the correct signature for main() according to the C standard, and newer compilers are going to reject it. More information about this can be found at,

https://wiki.gentoo.org/wiki/Modern_C_porting

In this case, the fix is simply to write

int main(int argc, char** argv) { ... }

instead.

There are some tests in configure.ac that contain,

  int main() { ... }

That's not the correct signature for main() according to the C
standard, and newer compilers are going to reject it. More information
about this can be found at,

  https://wiki.gentoo.org/wiki/Modern_C_porting

In this case, the fix is simply to write

  int main(int argc, char** argv) { ... }

instead.
The vbr_strlcpy() function declares that its arguments should live in
registers:

  vbr_strlcpy(dst, src, size)
        register char *dst;
        register const char *src;
        ssize_t size;
  {
    ...

This makes GCC unhappy when -Werror=strict-prototypes is used:

  vbr.c:167:1: error: function declaration isn't a prototype
  [-Werror=strict-prototypes]
    167 | vbr_strlcpy(dst, src, size)

The "register" keyword is largely obsolete on modern systems anyway,
since the compiler is better at determining how to move memory around
than the programmer is. So to appease GCC and simplify the code a bit,
the signature has been changed to,

  vbr_strlcpy(char *dst, const char *src, ssize_t size) { ... }

changes. Lines starting # with '#' will be ignored, and an empty
message aborts the commit.  # # On branch configure.ac-c-standard #
Your branch is up to date with 'origin/configure.ac-c-standard'.  # #
Changes to be committed: # modified: libvbr/vbr.c # # Changes not
staged for commit: # modified: configure # # Untracked files: #
0000-cover-letter.patch #
futatuki added a commit to futatuki/OpenDKIM that referenced this pull request Mar 4, 2024
futatuki added a commit to futatuki/OpenDKIM that referenced this pull request Mar 11, 2024
futatuki added a commit to futatuki/OpenDKIM that referenced this pull request Mar 11, 2024
PR trusteddomainproject#171, trusteddomainproject#192, and trusteddomainproject#203 contains changes in configure.ac, however
they were not always reflect their changes into configure.

So rebuild it here.
futatuki added a commit to futatuki/OpenDKIM that referenced this pull request Apr 26, 2024
…c-c-standard

configure.ac: update main() signatures to conform to the standard.
libvbr/vbr.c: fix function signature for vbr_strlcpy into modern C style.
futatuki added a commit to futatuki/OpenDKIM that referenced this pull request Apr 26, 2024
futatuki added a commit to futatuki/OpenDKIM that referenced this pull request Apr 26, 2024
PR trusteddomainproject#171, trusteddomainproject#192, and trusteddomainproject#204 contains changes in configure.ac, however
they were not always reflect their changes into configure.

So rebuild it here.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant