On Wed, 4 May 2016 13:09:05 +0900 Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> wrote: > Hi Emese, > > > 2016-05-04 6:29 GMT+09:00 Emese Revfy <re.emese@xxxxxxxxx>: > > On Tue, 3 May 2016 11:00:56 +0900 > > Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> wrote: > > > > Hi, > > > >> # Compile .c file, create position independent .o file > >> # host-cxxshobjs -> .o > >> quiet_cmd_host-cxxshobjs = HOSTCXX -fPIC $@ > >> cmd_host-cxxshobjs = $(HOSTCXX) $(hostcxx_flags) -fPIC -c -o $@ $< > >> $(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE > >> $(call if_changed_dep,host-cxxshobjs) > >> > >> > >> > >> > >> We generally use HOSTCC to compile *.c files, > >> and HOSTCXX to compile *.cc files. > >> > >> > >> But, here, you mention to use HOSTCXX to compile .c files > >> such as cyc_complexity_plugin.c, sancov_plugin.c, etc. > >> > >> This is not straight-forward. It is worthwhile to comment the reason. > > > > I wrote a comment about it here: > > https://github.com/ephox-gcc-plugins/gcc-plugins_linux-next/commit/74f6343a7f13c071e00c417332051e25f15009ea > > > > > > +# Note that plugin capable gcc versions can be either C or C++ based > +# therefore plugin source files have to be compilable in both C and C++ mode. > +# This is why a C++ compiler is invoked on a .c file. > > Thanks. > > Please let me confirm if I understood correctly. > > > We generally have to do something with the name-space conflict > (with 'extern "C"') in the mixture of C/C++. > > Depending on the GCC version, > GCC-plugin-related libraries could be built for C or C++. > > So, we need to check the GCC version and choose correct one > from C or C++. The plugin source files have to be compilable by both versions because gcc versions 4.5 and 4.6 are compiled by a C compiler, gcc-4.7 can be compiled by a C or a C++ compiler, and versions 4.8+ can only be compiled by a C++ compiler. -- Emese -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html