EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: problem compiling edm
From: Mark Rivers <[email protected]>
To: "'Pierrick Hanlet'" <[email protected]>, "[email protected]" <[email protected]>
Date: Thu, 2 Feb 2017 16:13:20 +0000
I was afraid of that.

Another solution should be to set a compiler flag that disables the "narrowing" check (Wnarrowing).

Mark


-----Original Message-----
From: Pierrick Hanlet [mailto:[email protected]] 
Sent: Thursday, February 02, 2017 9:57 AM
To: Mark Rivers; [email protected]
Subject: Re: problem compiling edm

Hi Mark,
Thank you for the quick response.  Initially this appeared to work, but 
I had many more arrays to which I needed to do this. After having 
modified them all,
it appears that I've replaced one problem for another. Now I get:


../expString.cc:722:32: warning: ISO C++ forbids converting a string 
constant to 'char*' [-Wwrite-strings]
/usr/bin/g++  -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_  -DUNIX  
-Dlinux     -O3 -g   -Wall -DSINGLE_THREADED=1 -D__epics__=1  
-mtune=generic     -m64 -fPIC -I. -I../O.Common -I. -I. -I.. 
-I../../../../include/edm/compiler/gcc 
-I../../../../include/edm/os/Linux -I../../../../include/edm 
-I/home/epics/epicsDEV/base/include/compiler/gcc 
-I/home/epics/epicsDEV/base/include/os/Linux 
-I/home/epics/epicsDEV/base/include 
-I/home/epics/epicsDEV/extensions/include        -I../../util 
-I../../lib -I/usr/include -I/usr/include    -c ../cursor.cc
../cursor.cc: In member function 'void cursorClass::create(Display*, 
Window, Colormap)':
../cursor.cc:416:39: error: invalid conversion from 'unsigned char*' to 
'char*' [-fpermissive]
     cross_width, cross_height, 1, 0, 1 );
                                        ^
In file included from ../cursor.h:22:0,
                  from ../cursor.cc:19:
/usr/include/X11/Xlib.h:1611:15: note:   initializing argument 3 of 
'Pixmap XCreatePixmapFromBitmapData(Display*, Drawable, char*, unsigned 
int, unsigned int, long unsigned int, long unsigned int, unsigned int)'
  extern Pixmap XCreatePixmapFromBitmapData(
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../cursor.cc:419:39: error: invalid conversion from 'unsigned char*' to 
'char*' [-fpermissive]
     cross_width, cross_height, 1, 0, 1 );

etc.
Thanks,
Pierrick


On 02/02/2017 02:23 PM, Mark Rivers wrote:
> That line is this:
>
> static char pntrWithHelp_bits[] = {
>     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x42,
>     0x20, 0x00, 0x00, 0x40, 0x60, 0x00, 0x00, 0x40, 0xe0, 0x00, 0x00, 0x60,
>     0xe0, 0x01, 0x00, 0x30, 0xe0, 0x03, 0x00, 0x08, 0xe0, 0x07, 0x00, 0x08,
>     0xe0, 0x0f, 0x00, 0x08, 0xe0, 0x1f, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x08,
>     0xe0, 0x03, 0x00, 0x00, 0xe0, 0x06, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00,
>     0x20, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00,
>     0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
>     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
>     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
>     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
>     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
>
> I suspect the problem is that char is a signed type and the compiler is complaining because an integer larger than 127 is being assigned (e.g. 0xe0).  What happens if you change that to "static unsigned char"?
>
> Mark
>
>
> ________________________________________
> From: [email protected] [[email protected]] on behalf of Pierrick Hanlet [[email protected]]
> Sent: Thursday, February 02, 2017 8:15 AM
> To: [email protected]
> Subject: problem compiling edm
>
> I've a new pc on which I'm running Fedora release 25.  I'm using base
> 3.15.5.
>
> I'm attempting to build edm, but whilst attempting to compile, I get:
>
> make[2]: Entering directory
> '/home/epics/epicsDEV/extensions/src/edm/lib/O.linux-x86_64'
> /usr/bin/g++  -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_  -DUNIX
> -Dlinux     -O3 -g   -Wall -DSINGLE_THREADED=1 -D__epics__=1
> -mtune=generic     -m64 -fPIC -I. -I../O.Common -I. -I. -I..
> -I../../../../include/edm/compiler/gcc
> -I../../../../include/edm/os/Linux -I../../../../include/edm
> -I/home/epics/epicsDEV/base/include/compiler/gcc
> -I/home/epics/epicsDEV/base/include/os/Linux
> -I/home/epics/epicsDEV/base/include
> -I/home/epics/epicsDEV/extensions/include        -I../../util
> -I../../lib -I/usr/include -I/usr/include    -c ../cursor.cc
> ../cursor.cc: In member function 'void cursorClass::create(Display*,
> Window, Colormap)':
> ../cursor.cc:82:50: error: narrowing conversion of '224' from 'int' to
> 'char' inside { } [-Wnarrowing]
>       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
>                                                     ^
> ../cursor.cc:82:50: error: narrowing conversion of '224' from 'int' to
> 'char' inside { } [-Wnarrowing]
> ../cursor.cc:82:50: error: narrowing conversion of '224' from 'int' to
> 'char' inside { } [-Wnarrowing]
> and many more lines of the same.
>
> I can't find this problem in tech-talk, nor with a web search. Has
> anyone run into this problem and if so, how did you resolve it?
> Many thanks,
> Pierrick
>



Replies:
Re: problem compiling edm S. Banerian
References:
problem compiling edm Pierrick Hanlet
RE: problem compiling edm Mark Rivers
Re: problem compiling edm Pierrick Hanlet

Navigate by Date:
Prev: Re: problem compiling edm Pierrick Hanlet
Next: Re: problem compiling edm S. Banerian
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: problem compiling edm Pierrick Hanlet
Next: Re: problem compiling edm S. Banerian
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
ANJ, 21 Dec 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·