ROOT 6.23/01 with GCC 10: Too many warnings


_ROOT Version:_ROOT 6.23/01
Platform: 64 bit Fedora32 (linuxx8664gcc; 5.6.16-300.fc32.x86_64)
Compiler: gcc version 10.1.1 20200507 (Red Hat 10.1.1-1)


I have several macros written in a single file (“can2root_utils.cc”), which I have been using for couple of years now, with earlier versions of ROOT and Fedora. Recently, I switched to the latest version of Fedora and ROOT (downloaded via git).

Although the file compiles without error, I get the following:

root [0] .L can2root_utils.cc++
Info in <TUnixSystem::ACLiC>: creating shared library /opt/./can2root_utils_cc.so
In file included from input_line_12:6:
In file included from ././can2root_utils.cc:29:
/opt/root/include/root/TROOT.h:89:35: warning: unknown attribute 'REMOVE_THIS_NOW' ignored [-Wunknown-attributes]
   UInt_t GetImplicitMTPoolSize() R__DEPRECATED(6, 24, "Please use ROOT::GetThreadPoolSize() instead");
                                  ^
/opt/root/include/root/ROOT/RConfig.hxx:523:3: note: expanded from macro 'R__DEPRECATED'
  _R__JOIN3_(_R__DEPRECATED_,MAJOR,MINOR)("will be removed in ROOT v" #MAJOR "." #MINOR ": " REASON)
  ^
/opt/root/include/root/ROOT/RConfig.hxx:454:30: note: expanded from macro '_R__JOIN3_'
#   define _R__JOIN3_(F,X,Y) _NAME3_(F,X,Y)
                             ^
/opt/root/include/root/ROOT/RConfig.hxx:436:39: note: expanded from macro '_NAME3_'
#   define _NAME3_(name1,name2,name3) name1##name2##name3
                                      ^
<scratch space>:182:1: note: expanded from here
_R__DEPRECATED_624
^
/opt/root/include/root/ROOT/RConfig.hxx:503:37: note: expanded from macro '_R__DEPRECATED_624'
# define _R__DEPRECATED_624(REASON) _R_DEPRECATED_REMOVE_NOW(REASON)
                                    ^
/opt/root/include/root/ROOT/RConfig.hxx:482:57: note: expanded from macro '_R_DEPRECATED_REMOVE_NOW'
#define _R_DEPRECATED_REMOVE_NOW(REASON) __attribute__((REMOVE_THIS_NOW))
                                                        ^
In file included from /opt/root/include/root/RConfig.h:23,
                 from /opt/can2root_utils_cc_ACLiC_dict.cxx:13:
/opt/root/include/root/ROOT/RConfig.hxx:482:73: warning: ‘REMOVE_THIS_NOW’ attribute directive ignored [-Wattributes]
  482 | #define _R_DEPRECATED_REMOVE_NOW(REASON) __attribute__((REMOVE_THIS_NOW))
      |                                                                         ^
/opt/root/include/root/ROOT/RConfig.hxx:503:37: note: in expansion of macro ‘_R_DEPRECATED_REMOVE_NOW’
  503 | # define _R__DEPRECATED_624(REASON) _R_DEPRECATED_REMOVE_NOW(REASON)
      |                                     ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/root/include/root/ROOT/RConfig.hxx:436:39: note: in expansion of macro ‘_R__DEPRECATED_624’
  436 | #   define _NAME3_(name1,name2,name3) name1##name2##name3
      |                                       ^~~~~
/opt/root/include/root/ROOT/RConfig.hxx:454:30: note: in expansion of macro ‘_NAME3_’
  454 | #   define _R__JOIN3_(F,X,Y) _NAME3_(F,X,Y)
      |                              ^~~~~~~
/opt/root/include/root/ROOT/RConfig.hxx:523:3: note: in expansion of macro ‘_R__JOIN3_’
  523 |   _R__JOIN3_(_R__DEPRECATED_,MAJOR,MINOR)("will be removed in ROOT v" #MAJOR "." #MINOR ": " REASON)
      |   ^~~~~~~~~~
/opt/root/include/root/TROOT.h:89:35: note: in expansion of macro ‘R__DEPRECATED’
   89 |    UInt_t GetImplicitMTPoolSize() R__DEPRECATED(6, 24, "Please use ROOT::GetThreadPoolSize() instead");
      |                                   ^~~~~~~~~~~~~
In file included from /opt/root/include/root/RConfig.h:23,
                 from /opt/can2root_utils_cc_ACLiC_dict.cxx:13:
/opt/root/include/root/ROOT/RConfig.hxx:482:73: warning: ‘REMOVE_THIS_NOW’ attribute directive ignored [-Wattributes]
  482 | #define _R_DEPRECATED_REMOVE_NOW(REASON) __attribute__((REMOVE_THIS_NOW))
      |                                                                         ^
/opt/root/include/root/ROOT/RConfig.hxx:503:37: note: in expansion of macro ‘_R_DEPRECATED_REMOVE_NOW’
  503 | # define _R__DEPRECATED_624(REASON) _R_DEPRECATED_REMOVE_NOW(REASON)
      |                                     ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/root/include/root/ROOT/RConfig.hxx:436:39: note: in expansion of macro ‘_R__DEPRECATED_624’
  436 | #   define _NAME3_(name1,name2,name3) name1##name2##name3
      |                                       ^~~~~
/opt/root/include/root/ROOT/RConfig.hxx:454:30: note: in expansion of macro ‘_NAME3_’
  454 | #   define _R__JOIN3_(F,X,Y) _NAME3_(F,X,Y)
      |                              ^~~~~~~
/opt/root/include/root/ROOT/RConfig.hxx:523:3: note: in expansion of macro ‘_R__JOIN3_’
  523 |   _R__JOIN3_(_R__DEPRECATED_,MAJOR,MINOR)("will be removed in ROOT v" #MAJOR "." #MINOR ": " REASON)
      |   ^~~~~~~~~~
/opt/root/include/root/TROOT.h:89:35: note: in expansion of macro ‘R__DEPRECATED’
   89 |    UInt_t GetImplicitMTPoolSize() R__DEPRECATED(6, 24, "Please use ROOT::GetThreadPoolSize() instead");
      |                                   ^~~~~~~~~~~~~
root [1] 

Is there anything that can be done to resolve this issue?

Please help.

Regards,

Ajay

Maybe @Axel can help fixing this issue

Hi Ajay,

This means that the version of ROOT does not match the headers. What’s the content of /opt/root/include/root/RVersion.h? Where is the ROOT binary you use, and what does root [0] gROOT->GetVersion() say on its prompt?

Cheers, Axel.

@Axel
The content of /opt/root/include/root/RVersion.h is:

#ifndef ROOT_RVersion
#define ROOT_RVersion

/* Version information automatically generated by installer. */

/*
 * These macros can be used in the following way:
 *
 *    #if ROOT_VERSION_CODE >= ROOT_VERSION(6,32,4)
 *       #include <newheader.h>
 *    #else
 *       #include <oldheader.h>
 *    #endif
 *
*/

#define ROOT_RELEASE "6.23/01"
#define ROOT_RELEASE_DATE "May 19 2020"
#define ROOT_RELEASE_TIME "10:23:43"
#define ROOT_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#define ROOT_VERSION_CODE ROOT_VERSION(6,23,1) /* 399105 */

#endif

and at the root prompt I get the following

root [0] gROOT->GetVersion()
(const char *) "6.23/01"
root [1] .q

$ which root command gives /opt/root/bin/root. This means that I am using the proper version of root.

Hi,

Yes! You’re using an older master. What’s gROOT->GetGitCommit()? I bet it’s 5a1d381a62, d40d19782f, or a7a1917581.

In 4b49fbd256…f4a38ec24c I fixed the warnings you mention above; so please update at least to f4a38ec24c. Better yet: use d1784bd829 which has a couple of extra fixes, or the latest release branch v6-22-00-patches: v6.22/00 will appear within the next days.

Cheers, Axel.

Thank you.

gROOT->GetGitCommit() yields (const char *) "v6-23-01"!

I am in the middle of compiling root-master which I downloaded today morning.

Can you please let me know how to apply patches and also to download v6-22-00-patches?

@Axel
I now have

root [0] gROOT->GetGitCommit()
(const char *) "v6-23-01-335-gffa7013ea6"
root [1]

installed, and don’t get all those warnings.

Thank you.

Regards,

Ajay

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.