It seems that the __GNU__ is defined so I don't get into the HWLOC_HAVE_FFSL 

Maybe because I already configured once with gcc before ? Do I have to do 
anything more than make clean an reconfigure to change compiler ?

De : Brice Goglin []
Envoyé : jeudi 5 janvier 2017 14:18
À : Xavier LACOSTE
Cc : Hardware locality user list
Objet : Re: [hwloc-users] Building hwloc on Cray with 

configure seems to have detected ffsl() properly, but it looks like our ffsl() 
redefinition gets enabled anyway, and conflicts with the system-wide one.

Does it help if you comment out line #66 of include/private/misc.h ?
extern int ffsl(long) __hwloc_attribute_const;


Le 05/01/2017 13:52, Xavier LACOSTE a écrit :
Hello Brice,

I attached the files.

I could build hwloc and link with it using the default (gcc) compiler.
But If I use gcc to build the library I can link with gcc/icc/pgcc but not with 
cc from cray.



De : Brice Goglin []
Envoyé : jeudi 5 janvier 2017 12:50
À : Xavier LACOSTE
Cc : Hardware locality user list
Objet : Re: [hwloc-users] Building hwloc on Cray with 

Hello Xavier
Can you send the /usr/include/string.h from that cray machine, your config.log 
and include/private/autogen/config.h from the hwloc build directory?
Do you get the same error if building from the default compiler instead of 

Le 05/01/2017 12:31, Xavier LACOSTE a écrit :


I'm trying to build hwloc on a cray machine with cray compiler 

I get the following error :
$> CC=cc ./configure --prefix=$PWD-cc-install
$> make
Making all in src
make[1]: Entering directory `/home/j0306818/xavier/hwloc-1.11.5/src'
  CC       bitmap.lo
CC-147 craycc: ERROR
  Declaration is incompatible with "int ffsl(long)" (declared at line 526 of

Total errors detected in bitmap.c: 1
make[1]: *** [bitmap.lo] Error 1
make[1]: Leaving directory `/home/j0306818/xavier/hwloc-1.11.5/src'
make: *** [all-recursive] Error 1

Do you have any idea of what I am doing wrong ?
Is this a known issue ?

Another secondary question :

Hwloc builds correctly with gcc compiler but the CPUVendor field is not 
available using this code :

#include <hwloc.h>

int main(int argc, char *argv[])
  hwloc_topology_t topo;
  hwloc_obj_t obj;
  int err;
  int i;
  char obj_str[2048];
  char attr_str[2048];

  /* initialize a topology context */
  err = hwloc_topology_init(&topo);

  /* insert optional topology configuration here */

  /* build the topology created and configured above */
  err = hwloc_topology_load(topo);

  /* play with the topology here */
  obj = hwloc_get_obj_by_type(topo, HWLOC_OBJ_PACKAGE, 0);
  fprintf(stdout, "CPU_Vendor : %s \n", 
  hwloc_obj_type_snprintf(obj_str, 2048, obj, 1);
  hwloc_obj_attr_snprintf(attr_str,2048, obj, " | ", 1);
  fprintf(stdout, "%s : %s\n", obj_str, attr_str);

  /* terminate this topology context */

  return 0;

Am I using the correct code to retrieve the CPUVendor ? As far as I see the 
topology is correctly detected anyway.




hwloc-users mailing list<>

hwloc-users mailing list

Reply via email to