Re: Fedora 32 System-Wide Change proposal: Use update-alternatives for /usr/bin/cc and /usr/bin/c++

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/08/2020 11:40 PM, Igor Gnatenko wrote:
> So this just means that packages do not respect the environment. What about fixing them instead of trying to hack the environment?
> 

Do you mean that packages should be updated to respect the __cc and __cxx macros?

-Tom

> On Wed, Jan 8, 2020, 23:53 Tom Stellard <tstellar@xxxxxxxxxx <mailto:tstellar@xxxxxxxxxx>> wrote:
> 
>     On 12/23/2019 11:59 AM, Tom Stellard wrote:
>     > On 12/21/2019 02:30 PM, Tomasz Kłoczko wrote:
>     >>
>     >>
>     >> On Sat, 21 Dec 2019 at 00:37, Neal Gompa <ngompa13@xxxxxxxxx <mailto:ngompa13@xxxxxxxxx> <mailto:ngompa13@xxxxxxxxx <mailto:ngompa13@xxxxxxxxx>>> wrote:
>     >> [..]
>     >>
>     >>     I believe it's also used by the %cmake and %meson macros.
>     >>
>     >>
>     >> Yep.
>     >> Look on the output of the “rpm -E %cmake” and you will find that to switch to other C and C++ compilers all what you need to do is redefine %__cc and %__cxx macros,
>     >
>     > I'm not seeing this, at least with the current rawhide build, but I
>     > patched cmake to enable this in the latest mass rebuild that I'm doing.
>     > I'll post numbers on how effective using __cc and __cxx are once it's
>     > complete.
>     >
> 
>     I completed a rebuild of all rawhide with the following modifications:
> 
>     1. Added this to %set_build_flags
> 
>     CC="${CC:-%{__cc}}" ; export CC ; \
>     CXX="${CXX:-%{__cxx}}"; export CXX ; \
> 
>     2. Added %set_build_flags to %cmake macro
> 
>     3. Remove -fstack-clash-protection and add -Qunused-arguments flags to %optflags
> 
>     4. Set these macros:
> 
>     config_opts['macros']['%__cc'] = "clang"
>     config_opts['macros']['%__cxx'] = "clang++"
>     config_opts['macros']['%__cpp'] = "clang-cpp"
>     config_opts['macros']['%build_cflags'] = optflags
>     config_opts['macros']['%build_cxxflags'] = optflags
> 
> 
>     Here are the results:
> 
>     Packages Built: 4228
>     Built with clang: 2695
>     Built with gcc: 1533
> 
>     Based on grep'ing logs, around 320 of the packages built with gcc invoke
>     gcc using cc or c++.  It's hard to know the exact number though, because
>     I'm not sure if all packages echo their build steps and also my grep expressions
>     may not have caught everything.
> 
>     I suspect that if I can find some way to set the CC and CXX environment
>     variables for all builds, not just ones using autoconf, cmake or meson,
>     that might help cut down on the number of packages that still use gcc.
>     I'm just not quite sure how to implement this yet, but I'm looking into
>     it.
> 
>     -Tom
> 
> 
>     > -Tom
>     >
>     >> The same is with %configure and %meson,
>     >>
>     >> In other words you can switch NOW from non-root account to other compiler without execution update-alternatives from root.
>     >>
>     >> In other words this proposal is pointless.
>     >>
>     >> kloczek
>     >> --
>     >> --
>     >> Tomasz Kłoczko | Tel: 0774 1209067 | LinkedIn: *http://lnkd.in/FXPWxH*
>     > _______________________________________________
>     > devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx <mailto:devel@xxxxxxxxxxxxxxxxxxxxxxx>
>     > To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx <mailto:devel-leave@xxxxxxxxxxxxxxxxxxxxxxx>
>     > Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
>     > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
>     > List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
>     >
>     _______________________________________________
>     devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx <mailto:devel@xxxxxxxxxxxxxxxxxxxxxxx>
>     To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx <mailto:devel-leave@xxxxxxxxxxxxxxxxxxxxxxx>
>     Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
>     List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
>     List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
> 
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux