Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

cli: fix undefined alloca() on CYGWIN#7022

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
ethomson merged 1 commit intolibgit2:mainfromcarlo-bramini:fix-cygwin-1
Jan 20, 2025
Merged

cli: fix undefined alloca() on CYGWIN#7022

ethomson merged 1 commit intolibgit2:mainfromcarlo-bramini:fix-cygwin-1
Jan 20, 2025

Conversation

carlo-bramini
Copy link
Contributor

I tried to build my libgit2-1.9.0 package for CYGWIN but I got an error.
This message appears when compiling:

[199/671] Building C object src/cli/CMakeFiles/git2_cli.dir/opt.c.o libgit2-1.9.0/src/cli/opt.c:In function ‘cli_opt_parse’: libgit2-1.9.0/src/cli/opt.c:564:23: warning: implicit declaration of function ‘alloca’; did you mean ‘malloc’? [-Wimplicit-function-declaration]  564 |         given_specs = alloca(sizeof(const cli_opt_spec *) * (args_len + 1));      |                       ^~~~~~      |                       malloc

and later the linker emits this error message:

[668/671] Linking C executable git2.exeFAILED: git2.exe/usr/x86_64-pc-cygwin/bin/ld: src/cli/CMakeFiles/git2_cli.dir/opt.c.o: in function `cli_opt_parse':/usr/src/debug/libgit2-1.9.0-1/src/cli/opt.c:564:(.text+0xce3): undefined reference to `alloca' collect2: error: ld returned 1 exit status

The error is fixed by addingalloca.h to included headers.
Hopefully,opt.c already allows to addalloca.h for some platforms, so I just added an additional test for the preprocessor for checking if the target is CYGWIN.

I tried to build my libgit2-1.9.0 package for CYGWIN but I got an error. This message appears when compiling:[199/671] Building C object src/cli/CMakeFiles/git2_cli.dir/opt.c.olibgit2-1.9.0/src/cli/opt.c: In function ‘cli_opt_parse’:libgit2-1.9.0/src/cli/opt.c:564:23: warning: implicit declaration of function ‘alloca’; did you mean ‘malloc’? [-Wimplicit-function-declaration]  564 |         given_specs = alloca(sizeof(const cli_opt_spec *) * (args_len + 1));      |                       ^~~~~~      |                       mallocand later the linker emits this error message:[668/671] Linking C executable git2.exeFAILED: git2.exe/usr/x86_64-pc-cygwin/bin/ld: src/cli/CMakeFiles/git2_cli.dir/opt.c.o: in function `cli_opt_parse':/usr/src/debug/libgit2-1.9.0-1/src/cli/opt.c:564:(.text+0xce3): undefined reference to `alloca'collect2: error: ld returned 1 exit statusThe error is fixed by adding alloca.h to included headers.Hopefully, opt.c already allows to add alloca.h for some platforms, so I just added an additional test for the preprocessor for checking if the target is CYGWIN.
@ethomsonethomson merged commit9046535 intolibgit2:mainJan 20, 2025
19 checks passed
@ethomson
Copy link
Member

Thanks!

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers
No reviews
Assignees
No one assigned
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

2 participants
@carlo-bramini@ethomson

[8]ページ先頭

©2009-2025 Movatter.jp