[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: C++ symbol mangling difference between arches



Hello,

On 2009 m. June 26 d., Friday 23:01:54 Florian Weimer wrote:
> * Modestas Vainius:
> > While apparently, VT can't be implemented differently (except \d+),
> > what about size_t etc. then? They all can be implemented as regexps
> > too the most simple being 'any character'. However, in my opinion,
> > exact string matching is worthwhile to keep whenever possible.
>
> Can't you ship the demangled names in the symbols file?  I suppose
> this would make rewriting easier.

While it is a good idea worth consideration but I think demangled symbol
names are somewhat too ambiguous to be used in general. See below:

$ grep '^ ' /var/lib/dpkg/info/libphonon4.symbols | c++filt | sort | uniq -c | grep '^[[:space:]]*[2-9]' | sort -n
      2  non-virtual thunk to Phonon::AbstractAudioOutput::~AbstractAudioOutput()@Base 4:4.2.0
      2  non-virtual thunk to Phonon::Effect::~Effect()@Base 4:4.2.0                          
      2  non-virtual thunk to Phonon::EffectWidget::~EffectWidget()@Base 4:4.2.0              
      2  non-virtual thunk to Phonon::Experimental::Visualization::~Visualization()@Base 4:4.2.0
      2  non-virtual thunk to Phonon::MediaObject::~MediaObject()@Base 4:4.2.0                  
      2  non-virtual thunk to Phonon::SeekSlider::~SeekSlider()@Base 4:4.2.0                    
      2  non-virtual thunk to Phonon::VideoPlayer::~VideoPlayer()@Base 4:4.2.0                  
      2  non-virtual thunk to Phonon::VolumeSlider::~VolumeSlider()@Base 4:4.2.0                
      2  Phonon::AbstractAudioOutput::AbstractAudioOutput(Phonon::AbstractAudioOutputPrivate&, QObject*)@Base 4:4.2.0
      2  Phonon::AbstractMediaStream::AbstractMediaStream(Phonon::AbstractMediaStreamPrivate&, QObject*)@Base 4:4.2.0
      2  Phonon::AbstractMediaStream::AbstractMediaStream(QObject*)@Base 4:4.2.0                                     
      2  Phonon::AbstractVideoOutput::AbstractVideoOutput(Phonon::AbstractVideoOutputPrivate&)@Base 4:4.2.0          
      2  Phonon::AudioOutput::AudioOutput(Phonon::Category, QObject*)@Base 4:4.2.0                                   
      2  Phonon::AudioOutput::AudioOutput(QObject*)@Base 4:4.2.0                                                     
      2  Phonon::Effect::Effect(Phonon::EffectPrivate&, QObject*)@Base 4:4.2.0                                       
      2  Phonon::Effect::Effect(Phonon::ObjectDescription<(Phonon::ObjectDescriptionType)1> const&, QObject*)@Base 4:4.2.0
      2  Phonon::EffectParameter::~EffectParameter()@Base 4:4.2.0                                                         
      2  Phonon::EffectParameter::EffectParameter()@Base 4:4.2.0                                                          
      2  Phonon::EffectParameter::EffectParameter(int, QString const&, QFlags<Phonon::EffectParameter::Hint>, QVariant const&, QVariant 
const&, QVariant const&, QList<QVariant> const&, QString const&)@Base 4:4.2.0                                                                     
      2  Phonon::EffectParameter::EffectParameter(Phonon::EffectParameter const&)@Base 4:4.2.0                                               
      2  Phonon::EffectWidget::EffectWidget(Phonon::Effect*, QWidget*)@Base 4:4.2.0                                                          
      2  Phonon::Experimental::AbstractAudioDataOutput::AbstractAudioDataOutput()@Base 4:4.3.0                                               
      2  Phonon::Experimental::AbstractVideoDataOutput::AbstractVideoDataOutput()@Base 4:4.3.0                                               
      2  
Phonon::Experimental::AbstractVideoDataOutput::AbstractVideoDataOutput(Phonon::Experimental::AbstractVideoDataOutputPrivate&)@Base 
4:4.3.0                                                                                                                                       
      2  Phonon::Experimental::AudioDataOutput::AudioDataOutput(QObject*)@Base 4:4.2.0                                                       
      2  Phonon::Experimental::AvCapture::AvCapture(QObject*)@Base 4:4.3.0                                                                   
      2  Phonon::Experimental::MediaSource::MediaSource(Phonon::Experimental::MediaSource const&)@Base 4:4.2.0                               
      2  Phonon::Experimental::MediaSource::MediaSource(Phonon::ObjectDescription<(Phonon::ObjectDescriptionType)65536> const&)@Base 
4:4.2.0 
      2  Phonon::Experimental::MediaSource::MediaSource(QList<Phonon::MediaSource> const&)@Base 4:4.2.0                                      
      2  Phonon::Experimental::VideoDataOutput2::VideoDataOutput2(QObject*)@Base 4:4.3.0                                                     
      2  Phonon::Experimental::VideoDataOutput::VideoDataOutput(QObject*)@Base 4:4.2.0                                                       
      2  Phonon::Experimental::Visualization::Visualization(QObject*)@Base 4:4.2.0                                                           
      2  Phonon::GlobalConfig::GlobalConfig()@Base 4:4.3.0                                                                                   
      2  Phonon::MediaController::MediaController(Phonon::MediaObject*)@Base 4:4.2.0                                                         
      2  Phonon::MediaNode::MediaNode(Phonon::MediaNodePrivate&)@Base 4:4.2.0                                                                
      2  Phonon::MediaNodePrivate::MediaNodePrivate(Phonon::MediaNodePrivate::CastId)@Base 4:4.2.0                                           
      2  Phonon::MediaObject::MediaObject(QObject*)@Base 4:4.2.0                                                                             
      2  Phonon::MediaSource::~MediaSource()@Base 4:4.2.0                                                                                    
      2  Phonon::MediaSource::MediaSource()@Base 4:4.2.0                                                                                     
      2  Phonon::MediaSource::MediaSource(Phonon::AbstractMediaStream*)@Base 4:4.2.0                                                         
      2  Phonon::MediaSource::MediaSource(Phonon::DiscType, QString const&)@Base 4:4.2.0                                                     
      2  Phonon::MediaSource::MediaSource(Phonon::MediaSource const&)@Base 4:4.2.0                                                           
      2  Phonon::MediaSource::MediaSource(Phonon::MediaSourcePrivate&)@Base 4:4.2.0                                                          
      2  Phonon::MediaSource::MediaSource(QIODevice*)@Base 4:4.2.0                                                                           
      2  Phonon::MediaSource::MediaSource(QString const&)@Base 4:4.2.0                                                                       
      2  Phonon::MediaSource::MediaSource(QUrl const&)@Base 4:4.2.0                                                                          
      2  Phonon::ObjectDescriptionData::~ObjectDescriptionData()@Base 4:4.2.0                                                                
      2  Phonon::ObjectDescriptionData::ObjectDescriptionData(int, QHash<QByteArray, QVariant> const&)@Base 4:4.2.0                          
      2  Phonon::ObjectDescriptionData::ObjectDescriptionData(Phonon::ObjectDescriptionPrivate*)@Base 4:4.2.0                                
      2  Phonon::ObjectDescriptionModelData::~ObjectDescriptionModelData()@Base 4:4.2.0                                                      
      2  Phonon::ObjectDescriptionModelData::ObjectDescriptionModelData(QAbstractListModel*)@Base 4:4.2.0                                    
      2  Phonon::Packet::~Packet()@Base 4:4.3.0                                                                                              
      2  Phonon::Packet::Packet()@Base 4:4.3.0                                                                                               
      2  Phonon::Packet::Packet(Phonon::Packet const&)@Base 4:4.3.0                                                                          
      2  Phonon::Packet::Packet(Phonon::PacketPool&)@Base 4:4.3.0                                                                            
      2  Phonon::Packet::Packet(Phonon::PacketPrivate&)@Base 4:4.3.0                                                                         
      2  Phonon::PacketPool::~PacketPool()@Base 4:4.3.0                                                                                      
      2  Phonon::PacketPool::PacketPool(int, int)@Base 4:4.3.0                                                                               
      2  Phonon::PacketPool::PacketPool(Phonon::PacketPool const&)@Base 4:4.3.0                                                              
      2  Phonon::Path::~Path()@Base 4:4.2.0                                                                                                  
      2  Phonon::Path::Path()@Base 4:4.2.0                                                                                                   
      2  Phonon::Path::Path(Phonon::Path const&)@Base 4:4.2.0                                                                                
      2  Phonon::SeekSlider::SeekSlider(Phonon::MediaObject*, QWidget*)@Base 4:4.2.0                                                         
      2  Phonon::SeekSlider::SeekSlider(QWidget*)@Base 4:4.2.0                                                                               
      2  Phonon::StreamInterface::StreamInterface()@Base 4:4.2.0                                                                             
      2  Phonon::VideoPlayer::VideoPlayer(Phonon::Category, QWidget*)@Base 4:4.2.0                                                           
      2  Phonon::VideoPlayer::VideoPlayer(QWidget*)@Base 4:4.3.0
      2  Phonon::VideoWidget::VideoWidget(Phonon::VideoWidgetPrivate&, QWidget*)@Base 4:4.2.0
      2  Phonon::VideoWidget::VideoWidget(QWidget*)@Base 4:4.2.0
      2  Phonon::VolumeFaderEffect::VolumeFaderEffect(QObject*)@Base 4:4.2.0
      2  Phonon::VolumeSlider::VolumeSlider(Phonon::AudioOutput*, QWidget*)@Base 4:4.2.0
      2  Phonon::VolumeSlider::VolumeSlider(QWidget*)@Base 4:4.2.0
      2  typeinfo for Phonon::AbstractVideoOutput@Base 4:4.2.0
      2  typeinfo name for Phonon::AbstractVideoOutput@Base 4:4.2.0
      2  vtable for Phonon::AbstractVideoOutput@Base 4:4.2.0
      3  Phonon::AbstractAudioOutput::~AbstractAudioOutput()@Base 4:4.2.0
      3  Phonon::AbstractMediaStream::~AbstractMediaStream()@Base 4:4.2.0
      3  Phonon::AbstractMediaStreamPrivate::~AbstractMediaStreamPrivate()@Base 4:4.2.0
      3  Phonon::Effect::~Effect()@Base 4:4.2.0
      3  Phonon::EffectWidget::~EffectWidget()@Base 4:4.2.0
      3  Phonon::Experimental::AbstractAudioDataOutput::~AbstractAudioDataOutput()@Base 4:4.3.0
      3  Phonon::Experimental::AbstractVideoDataOutput::~AbstractVideoDataOutput()@Base 4:4.3.0
      3  Phonon::Experimental::Visualization::~Visualization()@Base 4:4.2.0
      3  Phonon::GlobalConfig::~GlobalConfig()@Base 4:4.3.0
      3  Phonon::MediaController::~MediaController()@Base 4:4.2.0
      3  Phonon::MediaNode::~MediaNode()@Base 4:4.2.0
      3  Phonon::MediaNodePrivate::~MediaNodePrivate()@Base 4:4.2.0
      3  Phonon::MediaObject::~MediaObject()@Base 4:4.2.0
      3  Phonon::MediaSourcePrivate::~MediaSourcePrivate()@Base 4:4.2.0
      3  Phonon::SeekSlider::~SeekSlider()@Base 4:4.2.0
      3  Phonon::StreamInterface::~StreamInterface()@Base 4:4.2.0
      3  Phonon::VideoPlayer::~VideoPlayer()@Base 4:4.2.0
      3  Phonon::VolumeSlider::~VolumeSlider()@Base 4:4.2.0


-- 
Modestas Vainius <modestas@vainius.eu>

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: