[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