[hwloc-devel] hwloc_distances_add conflicting declaration
Trying to build 2.0.2 on cygwin 64 bit. CC diff.lo CC shmem.lo /cygdrive/d/cyg_pub/devel/hwloc/hwloc-2.0.2-1.x86_64/src/hwloc-2.0.2/hwloc/distances.c:347:5: error: conflicting types for ‘hwloc_distances_add’ int hwloc_distances_add(hwloc_topology_t topology, ^~~ In file included from /cygdrive/d/cyg_pub/devel/hwloc/hwloc-2.0.2-1.x86_64/src/hwloc-2.0.2/include/hwloc.h:2258:0, from /cygdrive/d/cyg_pub/devel/hwloc/hwloc-2.0.2-1.x86_64/src/hwloc-2.0.2/hwloc/distances.c:9: /cygdrive/d/cyg_pub/devel/hwloc/hwloc-2.0.2-1.x86_64/src/hwloc-2.0.2/include/hwloc/distances.h:229:20: note: previous declaration of ‘hwloc_distances_add’ was here HWLOC_DECLSPEC int hwloc_distances_add(hwloc_topology_t topology, ^~~ In file included from /cygdrive/d/cyg_pub/devel/hwloc/hwloc-2.0.2-1.x86_64/src/hwloc-2.0.2/include/private/private.h:29:0, from /cygdrive/d/cyg_pub/devel/hwloc/hwloc-2.0.2-1.x86_64/src/hwloc-2.0.2/hwloc/distances.c:10: /cygdrive/d/cyg_pub/devel/hwloc/hwloc-2.0.2-1.x86_64/src/hwloc-2.0.2/hwloc/distances.c: In function ‘hwloc__groups_by_distances’: also adding a HWLOC_DECLSPEC on the first case distances.c:347 does not solve the issue as the two declaration are not the same. Suggestion ? --- Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft. https://www.avast.com/antivirus ___ hwloc-devel mailing list hwloc-devel@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/hwloc-devel
Re: [hwloc-devel] hwloc_distances_add conflicting declaration
Am 30.09.2018 um 20:11 schrieb Samuel Thibault: Marco Atzeri, le dim. 30 sept. 2018 20:02:59 +0200, a ecrit: also adding a HWLOC_DECLSPEC on the first case distances.c:347 does not solve the issue as the two declaration are not the same. Suggestion ? Perhaps use hwloc_uint64_t instead of uint64_t in hwloc/distances.c? Samuel Thanks Samuel, it was that, in more than one place. The attached patch allowed the compilation on cygwin64 bit. The only remaining warnings are minor one ## /cygdrive/d/cyg_pub/devel/hwloc/hwloc-2.0.2-1.x86_64/src/hwloc-2.0.2/hwloc/topology-windows.c: In function ‘hwloc_look_windows’: /cygdrive/d/cyg_pub/devel/hwloc/hwloc-2.0.2-1.x86_64/src/hwloc-2.0.2/hwloc/topology-windows.c:814:28: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘ULONG_PTR {aka long long unsigned int}’ [-Wformat=] hwloc_debug("%s#%u mask %lx\n", hwloc_obj_type_string(type), id, procInfo[i].ProcessorMask); ~~^ ~ %llx ### The only tests failing are: FAIL: test-lstopo.sh that seems due to a mix between Cygwin and Windows utils/lstopo/test-lstopo.sh.log # Machine (3665MB total) + Package L#0 NUMANode L#0 (P#0 3665MB) L3 L#0 (6144KB) L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 PU L#0 (P#0) PU L#1 (P#1) L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 PU L#2 (P#2) PU L#3 (P#3) L2 L#2 (256KB) + L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 PU L#4 (P#4) PU L#5 (P#5) L2 L#3 (256KB) + L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 PU L#6 (P#6) PU L#7 (P#7) OpenProcess 13220 failed 5: Zugriff verweigert And all the : FAIL: Intel-Skylake-2xXeon6140.output FAIL: Intel-Broadwell-2xXeon-E5-2650Lv4.output FAIL: Intel-Haswell-2xXeon-E5-2680v3.output FAIL: Intel-IvyBridge-12xXeon-E5-4620v2.output FAIL: Intel-SandyBridge-2xXeon-E5-2650.output FAIL: Intel-Westmere-2xXeon-X5650.output FAIL: Intel-Nehalem-2xXeon-X5550.output FAIL: Intel-Penryn-4xXeon-X7460.output FAIL: Intel-Core-2xXeon-E5345.output FAIL: Intel-KnightsLanding-XeonPhi-7210.output FAIL: Intel-KnightsCorner-XeonPhi-SE10P.output FAIL: AMD-17h-Zen-2xEpyc-7451.output FAIL: AMD-15h-Piledriver-4xOpteron-6348.output FAIL: AMD-15h-Bulldozer-4xOpteron-6272.output FAIL: AMD-K10-MagnyCours-2xOpteron-6164HE.output FAIL: AMD-K10-Istanbul-8xOpteron-8439SE.output FAIL: AMD-K8-SantaRosa-2xOpteron-2218.output FAIL: AMD-K8-SledgeHammer-2xOpteron-250.output FAIL: Zhaoxin-CentaurHauls-ZXD-4600.output FAIL: Zhaoxin-Shanghai-KaiSheng-ZXC+-FC1081.output ### But it is not clear to me how these tests should pass. The Laptop has a Quad Core I5 processor : 7 vendor_id : GenuineIntel cpu family : 6 model : 142 model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz stepping: 10 cpu MHz : 1800.000 cache size : 6144 KB Regards Marco --- Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft. https://www.avast.com/antivirus --- origsrc/hwloc-2.0.2/hwloc/distances.c 2018-01-26 09:56:03.0 +0100 +++ src/hwloc-2.0.2/hwloc/distances.c 2018-10-01 13:39:46.501610500 +0200 @@ -345,7 +345,7 @@ int hwloc_internal_distances_add(hwloc_t /* The actual function exported to the user */ int hwloc_distances_add(hwloc_topology_t topology, - unsigned nbobjs, hwloc_obj_t *objs, uint64_t *values, + unsigned nbobjs, hwloc_obj_t *objs, hwloc_uint64_t *values, unsigned long kind, unsigned long flags) { hwloc_obj_type_t type; --- origsrc/hwloc-2.0.2/hwloc/pci-common.c 2018-01-26 09:56:03.0 +0100 +++ src/hwloc-2.0.2/hwloc/pci-common.c 2018-10-01 14:00:38.336045900 +0200 @@ -16,7 +16,7 @@ #endif #include -#ifdef HWLOC_WIN_SYS +#if defined(HWLOC_WIN_SYS) && !defined(__CYGWIN__) #include #define open _open #define read _read --- origsrc/hwloc-2.0.2/hwloc/shmem.c 2018-01-26 09:56:03.0 +0100 +++ src/hwloc-2.0.2/hwloc/shmem.c 2018-10-01 13:46:55.542444700 +0200 @@ -76,7 +76,7 @@ hwloc_shmem_topology_get_length(hwloc_to int hwloc_shmem_topology_write(hwloc_topology_t topology, - int fd, uint64_t fileoffset, + int fd, hwloc_uint64_t fileoffset, void *mmap_address, size_t length, unsigned long flags) { @@ -259,7 +259,7 @@ hwloc_shmem_topology_get_length(hwloc_to int hwloc_shmem_topology_write(hwloc_topology_t topology __hwloc_attribute_unused, - int fd __hwloc_attribute_unused, u
Re: [hwloc-devel] hwloc_distances_add conflicting declaration
Am 01.10.2018 um 19:57 schrieb Brice Goglin: Le 01/10/2018 à 19:22, Marco Atzeri a écrit : Your own machine doesn't matter. None is these tests look at your CPU or topology. *All* of them on all x86 machines. CPUID are emulated by reading files, nothing is read from your local machine topology. There's just something wrong here that prevents these emulating CPUID files from being read. "lstopo -i ..." will tell you. $ /pub/devel/hwloc/hwloc-2.0.2-1.x86_64/build/utils/lstopo/lstopo-no-graphics.exe -i /pub/devel/hwloc/hwloc-2.0.2-1.x86_64/src/hwloc-2.0.2/tests/hwloc/x86/AMD-15h-Bulldozer-4xOpteron-6272/ --if cpuid --of xml - Ignoring dumped cpuid directory. It works instead with "--if xml" IMHO, should be better to produce an error instead of the local machine output with a warning, if the input is not understandable Brice Thanks Marco --- Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft. https://www.avast.com/antivirus ___ hwloc-devel mailing list hwloc-devel@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/hwloc-devel
Re: [hwloc-devel] hwloc_distances_add conflicting declaration
Am 02.10.2018 um 07:47 schrieb Brice Goglin: Le 02/10/2018 à 00:28, Marco Atzeri a écrit : Am 01.10.2018 um 19:57 schrieb Brice Goglin: Le 01/10/2018 à 19:22, Marco Atzeri a écrit : Your own machine doesn't matter. None is these tests look at your CPU or topology. *All* of them on all x86 machines. CPUID are emulated by reading files, nothing is read from your local machine topology. There's just something wrong here that prevents these emulating CPUID files from being read. "lstopo -i ..." will tell you. $ /pub/devel/hwloc/hwloc-2.0.2-1.x86_64/build/utils/lstopo/lstopo-no-graphics.exe -i /pub/devel/hwloc/hwloc-2.0.2-1.x86_64/src/hwloc-2.0.2/tests/hwloc/x86/AMD-15h-Bulldozer-4xOpteron-6272/ --if cpuid --of xml - Ignoring dumped cpuid directory. It works instead with "--if xml" IMHO, should be better to produce an error instead of the local machine output with a warning, if the input is not understandable The input is understandable here, but there's a cygwin-related bug somewhere when we actually try to use it. --if xml makes no sense here since you're not giving any XML as input. of course with "--if xml" I used the XML file *.output.as input file. The error message comes from hwloc_x86_check_cpuiddump_input() failing in hwloc/topology-x86.c. That function always prints an error message before returning an error, except when opendir() fails on the given directory. The directory was passed by lstopo to the core using environment variable HWLOC_CPUID_PATH. Anyway, I have no way to debug this for now so you're stuck with not running make check in that directory :/ Brice --- Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft. https://www.avast.com/antivirus ___ hwloc-devel mailing list hwloc-devel@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/hwloc-devel