-
-
Notifications
You must be signed in to change notification settings - Fork 223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
building 3.0.12 using -std=c++17 #8395
Comments
ICU is a dynamic library and has only C interface. Even from the sources included into the Firebird tree it is built completely separately. Why did you decide to modify old Firebird build to comply with new ICU rules? |
According to its authors, ICU requires C++17 since version 75. The Debian package firebird3.0 uses the system-wide ICU library. When building the package from source and at run-time. When the system-wide ICU library is updated, the Firebird packages still need to be buildable so that bugs can be fixed and new builds released. Debian is in the process of upgrading ICU from 72 to 76, and firebird3.0 packages stand in the way. I am looking for a way to make this possible without removing firebird3.0 from the next stable release. |
AFAIU, it is ICU code that requires C++17. Firebird is using ICU binaries. Binaries has no such requirement so Firebird also doesn't require C++17 to use ICU. |
Will you will convert any C program using ICU to C++17? No. |
On 1/16/25 14:49, Adriano dos Santos Fernandes wrote:
Will you will convert any C program using ICU to C++17? No.
Firebird uses ICU from its C interface only, so this should not be a
requirement.
Backported to fb3 my yesterday trivial fix for it.
|
Thanks, @AlexPeshkoff, I will test with 37c1bca applied and report back. |
That still failed, but adding |
Somewhy I'm not too much surprised that they've changed controlling define name. Can you prepare PR? |
Sure. For which branch(es)? |
Hi,
I am having trouble building the Debian package of Firebird 3.0.12.33787 with
-std=c++17
. The reason I need to use C++17 is that ICU v76.1 requires it and is expected to be part of the next stable release (no timeline yet).First I tried patching various prefixes to pass
-std=c++17
(patch). Then I had to patch outthrow(...)
declarations since these are not allowed in C++17 (patch).Now the build proceeds until the just-built
isql
andgfix
are invoked and they fail with what looks like memory corruption/thread synchronization errors.Full build log with
--enable-debug
and stack traces of the failures is available here.Thanks for any ideas.
The text was updated successfully, but these errors were encountered: