Re: scons adds option -KPIC also for gcc/g++ on platform solarisx86

Bill Deegan <[email protected]>
Newsgroups gmane.comp.programming.tools.scons.user
Message-ID <CAEyG4CFDU09PwTG3GDJ+uPLnu3e8As_2jd4fcdRYj1KAJkJ6cg@mail.gmail.com>
You're using an ancient version of SCons.
Can you update to python 3.5+ and try SCons 4.1?
I think we addressed this at some point since 2.5.1
You can check the CHANGES.txt

On Fri, May 21, 2021 at 6:39 AM Mats Wichmann <[email protected]> wrote:

> On 5/21/21 2:49 AM, [email protected] wrote:
> > Dear scons maintainer,
> > I didn't find any workarounds or hints or bug entires for scons on
> > stackoverflow or openhub or somewhere else regarding the problem that
> > scons adds -KPIC compiler option even for gcc/g++ compiler which leads
> > to the error with message
> > "g++: error: unrecognized command line option '-KPIC'
> > -KPIC was introduced with scons 0.96.91 and is valid for sun compiler
> > suncc, but not for gcc.
> > My flags are:
> > env['CCFLAGS']   += ' -m64 -DSOLARIS -D_M_IX86 -D_REENTRANT
> > -D_POSIX_PTHREAD_SEMANTICS -mfpmath=387 -fPIC -std=c99 '
> > env['CXXFLAGS']  += ''
> > env['LINKFLAGS']   = ' -lsocket -m64 -fPIC '
> > env['SHLINKFLAGS'] = ' -shared -m64 '
> > env['SHCXXFLAGS']  = ' -shared -m64 '
> > env['SHCXX']       = ' g++ '
> > Platform is solaris x86 with Oracle Corporation SunOS 5.10 Generic Patch
> > January 2005
> > gcc 5.5.0
> > scons v2.5.1.rel_2.5.1
> > ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.1514
> > Please let me know if there is any workaround.
>
> Can you just rewrite SHCCFLAGS and SHCXXFLAGS after the environment is
> created? You seem to be doing SHCXXFLAGS already from the above.
>
> You can print them out to see what they get set to as a debugging step,
> if you haven't already, Would expect these to look like:
>
> SHCCFLAGS: ['$CCFLAGS', '-KPIC']
> SHCXXFLAGS: ['$CXXFLAGS', '-KPIC']
>
> You can just *set* them, you don't have to add to the existing, but do
> use the parametereized versions of CCFLAGS and CXXFLAGS so those will be
> correctly expanded and you don't have to repeat what was assigned to the
> not-shared versions. You can assign directly like you do above or use
> env.Replace, e.g.:
>
> env.Replace(SHCCFLAGS=['$CCFLAGS', '-fPIC'])
>
> (or whatever value you actually need)
>
> or replace actually in the list, perhaps like:
>
> try:
>      idx = env['SHCCFLAGS'].index('-KPIC')
> except ValueError:
>      pass
> else:
>      env['SHCCFLAGS'][idx] = '-fPIC'
>
>
> (if the above look a little more complicated than might be needed: the
> CCFLAGS type variables are initialized using an internal type,
> SCons.Util.CLVar, which is not mentioned in the documentation (sigh),
> it's a list but with special rules for strings with spaces on creation
> and addition so those are turned into lists and don't get type clashes).
> That's why the sun* tools do this kind of thing if you look in the
> source code:
>
> env['SHCXXFLAGS'] = SCons.Util.CLVar('$CXXFLAGS -KPIC')
> _______________________________________________
> Scons-users mailing list
> [email protected]
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>

_______________________________________________
Scons-users mailing list
[email protected]
https://pairlist4.pair.net/mailman/listinfo/scons-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.