Message ID | 20181221173729.41870-1-Nikita.Sobolev@synopsys.com |
---|---|
State | New |
Headers | show |
Series | azure-iot-sdk-c: Bump to version 2018-12-13 | expand |
>>>>> "Nikita" == Nikita Sobolev <Nikita.Sobolev@synopsys.com> writes: > From: NikitaSobolev <Nikita.Sobolev@synopsys.com> > Bump azure-iot-sdk-c to 2018-12-13 release. > Add patch, that removes Windows specified variables from > azure-iot-sdk-c-2018-12-13 release. That variables cause > build errors. > Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com> > --- > ...-azure-iot-sdk-c-Delete-windows-variables.patch | 34 ++++++++++++++++++++++ > package/azure-iot-sdk-c/azure-iot-sdk-c.mk | 2 +- > 2 files changed, 35 insertions(+), 1 deletion(-) > create mode 100644 package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch > diff --git > a/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch > b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch > new file mode 100644 > index 0000000000..e8ff53cb5a > --- /dev/null > +++ b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch > @@ -0,0 +1,34 @@ > +From 6c01ef50e0c2d562388aacbb60a1506e70db2218 Mon Sep 17 00:00:00 2001 > +From: Nikita Sobolev <Nikita.Sobolev@synopsys.com> > +Date: Thu, 20 Dec 2018 19:31:20 +0300 > +Subject: [PATCH] azure-iot-sdk-c: Delete windows variables > + > +Delete windows specified variables, that have been added > +to azure-iot-sdk-c-2018-12-13 release. These variables > +are not defined for Linux and cause build errors. > + > +Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com> > +--- > + c-utility/CMakeLists.txt | 6 ------ > + 1 file changed, 6 deletions(-) > + > +diff --git a/c-utility/CMakeLists.txt b/c-utility/CMakeLists.txt > +index 190ea87dca..464d6d1069 100644 > +--- a/c-utility/CMakeLists.txt > ++++ b/c-utility/CMakeLists.txt > +@@ -264,12 +264,6 @@ if(${use_applessl}) > + include_directories(./pal/ios-osx/) > + endif() > + > +-if (WIN32 AND (${CMAKE_SYSTEM_VERSION} VERSION_EQUAL "10.0.17763.0" > OR ${CMAKE_SYSTEM_VERSION} VERSION_GREATER "10.0.17763.0")) > +- # Windows added support for UNIX domain sockets to the OS and SDK > +- # in the Oct 2018 update (10.0.17763.0, aka RS5) > +- add_definitions(-DAF_UNIX_ON_WINDOWS) > +-endif() Can you be more specific what the issue is exactly? Given the WIN32 in this conditional this should never be true in the context of Buildroot, so the define shouldn't get added?
There's no problem with WIN32 variable. Buildroot can not find CMAKE_SYSTEM_VERSION while building in Linux. It fails with error: -------------------->8---------------------- CMake Error at c-utility/CMakeLists.txt:267 (if): if given arguments: "WIN32" "AND" "(" "VERSION_EQUAL" "10.0.17763.0" "OR" "VERSION_GREATER" "10.0.17763.0" ")" Unknown arguments specified -- Configuring incomplete, errors occurred! -------------------->8----------------------- On Fri, 2018-12-21 at 23:02 +0100, Peter Korsgaard wrote: > > > > > > "Nikita" == Nikita Sobolev <Nikita.Sobolev@synopsys.com> writes: > > > From: NikitaSobolev <Nikita.Sobolev@synopsys.com> > > Bump azure-iot-sdk-c to 2018-12-13 release. > > Add patch, that removes Windows specified variables from > > azure-iot-sdk-c-2018-12-13 release. That variables cause > > build errors. > > > Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com> > > --- > > ...-azure-iot-sdk-c-Delete-windows-variables.patch | 34 ++++++++++++++++++++++ > > package/azure-iot-sdk-c/azure-iot-sdk-c.mk | 2 +- > > 2 files changed, 35 insertions(+), 1 deletion(-) > > create mode 100644 package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch > > > diff --git > > a/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch > > b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch > > new file mode 100644 > > index 0000000000..e8ff53cb5a > > --- /dev/null > > +++ b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch > > @@ -0,0 +1,34 @@ > > +From 6c01ef50e0c2d562388aacbb60a1506e70db2218 Mon Sep 17 00:00:00 2001 > > +From: Nikita Sobolev <Nikita.Sobolev@synopsys.com> > > +Date: Thu, 20 Dec 2018 19:31:20 +0300 > > +Subject: [PATCH] azure-iot-sdk-c: Delete windows variables > > + > > +Delete windows specified variables, that have been added > > +to azure-iot-sdk-c-2018-12-13 release. These variables > > +are not defined for Linux and cause build errors. > > + > > +Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com> > > +--- > > + c-utility/CMakeLists.txt | 6 ------ > > + 1 file changed, 6 deletions(-) > > + > > +diff --git a/c-utility/CMakeLists.txt b/c-utility/CMakeLists.txt > > +index 190ea87dca..464d6d1069 100644 > > +--- a/c-utility/CMakeLists.txt > > ++++ b/c-utility/CMakeLists.txt > > +@@ -264,12 +264,6 @@ if(${use_applessl}) > > + include_directories(./pal/ios-osx/) > > + endif() > > + > > +-if (WIN32 AND (${CMAKE_SYSTEM_VERSION} VERSION_EQUAL "10.0.17763.0" > > OR ${CMAKE_SYSTEM_VERSION} VERSION_GREATER "10.0.17763.0")) > > +- # Windows added support for UNIX domain sockets to the OS and SDK > > +- # in the Oct 2018 update (10.0.17763.0, aka RS5) > > +- add_definitions(-DAF_UNIX_ON_WINDOWS) > > +-endif() > > Can you be more specific what the issue is exactly? Given the WIN32 in > this conditional this should never be true in the context of Buildroot, > so the define shouldn't get added? >
Am 24.12.18 um 13:46 schrieb Nikita Sobolev: > There's no problem with WIN32 variable. > Buildroot can not find CMAKE_SYSTEM_VERSION while building in Linux. > It fails with error: > -------------------->8---------------------- > CMake Error at c-utility/CMakeLists.txt:267 (if): > if given arguments: > > "WIN32" "AND" "(" "VERSION_EQUAL" "10.0.17763.0" "OR" "VERSION_GREATER" "10.0.17763.0" ")" > > Unknown arguments specified > > > -- Configuring incomplete, errors occurred! > -------------------->8----------------------- > > On Fri, 2018-12-21 at 23:02 +0100, Peter Korsgaard wrote: > > > > > > > "Nikita" == Nikita Sobolev <Nikita.Sobolev@synopsys.com> writes: >> >> > From: NikitaSobolev <Nikita.Sobolev@synopsys.com> >> > Bump azure-iot-sdk-c to 2018-12-13 release. >> > Add patch, that removes Windows specified variables from >> > azure-iot-sdk-c-2018-12-13 release. That variables cause >> > build errors. >> >> > Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com> >> > --- >> > ...-azure-iot-sdk-c-Delete-windows-variables.patch | 34 ++++++++++++++++++++++ >> > package/azure-iot-sdk-c/azure-iot-sdk-c.mk | 2 +- >> > 2 files changed, 35 insertions(+), 1 deletion(-) >> > create mode 100644 package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch >> >> > diff --git >> > a/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch >> > b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch >> > new file mode 100644 >> > index 0000000000..e8ff53cb5a >> > --- /dev/null >> > +++ b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch >> > @@ -0,0 +1,34 @@ >> > +From 6c01ef50e0c2d562388aacbb60a1506e70db2218 Mon Sep 17 00:00:00 2001 >> > +From: Nikita Sobolev <Nikita.Sobolev@synopsys.com> >> > +Date: Thu, 20 Dec 2018 19:31:20 +0300 >> > +Subject: [PATCH] azure-iot-sdk-c: Delete windows variables >> > + >> > +Delete windows specified variables, that have been added >> > +to azure-iot-sdk-c-2018-12-13 release. These variables >> > +are not defined for Linux and cause build errors. >> > + >> > +Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com> >> > +--- >> > + c-utility/CMakeLists.txt | 6 ------ >> > + 1 file changed, 6 deletions(-) >> > + >> > +diff --git a/c-utility/CMakeLists.txt b/c-utility/CMakeLists.txt >> > +index 190ea87dca..464d6d1069 100644 >> > +--- a/c-utility/CMakeLists.txt >> > ++++ b/c-utility/CMakeLists.txt >> > +@@ -264,12 +264,6 @@ if(${use_applessl}) >> > + include_directories(./pal/ios-osx/) >> > + endif() >> > + >> > +-if (WIN32 AND (${CMAKE_SYSTEM_VERSION} VERSION_EQUAL "10.0.17763.0" >> > OR ${CMAKE_SYSTEM_VERSION} VERSION_GREATER "10.0.17763.0")) >> > +- # Windows added support for UNIX domain sockets to the OS and SDK >> > +- # in the Oct 2018 update (10.0.17763.0, aka RS5) >> > +- add_definitions(-DAF_UNIX_ON_WINDOWS) >> > +-endif() >> >> Can you be more specific what the issue is exactly? Given the WIN32 in >> this conditional this should never be true in the context of Buildroot, >> so the define shouldn't get added? >> There shouldn't be a problem, all variables/macros should be defined by cmake: https://cmake.org/cmake/help/v3.0/variable/CMAKE_VERSION.html https://cmake.org/cmake/help/v3.0/variable/WIN32.html https://cmake.org/cmake/help/v3.0/variable/CMAKE_SYSTEM_VERSION.html On a site note: 2018-12-13 would fix the recently build failures for this package... @Nikita: Would you mind taking maintainership for this package by adding it and yourself to the DEVELOPERS file? And could you please elaborate the cmake problem above some more? Thanks!
Hello, On Fri, 21 Dec 2018 20:37:29 +0300, Nikita Sobolev wrote: > From: NikitaSobolev <Nikita.Sobolev@synopsys.com> > > Bump azure-iot-sdk-c to 2018-12-13 release. > Add patch, that removes Windows specified variables from > azure-iot-sdk-c-2018-12-13 release. That variables cause > build errors. > > Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com> So, I looked into this. Indeed, without the patch, the build fails with: CMake Error at c-utility/CMakeLists.txt:267 (if): if given arguments: "WIN32" "AND" "(" "VERSION_EQUAL" "10.0.17763.0" "OR" "VERSION_GREATER" "10.0.17763.0" ")" Unknown arguments specified The problem comes from the fact that ${CMAKE_SYSTEM_VERSION} is empty. And the CMake documentation (https://cmake.org/cmake/help/v3.4/variable/CMAKE_SYSTEM_VERSION.html) explains why: When the CMAKE_SYSTEM_NAME variable is set explicitly to enable cross compiling then the value of CMAKE_SYSTEM_VERSION must also be set explicitly to specify the target system version. We are defining CMAKE_SYSTEM_NAME in our toolchain file, but not CMAKE_SYSTEM_VERSION. So for now, I simply defined CMAKE_SYSTEM_VERSION locally in azure-iot-sdk-c, and dropped the patch. Long term, perhaps we should define CMAKE_SYSTEM_VERSION in our toolchain file. I'm not sure who is maintaining our CMake infrastructure these days, Samuel Martin used to do it, but he is no longer very active. Best regards, Thomas
On 30/12/2018 22:41, Thomas Petazzoni wrote: > Hello, > > On Fri, 21 Dec 2018 20:37:29 +0300, Nikita Sobolev wrote: >> From: NikitaSobolev <Nikita.Sobolev@synopsys.com> >> >> Bump azure-iot-sdk-c to 2018-12-13 release. >> Add patch, that removes Windows specified variables from >> azure-iot-sdk-c-2018-12-13 release. That variables cause >> build errors. >> >> Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com> > > So, I looked into this. Indeed, without the patch, the build fails with: > > CMake Error at c-utility/CMakeLists.txt:267 (if): > if given arguments: > > "WIN32" "AND" "(" "VERSION_EQUAL" "10.0.17763.0" "OR" "VERSION_GREATER" "10.0.17763.0" ")" > > Unknown arguments specified > > The problem comes from the fact that ${CMAKE_SYSTEM_VERSION} is empty. > And the CMake documentation > (https://cmake.org/cmake/help/v3.4/variable/CMAKE_SYSTEM_VERSION.html) > explains why: > > When the CMAKE_SYSTEM_NAME variable is set explicitly to enable cross > compiling then the value of CMAKE_SYSTEM_VERSION must also be set > explicitly to specify the target system version. > > We are defining CMAKE_SYSTEM_NAME in our toolchain file, but not > CMAKE_SYSTEM_VERSION. > > So for now, I simply defined CMAKE_SYSTEM_VERSION locally in > azure-iot-sdk-c, and dropped the patch. Long term, perhaps we should > define CMAKE_SYSTEM_VERSION in our toolchain file. I'm not sure who is > maintaining our CMake infrastructure these days, Samuel Martin used to > do it, but he is no longer very active. Indeed, it should be set in the toolchain file. CMAKE_SYSTEM_VERSION is the output of `uname -r` of the target system, i.e. the kernel version. We don't have that, but we do have BR2_TOOLCHAIN_HEADERS_AT_LEAST which should be good enough. Regards, Arnout
diff --git a/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch new file mode 100644 index 0000000000..e8ff53cb5a --- /dev/null +++ b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch @@ -0,0 +1,34 @@ +From 6c01ef50e0c2d562388aacbb60a1506e70db2218 Mon Sep 17 00:00:00 2001 +From: Nikita Sobolev <Nikita.Sobolev@synopsys.com> +Date: Thu, 20 Dec 2018 19:31:20 +0300 +Subject: [PATCH] azure-iot-sdk-c: Delete windows variables + +Delete windows specified variables, that have been added +to azure-iot-sdk-c-2018-12-13 release. These variables +are not defined for Linux and cause build errors. + +Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com> +--- + c-utility/CMakeLists.txt | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/c-utility/CMakeLists.txt b/c-utility/CMakeLists.txt +index 190ea87dca..464d6d1069 100644 +--- a/c-utility/CMakeLists.txt ++++ b/c-utility/CMakeLists.txt +@@ -264,12 +264,6 @@ if(${use_applessl}) + include_directories(./pal/ios-osx/) + endif() + +-if (WIN32 AND (${CMAKE_SYSTEM_VERSION} VERSION_EQUAL "10.0.17763.0" OR ${CMAKE_SYSTEM_VERSION} VERSION_GREATER "10.0.17763.0")) +- # Windows added support for UNIX domain sockets to the OS and SDK +- # in the Oct 2018 update (10.0.17763.0, aka RS5) +- add_definitions(-DAF_UNIX_ON_WINDOWS) +-endif() +- + #these are the C headers + set(source_h_files + ./inc/azure_c_shared_utility/agenttime.h +-- +2.16.2 + diff --git a/package/azure-iot-sdk-c/azure-iot-sdk-c.mk b/package/azure-iot-sdk-c/azure-iot-sdk-c.mk index 504929aee6..8b3f670399 100644 --- a/package/azure-iot-sdk-c/azure-iot-sdk-c.mk +++ b/package/azure-iot-sdk-c/azure-iot-sdk-c.mk @@ -4,7 +4,7 @@ # ################################################################################ -AZURE_IOT_SDK_C_VERSION = 2018-03-16 +AZURE_IOT_SDK_C_VERSION = 2018-12-13 AZURE_IOT_SDK_C_SITE = https://github.com/Azure/azure-iot-sdk-c AZURE_IOT_SDK_C_SITE_METHOD = git AZURE_IOT_SDK_C_GIT_SUBMODULES = YES