Re: [Development] ABI of deprecated supportsThreadedFontRendering()

2013-10-11 Thread Harri Porten
On Thu, 10 Oct 2013, Olivier Goffart wrote:

 Removing inline is not enough. One need to put back the definition in the
 .cpp file.


 Please fill a bug report. (or a patch :-))

https://codereview.qt-project.org/#change,67867

Confirmed with nm on Linux.

Harri.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] ABI of deprecated supportsThreadedFontRendering()

2013-10-10 Thread Harri Porten
Hi!

I just learnt about what looks like an ABI regression in Qt 5.2:

The function QFontDatabase::supportsThreadedFontRendering() got deprecated 
in 5.2 with commit b0b786a2f05e9451a65519ab8904f55c35f51b7d:

  -static bool supportsThreadedFontRendering();
  +#if QT_DEPRECATED_SINCE(5, 2)
  +QT_DEPRECATED static inline bool supportsThreadedFontRendering() { 
return true; }
  +#endif

At the same time it got inlined. At least with MinGW this made the symbol 
go away. While e.g. MSVC still exports it.

Now I don't know the exact strategy pursured by QT_DEPRECATED but I assume 
that the function's symbol should not disappear from the 5.2 ABI? If so, 
I wonder whether removing the inline will already do the job.

Harri.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] ABI of deprecated supportsThreadedFontRendering()

2013-10-10 Thread Olivier Goffart
On Thursday 10 October 2013 15:04:40 Harri Porten wrote:
 Hi!
 
 I just learnt about what looks like an ABI regression in Qt 5.2:
 
 The function QFontDatabase::supportsThreadedFontRendering() got deprecated
 in 5.2 with commit b0b786a2f05e9451a65519ab8904f55c35f51b7d:
 
   -static bool supportsThreadedFontRendering();
   +#if QT_DEPRECATED_SINCE(5, 2)
   +QT_DEPRECATED static inline bool supportsThreadedFontRendering() {
 return true; } +#endif
 
 At the same time it got inlined. At least with MinGW this made the symbol
 go away. While e.g. MSVC still exports it.
 
 Now I don't know the exact strategy pursured by QT_DEPRECATED but I assume
 that the function's symbol should not disappear from the 5.2 ABI? If so,
 I wonder whether removing the inline will already do the job.

Hi,

Thanks for spotting this issue.

That patch indeed removed a symbol. 

Removing inline is not enough. One need to put back the definition in the 
.cpp file.


Please fill a bug report. (or a patch :-))

-- 
Olivier

Woboq - Qt services and support - http://woboq.com - http://code.woboq.org
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development