universalizar a variável SLKCFLAGS no sbopkg [RESOLVIDO]

1. universalizar a variável SLKCFLAGS no sbopkg [RESOLVIDO]

Leomar de Oliveira
leoCCB

(usa Slackware)

Enviado em 02/09/2013 - 00:08h

E aí pessoal, felicidades!!!

Bem, eu estou usando o sbopkg para compilar os slackbuilds ajudando muito. O problema é que não consigo exportar a variável SLKCFLAGS="-03 -fPIC" para todos os pacotes, devendo proceder um a um, me tomando muito tempo. Nas páginas do sbopkg diz para criar linhas no .config, e eu criei a seguinte linha:
export SLKCFLAGS="-03 -fPIC"

e não obtive sucesso. Então copiei a linha para o .bashrc do /root/ e para o profile do /etc, porém ainda não funciona.

Como ainda não entendo absolutamente nada de configuração gostaria da ajuda de vocês para criar um scriptisinho e em qual documento?

Desde já agradeço!!!!


  


2. MELHOR RESPOSTA

Fernando
phoemur

(usa Debian)

Enviado em 11/09/2013 - 17:44h

É que muitos programas não funcionam com -O3 viu , então o pessoal dos slackbuilds por questão de compatibilidade e de manter o padrão deixou tudo com -O2 que já é um bom nível de otimização e funciona quase tudo...

Veja aqui:
https://wiki.gentoo.org/wiki/GCC_optimization#-O


Let's examine each optimization level:

