Hi Ernest,
I reached that point too.
There was a threat in teck-talk that talk about don't need libungif
anymore. I tried to replace it with giflib, but it didn't work.
I got some emails from Sinclair I will still need to check it.
Let you know my progress.
<ELW>
I followed the tech-talk thread from Michael Davidsaver regarding libungif
I simply removed it from the Makefile and it worked.
We will probably need wrap this with some idefs to clean it up
<ELW>
Cheers
Ernesto
On 4/3/20 8:59 AM, Williams Jr., Ernest L. wrote:
> Response below
>
> ------------------------------------------------------------------------
> *From:* Ernesto Paiser <ernesto_paiser at lynceantech.com>
> *Sent:* Friday, April 3, 2020 8:46 AM
> *To:* Williams Jr., Ernest L. <ernesto at slac.stanford.edu>;
> tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
> *Subject:* Re: EDM in RHEL8 or Centos8
> Hi Ernest,
> I'm doing well. Regardless someone here may have got the covid...
> Hope you are as well as, safe and healthy!
>
> <ELW>
> We are hanging in there.
> Shelter In Place 🙂
> <ELW>
>
> This message you got is because the gif.cc should check the giflib
> version and set the #define accordingly, but isn't working.
> giflib has changed the definition for the functions:
> DGifCloseFile and DGifOpenFileName
> since version 5 adding an additional parameter *errno for the arguments.
>
> If you force to compile with giflib version 5.1 you'll get rid of this
> error, but you may found others like me.
> To make a test just modify gif.cc as:
>
> //#if GIFLIB_MAJOR > 5 || GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1
> #define GIF_CLOSE_FILE(gif) DGifCloseFile(gif, NULL)
> #define GIF_OPEN_FILE(gif) DGifOpenFileName(gif, NULL)
> //#else
> // #define GIF_CLOSE_FILE(gif) DGifCloseFile(gif)
> // #define GIF_OPEN_FILE(gif) DGifOpenFileName(gif)
> //#endif
>
> and compile again.
>
> <ELW>
> That stanza needs to be moved below the "#include "gif.h""
> gif.h which includes gif_lib.h which defines GIFLIB_MAJOR and GIFLIB_MINOR
> I guess this went unnoticed for a long time 🙁
> Version logic is working now.
> <ELW>
>
> Let me know if you make some progress, Thanks
>
> <ELW>
> Next, issue is linking error; seems that libungif is needed
> make[1]: Entering directory
> '/usr/local/controlsDev/epics/extensions/edm/R1.12.105B-1.2.0/giflib/O.linux-x86_64'
> /usr/bin/g++ -o libcf322683-513e-4570-a44b-7cdd7cae0de5.so -shared -fPIC
> -Wl,-hlibcf322683-513e-4570-a44b-7cdd7cae0de5.so
> -L/usr/local/controlsDev/epics/extensions/edm/R1.12.105B-1.2.0/lib/linux-x86_64
> -L/usr/lib64
> -Wl,-rpath,/usr/local/controlsDev/epics/extensions/edm/R1.12.105B-1.2.0/lib/linux-x86_64
> -Wl,-rpath,/usr/lib64 -rdynamic -m64 gif.o
> reg_libcf322683-513e-4570-a44b-7cdd7cae0de5.o -lEdmBase
> -lcfcaa62e-8199-11d3-a77f-00104b8742df
> -l114135a4-6f6c-11d3-95bc-00104b8742df -lXm -lXt -lXp -lXtst -lX11
> -lpthread -ldl -lungif -lgif -lpthread -lreadline -lncurses -lm -lrt
> -ldl -lgcc
> /usr/bin/ld: cannot find -lungif
> collect2: error: ld returned 1 exit status
> <ELW>
>
> Ernesto
> On 4/3/20 7:49 AM, Williams Jr., Ernest L. wrote:
>> Hi Ernesto,
>> How is it going?
>>
>> Our production systems are using mainly RHEL6 and RHEL7.
>> I have started looking ahead to RHEL 8.
>>
>> What version of EDM are you using there?
>>
>> Please provide more detail:
>>
>> 1. Version of EPICS
>> 2. Version of EDM
>> 3. Version of giflib
>>
>> Here is what I have on my centos8 box:
>> OS = CentOS Linux release 8.1.1911 (Core)
>> EPICS BASE = 7.0.3.1
>> EDM = 1.12.105B
>> GIFLIB = giflib-devel-5.1.4-3.el8.x86_64
>>
>> Looks like we have a problem.
>> Here is my error message:
>>
>> make -C ./giflib install
>> make[1]: Entering directory
>> '/usr/local/controlsDev/epics/extensions/edm/R1.12.105B-1.2.0/giflib'
>> make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
>> T_A=linux-x86_64 install
>> make[2]: Entering directory
>> '/usr/local/controlsDev/epics/extensions/edm/R1.12.105B-1.2.0/giflib/O.linux-x86_64'
>> /usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_
>> -DUNIX -Dlinux -O3 -Wall -std=c++98 -fpermissive
>> -Wno-write-strings -DNO_UNORDERED_MAP -DSINGLE_THREADED=1 -D__epics__=1
>> -mtune=generic -m64 -fPIC -I. -I../O.Common -I. -I. -I..
>> -I../../include/compiler/gcc -I../../include/os/Linux -I../../include
>>
>> -I/usr/local/controlsDev/epics/base/R7.0.3.1-1.0/include/compiler/gcc
>> -I/usr/local/controlsDev/epics/base/R7.0.3.1-1.0/include/os/Linux
>> -I/usr/local/controlsDev/epics/base/R7.0.3.1-1.0/include
>> -I../../util -I../../edmlib -I/usr/include -I/usr/include/X11 -c
>> ../gif.cc
>> ../gif.cc: In constructor ‘activeGifClass::activeGifClass(const
>> activeGifClass*)’:
>> ../gif.cc:245:5: warning: variable ‘status’ set but not used
>> [-Wunused-but-set-variable]
>> int status;
>> ^~~~~~
>> ../gif.cc: In member function ‘int activeGifClass::readGifFile()’:
>> ../gif.cc:24:50: error: too few arguments to function ‘GifFileType*
>> DGifOpenFileName(const char*, int*)’
>> #define GIF_OPEN_FILE(gif) DGifOpenFileName(gif)
>> ^
>> ../gif.cc:442:11: note: in expansion of macro ‘GIF_OPEN_FILE’
>> gif = GIF_OPEN_FILE( name );
>> ^~~~~~~~~~~~~
>> In file included from ../gif.h:28,
>> from ../gif.cc:39:
>> /usr/include/gif_lib.h:179:14: note: declared here
>> GifFileType *DGifOpenFileName(const char *GifFileName, int *Error);
>> ^~~~~~~~~~~~~~~~
>> ../gif.cc:23:48: error: too few arguments to function ‘int
>> DGifCloseFile(GifFileType*, int*)’
>> #define GIF_CLOSE_FILE(gif) DGifCloseFile(gif)
>> ^
>> ../gif.cc:898:12: note: in expansion of macro ‘GIF_CLOSE_FILE’
>> status = GIF_CLOSE_FILE( gif );
>> ^~~~~~~~~~~~~~
>> In file included from ../gif.h:28,
>> from ../gif.cc:39:
>> /usr/include/gif_lib.h:183:9: note: declared here
>> int DGifCloseFile(GifFileType * GifFile, int *ErrorCode);
>> ^~~~~~~~~~~~~
>> ../gif.cc:23:48: error: too few arguments to function ‘int
>> DGifCloseFile(GifFileType*, int*)’
>> #define GIF_CLOSE_FILE(gif) DGifCloseFile(gif)
>> ^
>> ../gif.cc:910:30: note: in expansion of macro ‘GIF_CLOSE_FILE’
>> if ( fileOpened ) status = GIF_CLOSE_FILE( gif );
>> ^~~~~~~~~~~~~~
>> In file included from ../gif.h:28,
>> from ../gif.cc:39:
>> /usr/include/gif_lib.h:183:9: note: declared here
>> int DGifCloseFile(GifFileType * GifFile, int *ErrorCode);
>> ^~~~~~~~~~~~~
>> make[2]: ***
>> [/usr/local/controlsDev/epics/base/R7.0.3.1-1.0/configure/RULES_BUILD:251:
>> gif.o] Error 1
>> make[2]: Leaving directory
>> '/usr/local/controlsDev/epics/extensions/edm/R1.12.105B-1.2.0/giflib/O.linux-x86_64'
>> make[1]: ***
>> [/usr/local/controlsDev/epics/base/R7.0.3.1-1.0/configure/RULES_ARCHS:58: install.linux-x86_64]
>> Error 2
>> make[1]: Leaving directory
>> '/usr/local/controlsDev/epics/extensions/edm/R1.12.105B-1.2.0/giflib'
>> make: ***
>> [/usr/local/controlsDev/epics/base/R7.0.3.1-1.0/configure/RULES_DIRS:84:
>> giflib.install] Error 2'
>>
>>
>> Cheers,
>> Ernesto
>>
>