[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 87209] New: kdecore: -mimpure-text may be needed on Solaris w/
From:       Christopher Layne <clayne () anodized ! com>
Date:       2004-08-14 15:53:49
Message-ID: 20040814155349.5221.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
      
http://bugs.kde.org/show_bug.cgi?id=87209      
           Summary: kdecore: -mimpure-text may be needed on Solaris w/ gcc
                    3.x and above
           Product: kde
           Version: unspecified
          Platform: Compiled Sources
        OS/Version: Solaris
            Status: UNCONFIRMED
          Severity: crash
          Priority: NOR
         Component: general
        AssignedTo: bastian kde org
        ReportedBy: clayne anodized com


Version:            (using KDE KDE 3.3.0)
Installed from:    Compiled From Sources
Compiler:          gcc 3.4.1 Reading specs from \
/tools/stow/solx86/tool-static-gcc-3_4_1_20040807.RELEASE.i386.solaris.5_8/bin/../lib/gcc/i386-pc-solaris2.8/3.4.1/specs \
Configured with: ./configure --prefix=/usr/local --enable-threads=posix \
--enable-languages=c,c++,f77,f95,objc : (reconfigured) ./configure \
                --prefix=/usr/local --enable-threads=posix  Thread model: posix  gcc \
                version 3.4.1  
OS:                Solaris

------- Additional Comment #4 From Christopher Layne 2004-08-13 18:13 ------- 
I don't see this as entirely fixed, as perhaps mine is unrelated. 
As such, I receive the same errors on both 3.3.0rc2 and CVS (from yesterday): 

build02-sol8-x86 :: ~/src/kde/kdelibs > uname -a 
SunOS build02-sol8-x86.dev.villa.tellme.com 5.8 Generic_108529-12 i86pc i386 i86pc 
build02-sol8-x86 :: ~/src/kde/kdelibs > gcc -v 
Reading specs from /tools/stow/solx86/tool-static-gcc-3_4_1_20040807.RELEASE.i386.solaris.5_8/bin/../lib/gcc/i386-pc-solaris2.8/3.4.1/specs \
 Configured with: ./configure --prefix=/usr/local --enable-threads=posix \
--enable-languages=c,c++,f77,f95,objc : (reconfigured) ./configure \
--prefix=/usr/local --enable-threads=posix  Thread model: posix 
gcc version 3.4.1 

build02-sol8-x86 :: ~/src/kde/kdelibs > ./configure --prefix=/usr/local/kde  &> \
configure.log  build02-sol8-x86 :: ~/src/kde/kdelibs > make &> make.log 

[snippet] 
/bin/ksh ../libtool --silent --mode=link --tag=CXX g++   -Wnon-virtual-dtor \
-Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -O2 -fno-exceptions \
-fno-check-new -fno-common  -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL \
-DQT_NO_COMPAT -DQT_NO_TRANSLATION    -o libkdecore.la -rpath /usr/local/kde/lib \
-L/usr/local/lib -R /usr/local/kde/lib -R /usr/local/lib -R /usr/local/X11R6/lib  \
-L/usr/local/X11R6/lib  -version-info 6:0:2 -no-undefined  libintl.lo kapplication.lo \
kdebug.lo  netwm.lo kconfigbase.lo kconfig.lo ksimpleconfig.lo  kconfigbackend.lo \
kmanagerselection.lo kdesktopfile.lo  kstandarddirs.lo ksock.lo kpty.lo kprocess.lo \
kprocctrl.lo  klocale.lo krfcdate.lo kiconeffect.lo kicontheme.lo  kiconloader.lo \
kwin.lo kwinmodule.lo krootprop.lo kcharsets.lo  kckey.lo kshortcut.lo \
kkeynative_x11.lo kkeyserver_x11.lo  kaccelaction.lo kshortcutmenu.lo kaccelbase.lo \
kaccel.lo  kglobalaccel_x11.lo kglobalaccel.lo kstdaccel.lo  kshortcutlist.lo \
kcrash.lo kurl.lo kregexp.lo kglobal.lo  kglobalsettings.lo kallocator.lo \
kvmallocator.lo  kmimesourcefactory.lo kinstance.lo kpalette.lo kipc.lo  \
klibloader.lo ktempfile.lo kuniqueapplication.lo  kaccelmanager.lo ksavefile.lo \
krandomsequence.lo  kstringhandler.lo kcompletion.lo kcmdlineargs.lo kaboutdata.lo  \
kcompletionbase.lo knotifyclient.lo kaudioplayer.lo  kdcoppropertyproxy.lo \
ksockaddr.lo kextsock.lo netsupp.lo  kprocio.lo kbufferedio.lo kpixmapprovider.lo \
kurldrag.lo  kmdcodec.lo ksocks.lo fakes.lo vsnprintf.lo ksycoca.lo  ksycocadict.lo \
ksycocafactory.lo kxmessages.lo kstartupinfo.lo  kcatalogue.lo kasyncio.lo \
kmultipledrag.lo kstaticdeleter.lo  kappdcopiface.lo kclipboard.lo \
kcheckaccelerators.lo  kdeversion.lo kdebugdcopiface.lo kcalendarsystem.lo  \
kcalendarsystemgregorian.lo kcalendarsystemhijri.lo  kcalendarsystemhebrew.lo \
kcalendarsystemfactory.lo  kmacroexpander.lo kidna.lo ktempdir.lo kshell.lo  \
kmountpoint.lo kcalendarsystemjalali.lo  kprotocolinfo_kdecore.lo \
kprotocolinfofactory.lo  kxerrorhandler.lo kuser.lo kconfigskeleton.lo  \
kconfigdialogm anager.lo klockfile.lo ksycoca_skel.lo kappdcopiface_skel.lo \
kdebugdcopiface_skel.lo malloc/libklmalloc.la network/libkdecorenetwork.la \
svgicons/libkdesvgicons.la ../dcop/libDCOP.la ../libltdl/libltdlc.la -lXext -lresolv  \
-L/usr/local/lib -lart_lgpl_2 -lm  ../kdefx/libkdefx.la  Text relocation remains      \
referenced   against symbol                  offset      in file 
KNetwork::Internal::initStandardWorkers()    0x43f      \
.libs/libkdecore.lax/libkdecorenetwork.a/kresolvermanager.o  \
KNetwork::Internal::initStandardWorkers()    0x577      \
.libs/libkdecore.lax/libkdecorenetwork.a/kresolvermanager.o  \
KNetwork::Internal::KResolverManager::manager()   0x49b         \
.libs/libkdecore.lax/libkdecorenetwork.a/kresolver.o  \
KNetwork::Internal::KResolverManager::manager()   0x4e7         \
.libs/libkdecore.lax/libkdecorenetwork.a/kresolver.o  \
KNetwork::Internal::KResolverManager::manager()   0x533         \
.libs/libkdecore.lax/libkdecorenetwork.a/kresolver.o  \
KNetwork::Internal::KResolverManager::manager()   0x817         \
.libs/libkdecore.lax/libkdecorenetwork.a/kresolver.o  \
KNetwork::Internal::KResolverManager::manager()   0x203a        \
.libs/libkdecore.lax/libkdecorenetwork.a/kresolver.o  \
KNetwork::Internal::KResolverManager::manager()   0x2072        \
.libs/libkdecore.lax/libkdecorenetwork.a/kresolver.o  \
KNetwork::Internal::KResolverManager::manager()   0x212c        \
.libs/libkdecore.lax/libkdecorenetwork.a/kresolver.o  \
KNetwork::Internal::KResolverManager::manager()   0x299         \
.libs/libkdecore.lax/libkdecorenetwork.a/kresolverworkerbase.o  \
KNetwork::Internal::KResolverManager::manager()   0x2cc         \
.libs/libkdecore.lax/libkdecorenetwork.a/kresolverworkerbase.o  \
KNetwork::Internal::KResolverManager::manager()   0x41d         \
                .libs/libkdecore.lax/libkdecorenetwork.a/kreverseresolver.o 
ld: fatal: relocations remain against allocatable but non-writable sections 
collect2: ld returned 1 exit status 
*** Error code 1 
make: Fatal error: Command failed for target `libkdecore.la' 
Current working directory /home/clayne/src/kde/kdelibs/kdecore 
*** Error code 1 
make: Fatal error: Command failed for target `all-recursive' 
Current working directory /home/clayne/src/kde/kdelibs/kdecore 
*** Error code 1 
make: Fatal error: Command failed for target `all-recursive' 
Current working directory /home/clayne/src/kde/kdelibs 
*** Error code 1 
make: Fatal error: Command failed for target `all' 
-- 


I have the updated kresolverstandardworkers.cpp: 

shell01 :: ~/src/kde/kdelibs > tail kdecore/network/kresolverstandardworkers.cpp      \
  // register the workers in the order we want them to be tried 
  // note the no-resolving worker isn't registered. It's handled as a 
  // special case in KResolverManager::findWorker 

  KResolverWorkerFactoryBase::registerNewWorker(new \
KResolverWorkerFactory<KStandardWorker>); 

#ifdef HAVE_GETADDRINFO 
  KResolverWorkerFactoryBase::registerNewWorker(new \
KResolverWorkerFactory<KGetAddrinfoWorker>);  #endif 
} 


I'll attach both configure.log and make.log as well. 


------- Additional Comment #5 From Christopher Layne 2004-08-13 18:16 ------- 
Created an attachment (id=7097)
 --> (http://bugs.kde.org/attachment.cgi?id=7097&action=view) 
configure.log 


------- Additional Comment #6 From Christopher Layne 2004-08-13 18:17 ------- 
Created an attachment (id=7098)
 --> (http://bugs.kde.org/attachment.cgi?id=7098&action=view) 
make.log 


------- Additional Comment #7 From Christopher Layne 2004-08-13 18:18 ------- 
BTW: buried in make.log: 

kresolverstandardworkers.cpp: In function `void \
KNetwork::Internal::initStandardWorkers()':  kresolverstandardworkers.cpp:877: \
warning: visibility attribute not supported in this configuration; ignored 


------- Additional Comment #8 From Thiago Macieira 2004-08-13 19:17 ------- 
Hello Christopher, 

I cannot interpret the error message that you're getting. I don't know why the linker \
is complaining about "relocations remain against allocatable but non-wriable \
sections". 

Even if initStandardWorkers() is a problem, I don't see how that could influence \
KResolverManager::manager(). It's a simple, static function inside a class. 

As for the visibility problem, it's not an issue. It's there just to make the symbol \
disappear from the resulting libkdecore.so. 


------- Additional Comment #9 From Christopher Layne 2004-08-13 19:23 ------- 
Before chasing this down, let me do a couple rebuilds of binutils, glibc, and gcc; \
just to make sure. 


------- Additional Comment #10 From Christopher Layne 2004-08-13 19:25 ------- 
Thanks for the quick reply Thiago, I'll pursue and let you know what I figure out.. 

AFAIK, the visibility warning shouldn't cause a build failure, right? 


------- Additional Comment #11 From Christopher Layne 2004-08-13 19:35 ------- 
Okay, did some research. 

I'll try forcing -fPIC via -with-pic with configure. 

If that doesn't work, I'll examine the possibility of: 

`-mimpure-text' 
      `-mimpure-text', used in addition to `-shared', tells the compiler 
      to not pass `-z text' to the linker when linking a shared object. 
      Using this option, you can link position-dependent code into a 
      shared object. 
  
      `-mimpure-text' suppresses the "relocations remain against 
      allocatable but non-writable sections" linker error message. 
      However, the necessary relocations will trigger copy-on-write, and 
      the shared object is not actually shared across processes. 
      Instead of using `-mimpure-text', you should compile all source 
      code with `-fpic' or `-fPIC'. 
  
      This option is only available on SunOS and Solaris. 


------- Additional Comment #12 From Christopher Layne 2004-08-13 20:34 ------- 
Hmmm... 

--with-pic (configure flag): no change. 

-mimpure-text (gcc flag): "fixed" it, but I don't know why it was even required in \
the first place. Solaris 8 x86 is not exactly unexplored, and I would figure gcc \
3.4.1 was fairly mapped out by now. 

BUT, I did upgrade binutils right before starting a kde build (I had built native \
gcc-3.4.1 on the machine and have been using it for a while). I'm going to regress to \
the previous version of binutils and see how another kdecore build goes. 


------- Additional Comment #13 From Christopher Layne 2004-08-13 21:35 ------- 
Well, after thinking about it, binutils shouldn't even make a difference as I'm using \
the Sol8 ld anyways. Regardless I, 

Downgraded binutils: no difference. 
Restored previous version and then disabled "--silent" in the libtool calls and \
verified -fPIC -DPIC were present, but also: no change. 

Linked *just* knetwork library with "-mimpure-text" and left the rest alone: no \
change. 

Linked knetwork normally (no special flags other then what was generated), but then \
specified -mimpure-text during kdecore library linking: This Fixed It (as mentioned \
before). 

But the weird thing is that the only other KDE bug I found that required \
-mimpure-text was this one from 2.2.2 in 2001: 

Bug 35809: dbsearengine module does not compile correctly without libtool \
modification. 

What I don't get is that the gcc man dictates: 

"      Instead of using `-mimpure-text', you should compile all source 
      code with `-fpic' or `-fPIC'. " 

Which we're using. 

Anyone else out there with sol8-x86, qt 3.3.2, and gcc 3.4.1? This is not present in \
only CVS releases, it's in 3.3.0RC2, as well. Something about knetwork lib is \
tripping it up - as no other sub libraries had issues. 


------- Additional Comment #14 From Christopher Layne 2004-08-13 21:49 ------- 
BTW: To developers, this may be useful. Diff's between gcc spec's involving \
-mimpure-text: 

build02-sol8-x86 :: ~ > diff specs.3.3.1 specs.3.4.1  | grep impure-text 
build02-sol8-x86 :: ~ > diff specs.2.95 specs.3.4.1 | grep impure-text 
< %{h*} %{v:-V}    %{b} %{Wl,*:%*}    %{static:-dn -Bstatic}   %{shared:-G -dy -z \
text}    %{symbolic:-Bsymbolic -G -dy -z text}    %{G:-G}    %{YP,*}    %{R*}    \
%{compat-bsd:      %{!YP,*:%{pg:-Y \
P,/usr/ucblib:/usr/ccs/lib/libp:/usr/lib/libp:/usr/ccs/lib:/usr/lib}      \
%{!pg:%{p:-Y P,/usr/ucblib:/usr/ccs/lib/libp:/usr/lib/libp:/usr/ccs/lib:/usr/lib}     \
%{!p:-Y P,/usr/ucblib:/usr/ccs/lib:/usr/lib}}}      -R /usr/ucblib}    %{!compat-bsd: \
%{!YP,*:%{pg:-Y P,/usr/ccs/lib/libp:/usr/lib/libp:/usr/ccs/lib:/usr/lib}      \
%{!pg:%{p:-Y P,/usr/ccs/lib/libp:/usr/lib/libp:/usr/ccs/lib:/usr/lib}        %{!p:-Y \
P,/usr/ccs/lib:/usr/lib}}}}    %{Qy:} %{!Qn:-Qy} 
> %{h*} %{v:-V}    %{b} %{Wl,*:%*}    %{static:-dn -Bstatic}    %{shared:-G -dy \
> %{!mimpure-text:-z text}}    %{symbolic:-Bsymbolic -G -dy -z text}    %(link_arch)  \
> %{Qy:} %{!Qn:-Qy} 

-- 

No changes between 3.3.1 to 3.4.1, but definitely a change from 2.95 to 3.4.1 


------- Additional Comment #15 From Christopher Layne 2004-08-14 09:26 ------- 
Another one needing -mimpure-text on Solaris w/ gcc3: 

Text relocation remains                         referenced 
    against symbol                  offset      in file 
getValueName(unsigned short)        0x1640      \
.libs/libkhtml.lax/libkhtmlcss.a/css_valueimpl.o  fastZoomSizeCount                   \
0xd7d       .libs/khtml_ext.o  fastZoomSizeCount                   0x129c      \
.libs/khtml_ext.o  fastZoomSizeCount                   0x12ca      .libs/khtml_ext.o 
fastZoomSizes                       0x14317     .libs/khtml_part.o 
fastZoomSizes                       0x143df     .libs/khtml_part.o 
fastZoomSizes                       0xdb2       .libs/khtml_ext.o 
fastZoomSizes                       0x12b1      .libs/khtml_ext.o 
getTagName(unsigned short)          0x52ac      \
.libs/libkhtml.lax/libkhtmlxml.a/dom_docimpl.o  getTagName(unsigned short)          \
0x29a       .libs/libkhtml.lax/libkhtmlhtml.a/html_elementimpl.o  getTagName(unsigned \
short)          0x420       .libs/libkhtml.lax/libkhtmlhtml.a/html_elementimpl.o  \
getTagName(unsigned short)          0x21d4      \
.libs/libkhtml.lax/libkhtmlrender.a/render_object.o  getTagName(unsigned short)       \
0x2f14      .libs/libkhtml.lax/libkhtmlrender.a/render_object.o  getTagName(unsigned \
short)          0x12e1      .libs/libkhtml.lax/libkhtmlcss.a/css_base.o  \
getAttrName(unsigned short)         0x5374      \
.libs/libkhtml.lax/libkhtmlxml.a/dom_docimpl.o  getAttrName(unsigned short)         \
0x14c0      .libs/libkhtml.lax/libkhtmlcss.a/css_base.o  DOM::getPropertyID(char \
const*, int)0x5e0       .libs/libkhtml.lax/libkjs_html.a/kjs_css.o  \
DOM::getPropertyID(char const*, int)0x798       \
.libs/libkhtml.lax/libkjs_html.a/kjs_css.o  DOM::getPropertyID(char const*, \
int)0xa238      .libs/libkhtml.lax/libkjs_html.a/kjs_css.o  DOM::getPropertyID(char \
const*, int)0x71d       .libs/libkhtml.lax/libkhtmldom.a/html_element.o  \
DOM::getPropertyID(char const*, int)0x859       \
.libs/libkhtml.lax/libkhtmldom.a/html_element.o  DOM::getPropertyID(char const*, \
int)0x28d       .libs/libkhtml.lax/libkhtmldom.a/css_value.o  DOM::getPropertyID(char \
const*, int)0x3c6       .libs/libkhtml.lax/libkhtmldom.a/css_value.o  \
DOM::getPropertyID(char const*, int)0x4c1       \
.libs/libkhtml.lax/libkhtmldom.a/css_value.o  DOM::getPropertyID(char const*, \
int)0x5a1       .libs/libkhtml.lax/libkhtmldom.a/css_value.o  DOM::getPropertyID(char \
const*, int)0x6f0       .libs/libkhtml.lax/libkhtmldom.a/css_value.o  \
getPropertyName(unsigned short)     0x935       \
.libs/libkhtml.lax/libkhtmlcss.a/css_valueimpl.o  getPropertyName(unsigned short)     \
0x127e      .libs/libkhtml.lax/libkhtmlcss.a/css_valueimpl.o  \
getPropertyName(unsigned short)     0x28ce      \
                .libs/libkhtml.lax/libkhtmlcss.a/css_valueimpl.o 
ld: fatal: relocations remain against allocatable but non-writable sections 
collect2: ld returned 1 exit status 
make[1]: *** [libkhtml.la] Error 1 
make[1]: Leaving directory `/home/clayne/src/kde/kdelibs/khtml' 
make: *** [all-recursive] Error 1 


------- Additional Comment #16 From Thiago Macieira 2004-08-14 16:06 ------- 
Christopher, I believe you should open a new bug report. The one this bug was created \
for has now been fixed and is apparently not related to your problem.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic