Skip to content

Commit

Permalink
fix: make sure that postject-api.h compiles without warnings (#54)
Browse files Browse the repository at this point in the history
* fix: make sure that postject-api.h compiles without warnings

Fixes the following error I came across while integrating Postject in
Node.js:
```console
../deps/postject/src/dist/postject-api.h:30:13: error: unused function 'postject_options_init' [-Werror,-Wunused-function]
static void postject_options_init(struct postject_options* options) {
            ^
1 error generated.
```

Refs: nodejs/node#45038
Signed-off-by: Darshan Sen <raisinten@gmail.com>

* fix: resolve another compiler warning

```console
In file included from /root/project/test/test.c:4:
/root/project/test/../dist/postject-api.h: In function 'postject_find_resource':
/root/project/test/../dist/postject-api.h:96:9: error: unused variable 'ptr' [-Werror=unused-variable]
   96 |   void* ptr = NULL;
      |         ^~~
cc1: all warnings being treated as errors
```

Refs: https://app.circleci.com/pipelines/github/postmanlabs/postject/180/workflows/d0eb47c0-5482-4c85-9c63-aa854ddb0221/jobs/1398?invite=true#step-110-678
Signed-off-by: Darshan Sen <raisinten@gmail.com>

* fix: use -Wall -WX on Windows

Signed-off-by: Darshan Sen <raisinten@gmail.com>

* chore: use -W4 instead of -Wall

-Wall produces too many warnings.

Refs: https://app.circleci.com/pipelines/github/postmanlabs/postject/185/workflows/48b0f126-8000-41d9-b39e-cb8b9e4bc9d6/jobs/1441?invite=true#step-107-693
Signed-off-by: Darshan Sen <raisinten@gmail.com>

* fix: another compilation warning on Windows

```console
C:\Users\circleci\project\test\../dist/postject-api.h(153,5): error C2220: the following warning is treated as an error [C:\Users\circleci\project\build\test\c_test.vcxproj]
C:\Users\circleci\project\test\../dist/postject-api.h(153,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [C:\Users\circleci\project\build\test\c_test.vcxproj]
C:\Users\circleci\project\test\test.c(13,5): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [C:\Users\circleci\project\build\test\c_test.vcxproj]
```

Refs: https://app.circleci.com/pipelines/github/postmanlabs/postject/186/workflows/f1389b9f-c958-4a24-9d6e-28af856ff776/jobs/1455?invite=true#step-107-694
Signed-off-by: Darshan Sen <raisinten@gmail.com>

* fix: compiler warning on Windows

```console
C:\Users\circleci\project\test\test.c(13,5): error C2220: the following warning is treated as an error [C:\Users\circleci\project\build\test\c_test.vcxproj]
C:\Users\circleci\project\test\test.c(13,5): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [C:\Users\circleci\project\build\test\c_test.vcxproj]
```

Refs: https://app.circleci.com/pipelines/github/postmanlabs/postject/187/workflows/8bcdcb96-646d-4008-93bf-294e92469b3d/jobs/1464?invite=true#step-107-694
Signed-off-by: Darshan Sen <raisinten@gmail.com>

* fix: use -EHsc for test.cpp

```console
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\ostream(743,1): error C2220: the following warning is treated as an error [C:\Users\circleci\project\build\test\cpp_test.vcxproj]
C:\Users\circleci\project\test\test.cpp(13): message : see reference to function template instantiation 'std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,const char *)' being compiled [C:\Users\circleci\project\build\test\cpp_test.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\ostream(743,1): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc [C:\Users\circleci\project\build\test\cpp_test.vcxproj]
```

Refs: https://app.circleci.com/pipelines/github/postmanlabs/postject/188/workflows/9107adc5-61a3-41ad-bd60-dd3eb0996765/jobs/1470?invite=true#step-107-696
Signed-off-by: Darshan Sen <raisinten@gmail.com>

* fix: use / instead of - for Windows compiler options

Signed-off-by: Darshan Sen <raisinten@gmail.com>

* chore: use target_compile_options instead of set

Signed-off-by: Darshan Sen <raisinten@gmail.com>

Signed-off-by: Darshan Sen <raisinten@gmail.com>
  • Loading branch information
RaisinTen committed Oct 20, 2022
1 parent 1f1d160 commit b9356bf
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
5 changes: 2 additions & 3 deletions postject-api.h
Expand Up @@ -27,7 +27,7 @@ struct postject_options {
const char* pe_resource_name;
};

static void postject_options_init(struct postject_options* options) {
inline void postject_options_init(struct postject_options* options) {
options->elf_section_name = NULL;
options->macho_framework_name = NULL;
options->macho_section_name = NULL;
Expand Down Expand Up @@ -93,7 +93,6 @@ static const void* postject_find_resource(

return ptr;
#elif defined(__linux__)
void* ptr = NULL;

if (options != NULL && options->elf_section_name != NULL) {
name = options->elf_section_name;
Expand Down Expand Up @@ -151,7 +150,7 @@ static const void* postject_find_resource(
if (resource_name == NULL) {
return NULL;
}
strcpy(resource_name, name);
strcpy_s(resource_name, strlen(name) + 1, name);
CharUpperA(resource_name); // Uppercases inplace
}

Expand Down
8 changes: 8 additions & 0 deletions test/CMakeLists.txt
Expand Up @@ -5,3 +5,11 @@ project(postject-tests)

add_executable(c_test test.c)
add_executable(cpp_test test.cpp)

if(WIN32)
target_compile_options(c_test PRIVATE /W4 /WX)
target_compile_options(cpp_test PRIVATE /W4 /WX /EHsc)
else()
target_compile_options(c_test PRIVATE -Wall -Werror)
target_compile_options(cpp_test PRIVATE -Wall -Werror)
endif()
4 changes: 4 additions & 0 deletions test/test.c
Expand Up @@ -10,7 +10,11 @@ int main() {
if (ptr && size > 0) {
char* str = (char*)malloc(size + 1);
memset(str, 0, size + 1);
#if defined(_WIN32)
strncpy_s(str, size + 1, ptr, size);
#else
strncpy(str, ptr, size);
#endif
printf("%s\n", str);
} else {
printf("Hello world\n");
Expand Down

0 comments on commit b9356bf

Please sign in to comment.