[vdr] VDR version 1.4.1, pic issue
Klaus Schmidinger
Klaus.Schmidinger at cadsoft.de
Sun Jun 11 23:36:47 CEST 2006
Udo Richter wrote:
> Prakash Punnoor wrote:
>> But If I set flags in Make.conf, the -fPIc doesn't get added for
>> plugins, and I can't seem to make this happen by patching (I don't
>> know much about Makefile syntax) other than adding -fPIC directly into
>> the %.o: %.c rule line in each plugin's Makefile.
>
> This is a fundamental problem, since Make.config is used for VDR core
> *and* plugins. There is currently no mechanism to set CXXFLAGS for
> plugins differently than for core VDR.
>
> Probably the easiest way is to add -fPIC to Make.config anyway, even if
> core VDR doesn't need it. Enforcing the -fPIC flag even if it is not
> part of CXXFLAGS is not the way to go, you cannot expect every compiler
> to understand it.
>
> Implementing something like PLUGINCXXFLAGS for plugins would do the job,
> but since you'll never get all plugins to support it, its not the final
> solution either.
>
> Another good solution would be to do a conditional part in Make.config,
> like this:
> --- Make.config.template 2006-05-28 15:08:29.687375000 +0200
> +++ Make.config.template 2006-06-11 17:50:14.467000000 +0200
> @@ -16,6 +16,11 @@
> CXX = g++
> CXXFLAGS = -g -O2 -Wall -Woverloaded-virtual
>
> +ifdef PLUGIN
> +CFLAGS += -fPIC
> +CXXFLAGS += -fPIC
> +endif
> +
> ### The directory environment:
>
> #DVBDIR = /usr/src/v4l-dvb/linux
>
> The existence of the PLUGIN makefile variable should work for almost all
> plugins. Another way would be to set some marker variable at the
> beginning of the VDR Makefile, or to move the VDRVERSION declaration in
> front of the -include statement. (but of course for core VDR only, not
> for plugin makefiles)
Maybe it would have been better to leave the -fPIC thing as it has been
for so long - as it is now, plugins will actually be compiled _without_
it, which is probably a lot worse than compiling the main program _with_
it...
Klaus
More information about the vdr
mailing list