-O0 : This level (that's the letter "O" followed by a zero) turns off optimization entirely and is the default if no -O level is specified in CFLAGS or CXXFLAGS. This reduces compilation time and can improve debugging info, but some applications will not work properly without optimization enabled. This option is not recommended except for debugging purposes.

-O1 : This is the most basic optimization level. The compiler will try to produce faster, smaller code without taking much compilation time. It's pretty basic, but it should get the job done all the time.

-O2 : A step up from -O1 . This is the recommended level of optimization unless you have special needs. -O2 will activate a few more flags in addition to the ones activated by -O1 . With -O2 , the compiler will attempt to increase code performance without compromising on size, and without taking too much compilation time.

-O3 : This is the highest level of optimization possible. It enables optimizations that are expensive in terms of compile time and memory usage. Compiling with -O3 is not a guaranteed way to improve performance, and in fact in many cases can slow down a system due to larger binaries and increased memory usage. -O3 is also known to break several packages. Therefore, using -O3 is not recommended.

-Os : This option will optimize your code for size. It activates all -O2 options that don't increase the size of the generated code. It can be useful for machines that have extremely limited disk storage space and/or have CPUs with small cache sizes.

As previously mentioned, -O2 is the recommended optimization level . If package compilation fails and you aren't using -O2, try rebuilding with that option. As a fallback option, try setting your CFLAGS and CXXFLAGS to a lower optimization level, such as -O1 or even -O0 -g2 -ggdb (for error reporting and checking for possible problems).



Se quiser saber quais otimizações são feitas com cada uma dessas flags veja aqui:
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

3. Re: universalizar a variável SLKCFLAGS no sbopkg [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 09/09/2013 - 19:53h

Olha amigo, acho que não dá... Vou explicar o que eu acho que acontece:

Por exemplo, a versão estaria no script assim:

VERSION=${VERSION:-1.4.1}


O que significaria que caso não esteja definida ela será 1.4.1, porém se estiver definida antes ela vai ser o que você tiver passado. Ou seja, dá pra mudar...

Já SLKCFLAGS estaria assim no script:

SLKCFLAGS="-O2 -march=i686 -mtune=i686"

Independente se você definir a variável antes, quando você executar o script ele vai fazer uma nova atribuição e mudar o valor... Ou seja, não dá pra mudar...

Nem se você fizer a variável ficar read-only você vai conseguir, pois quando o sub-shell é aberto ela perde esse atributo e é mudada pelo script, ou seja, algo do tipo:


declare -rx SLKCFLAGS="-03 -fPIC"

ou então

export SLKCFLAGS="-03 -fPIC"
readonly SLKCFLAGS

também não funciona, nem se você colocar no /etc/profile


4. Re: universalizar a variável SLKCFLAGS no sbopkg [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 09/09/2013 - 20:02h

acho que a única forma seria editar os scripts um a um


5. Re: universalizar a variável SLKCFLAGS no sbopkg [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 09/09/2013 - 23:08h

Tenta assim, no profile ou no .bashrc, não lembro agora qual é no Slack:

SLKCFLAGS="-03 -fPIC"
export SLKCFLAGS


6. Re: universalizar a variável SLKCFLAGS no sbopkg [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 10/09/2013 - 10:54h

Buckminster escreveu:

Tenta assim, no profile ou no .bashrc, não lembro agora qual é no Slack:

SLKCFLAGS="-03 -fPIC"
export SLKCFLAGS


Como eu disse, tentei assim e não dá certo, pois o script muda a variável...


7. Re: universalizar a variável SLKCFLAGS no sbopkg [RESOLVIDO]

8. Re: universalizar a variável SLKCFLAGS no sbopkg [RESOLVIDO]

Leomar de Oliveira
leoCCB

(usa Slackware)

Enviado em 11/09/2013 - 09:46h

phoemur escreveu:

Buckminster escreveu:

Tenta assim, no profile ou no .bashrc, não lembro agora qual é no Slack:

SLKCFLAGS="-03 -fPIC"
export SLKCFLAGS


Como eu disse, tentei assim e não dá certo, pois o script muda a variável...


E aí pessoal, desculpa a demora. Tava meio ocupado estudando pra cálculo e Física.

Também tentei dessa forma, e não deu




9. Re: universalizar a variável SLKCFLAGS no sbopkg [RESOLVIDO]

Leomar de Oliveira
leoCCB

(usa Slackware)

Enviado em 11/09/2013 - 09:50h



E aí brother,

modifiquei as linhdo sbopkg.conf mas também não funcionou;
Acho que é um a um na unha mesmo;

Voces saberiam me dizer se o sarava funciona? Já usaram? Me parece tentador...


10. Re: universalizar a variável SLKCFLAGS no sbopkg [RESOLVIDO]

Leomar de Oliveira
leoCCB

(usa Slackware)

Enviado em 11/09/2013 - 09:52h



sacanagem esse pinguizinho aí levando fumo rsrsrsrs


11. Re: universalizar a variável SLKCFLAGS no sbopkg [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 11/09/2013 - 16:24h

Tu usa o Sbopkg como root?


12. Re: universalizar a variável SLKCFLAGS no sbopkg [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 11/09/2013 - 17:00h

Tenho alguns pontos a considerar:


1-) O sbopkg não roda como usuário comum... Como o programa é um shellscript até daria pra editar o programa manualmente para desabilitar a checagem de UID, mas não recomendo...
Já o script de SlackBuild dá pra usar como usuário comum, mas não faz diferença nenhuma... Muitos scripts até não funcionariam como usuário comum pois o próprio script dá permissão de root pra alguns arquivos...
Só dá pra usar como root

2-) Como os SlackBuilds rodam em subshell, independente da variavel que você exportar antes, o script vai herdar apenas o valor, mas não a permissão, ou seja, vai conseguir mudar a variável...

O interessante que se você der um echo $SLKCFLAGS antes e depois de rodar o script vai estar do mesmo jeito que você definiu,(-O3 fPIC) mas se você checar a sintaxe do GCC ele vai estar usando como o script mudou, ou seja, -O2 -fPIC no meu caso...

3-) você poderia editar todos os seus slackbuilds do sbopkg com o seguinte comando:

find /var/lib/sbopkg/ -name "*.SlackBuild" -print0 | xargs -0 -i -t sed -i 's/SLKCFLAGS=".*"/SLKCFLAGS="-03 -fPIC"/g' {}


Contudo quando você rodar o sbopkg ele vai perceber que você editou o arquivo e vai reeditar pra ficar da forma original, se quiser usar assim só dá pra fazer entrando no diretório e rodando o script SlackBuild na mão...



Recapitulando:

Como está assim no script não dá certo:
SLKCFLAGS="-02 -fPIC"

Mas se estivesse assim daria:
SLKCFLAGS="${SLKCFLAGS:- -02 -fPIC}"

* Veja meu primeiro post que expliquei mais ou menos isso

4-) Editar os arquivos de configuração do sbopkg não deu certo também...
Acho que o pessoal que fez o programa não pensou nesta necessidade, porém sinceramente eu acho que isso é sofrimento desnecessário, pois é muito mais fácil abrir o script apenas dos programas que vc vai instalar e mudar o q vc quiser.




  
01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts