Mailinglist Archive: zypp-devel (12 mails)
| < Previous | Next > |
Re: [zypp-devel] architecture not detected correctly after glibc/gcc upgrade
- From: Michael Andres <ma@xxxxxxx>
- Date: Tue, 5 Jul 2011 18:04:17 +0200
- Message-id: <201107051804.18109.ma@suse.de>
On Tuesday 05 July 2011 14:47:35 Zhang, Qiang Z wrote:
It requires the sat-pool being initialized, as the pool keeps all the strings.
-------
In Arch.cc: in ArchCompatSet ctor (about line 331):
//
defCompatibleWith( _sh4, _noarch );
defCompatibleWith( _sh4a, _noarch,_sh4 );
//
///////////////////////////////////////////////////////////////////
--> // dumpOn( USR ) << endl;
}
Uncomment the dumpOn and the compatsets will be dumped to the zypp logfile
(ZYPP_LOGFILE=- or some filename). Should look like this:
ArchCompatSet:
noarch 0\
________________________________________________________________ 0
i386 2\
______________________________________________________________1_ 2
i486 3\
_____________________________________________________________11_ 6
i586 4\
____________________________________________________________111_ 14
i686 5\
___________________________________________________________1111_ 30
...
x86_64 7\
_________________________________________________________111111_ 126
...
ia64 10\
______________________________________________________1____1111_ 542
s390 11\
_____________________________________________________1__________ 1024
...
In the log check that a line
[zypp::satpool] PoolImpl.cc(PoolImpl):179 Creating sat-pool.
occurs before the
[zypp] Arch.cc(ArchCompatSet):331 ArchCompatSet:
...
-------
Please adapt the meego-dont-use-macro.patch you sent to write out like this:
target.addCompatBit( assertCompatSetEntry( arch0_r )._idBit );
+ MIL << "In defCompatibleWith:" << '('<<targetArch_r.id() << ')'
+ <<targetArch_r << ':' << arch0_r << endl;
#define _SETARG(N) if ( arch##N##_r.empty() ) return; target.addCompatBit
Looks like the initialisation of the global builtin architecture string values
fails and all the IdStrings are empty. Maybe the globals are initialized too
early, before the sat-pool is ready.
--
cu,
Michael Andres
+------------------------------------------------------------------+
Key fingerprint = 2DFA 5D73 18B1 E7EF A862 27AC 3FB8 9E3A 27C6 B0E4
+------------------------------------------------------------------+
Michael Andres SUSE LINUX Products GmbH, Development, ma@xxxxxxx
GF:Jeff Hawn,Jennifer Guild,Felix Imendörffer, HRB16746(AG Nürnberg)
Maxfeldstrasse 5, D-90409 Nuernberg, Germany, ++49 (0)911 - 740 53-0
+------------------------------------------------------------------+
--
To unsubscribe, e-mail: zypp-devel+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-devel+help@xxxxxxxxxxxx
I have got more findings. In Arch.cc the IdString class seems don’t works.
It requires the sat-pool being initialized, as the pool keeps all the strings.
The asSting() method of archs always return empty string, which result in
the size of _compatSet is always 1.
-------
In Arch.cc: in ArchCompatSet ctor (about line 331):
//
defCompatibleWith( _sh4, _noarch );
defCompatibleWith( _sh4a, _noarch,_sh4 );
//
///////////////////////////////////////////////////////////////////
--> // dumpOn( USR ) << endl;
}
Uncomment the dumpOn and the compatsets will be dumped to the zypp logfile
(ZYPP_LOGFILE=- or some filename). Should look like this:
ArchCompatSet:
noarch 0\
________________________________________________________________ 0
i386 2\
______________________________________________________________1_ 2
i486 3\
_____________________________________________________________11_ 6
i586 4\
____________________________________________________________111_ 14
i686 5\
___________________________________________________________1111_ 30
...
x86_64 7\
_________________________________________________________111111_ 126
...
ia64 10\
______________________________________________________1____1111_ 542
s390 11\
_____________________________________________________1__________ 1024
...
In the log check that a line
[zypp::satpool] PoolImpl.cc(PoolImpl):179 Creating sat-pool.
occurs before the
[zypp] Arch.cc(ArchCompatSet):331 ArchCompatSet:
...
-------
Please adapt the meego-dont-use-macro.patch you sent to write out like this:
target.addCompatBit( assertCompatSetEntry( arch0_r )._idBit );
+ MIL << "In defCompatibleWith:" << '('<<targetArch_r.id() << ')'
+ <<targetArch_r << ':' << arch0_r << endl;
#define _SETARG(N) if ( arch##N##_r.empty() ) return; target.addCompatBit
Looks like the initialisation of the global builtin architecture string values
fails and all the IdStrings are empty. Maybe the globals are initialized too
early, before the sat-pool is ready.
--
cu,
Michael Andres
+------------------------------------------------------------------+
Key fingerprint = 2DFA 5D73 18B1 E7EF A862 27AC 3FB8 9E3A 27C6 B0E4
+------------------------------------------------------------------+
Michael Andres SUSE LINUX Products GmbH, Development, ma@xxxxxxx
GF:Jeff Hawn,Jennifer Guild,Felix Imendörffer, HRB16746(AG Nürnberg)
Maxfeldstrasse 5, D-90409 Nuernberg, Germany, ++49 (0)911 - 740 53-0
+------------------------------------------------------------------+
--
To unsubscribe, e-mail: zypp-devel+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-devel+help@xxxxxxxxxxxx
| < Previous | Next > |