Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

orlitzky
Copy link

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