Does this even build with the cray compiler?

int main(int argc, char *argv[])
{
  return __builtin_ffsl((unsigned long) argc);
}




Le 05/01/2017 14:56, Xavier LACOSTE a écrit :
>
> Indeed,
>
>  
>
> If I had a #undef __GNUC__ in misc.h the compilation finished (I still
> have the link complaining about recompiling with –fPIE and linking
> with –pie, but I should be able to handle that)
>
> I tried all available cray cc (2.2.1 and 2.5.6) and they behave the same.
>
> I’ll see how to report bug to Cray and may ask for a new compiler
> installation.
>
>  
>
> XL.
>
>  
>
> *De :*Brice Goglin [mailto:brice.gog...@inria.fr]
> *Envoyé :* jeudi 5 janvier 2017 14:39
> *À :* Xavier LACOSTE
> *Cc :* Hardware locality user list
> *Objet :* Re: [hwloc-users] Building hwloc on Cray with
> /opt/cray/craype/2.5.4/bin/cc
>
>  
>
> Ah ok now I remember we've seen the same issue 4 years ago.
> https://mail-archive.com/hwloc-users@lists.open-mpi.org/msg00816.html
> Basically the Cray compiler claimed to be GCC compatible it was not.
> But that users explicitly requested the cray compiler to behave as GNU
> with "-h gnu". Did you pass any option to the compiler?
>
> We could workaround the issue by not using __builtin_ffsl() when we
> detect the cray compiler, but that would be overkill since earlier
> versions worked fine. Do you have ways to report bugs to Cray? Or
> install a different cray compiler version?
>
> Brice
>
>
> Le 05/01/2017 14:25, Xavier LACOSTE a écrit :
>
>     It seems that the __GNU__ is defined so I don’t get into the
>     HWLOC_HAVE_FFSL section.
>
>      
>
>     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 [mailto:brice.gog...@inria.fr]
>     *Envoyé :* jeudi 5 janvier 2017 14:18
>     *À :* Xavier LACOSTE
>     *Cc :* Hardware locality user list
>     *Objet :* Re: [hwloc-users] Building hwloc on Cray with
>     /opt/cray/craype/2.5.4/bin/cc
>
>      
>
>     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;
>
>     Brice
>
>
>
>     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.
>
>          
>
>         Thanks,
>
>          
>
>         XL.
>
>          
>
>          
>
>         *De :*Brice Goglin [mailto:brice.gog...@inria.fr]
>         *Envoyé :* jeudi 5 janvier 2017 12:50
>         *À :* Xavier LACOSTE
>         *Cc :* Hardware locality user list
>         *Objet :* Re: [hwloc-users] Building hwloc on Cray with
>         /opt/cray/craype/2.5.4/bin/cc
>
>          
>
>         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 /opt/cray/craype/2.5.4/bin/cc?
>         thanks
>         Brice
>
>
>
>         Le 05/01/2017 12:31, Xavier LACOSTE a écrit :
>
>              
>
>             Hello,
>
>              
>
>             I’m trying to build hwloc on a cray machine with cray
>             compiler :/opt/cray/craype/2.5.4/bin/cc
>
>              
>
>             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
>
>                       "/usr/include/string.h").
>
>              
>
>              
>
>             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);
>
>               assert(!err);
>
>              
>
>               /* 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_get_info_by_name(obj,"CPUVendor"));
>
>               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 */
>
>               hwloc_topology_destroy(topo);
>
>              
>
>               return 0;
>
>             }
>
>              
>
>             Am I using the correct code to retrieve the CPUVendor ? As
>             far as I see the topology is correctly detected anyway.
>
>              
>
>             Regards,
>
>              
>
>             XL.
>
>
>
>
>
>
>             _______________________________________________
>
>             hwloc-users mailing list
>
>             hwloc-users@lists.open-mpi.org
>             <mailto:hwloc-users@lists.open-mpi.org>
>
>             https://rfd.newmexicoconsortium.org/mailman/listinfo/hwloc-users
>
>          
>
>      
>
>  
>

_______________________________________________
hwloc-users mailing list
hwloc-users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/hwloc-users

Reply via email to