Skip to content
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

Update boost to version 1.64 + minor enhancements #194

Merged
merged 18 commits into from Jan 14, 2024

Conversation

pgiffuni
Copy link
Contributor

Add some headers to the existing 1.55 boost internal package.

Make cleaner usage of boost's sinc_pi functionality. There is no need to limit the policy.

We normally don't install all the headers availabe in boost. There is an
interesting set of functionalities like multiprecision and odeint that while we
are not using, but would be interesting to have available.

This is done to ease future boost updates but also in the hopes of making it
possible to use this functionality in a near future.

No functional change expected.
Modern processors should handle this without any trouble.
@pgiffuni
Copy link
Contributor Author

pgiffuni commented Dec 23, 2023

Sorry for the PR mess.
The new target is version 1.64: it builds fine on FreeBSD. It has sufficient functionality to justify the update.

Other than the updates and bug fixes, this version works really well with older
compilers and systems and is the last one to include TR1: which we use as a last
resort for really old systems lacking standard C++ compliance.

https://www.boost.org/users/history/version_1_64_0.html
@Pilot-Pirx
Copy link
Member

Builds on Windows with 1.55.
Breaks with 1.64 in module sal:

Building module sal

Entering /cygdrive/c/Source/openoffice/main/sal/inc

Entering /cygdrive/c/Source/openoffice/main/sal/osl/w32

Making: all_cpposl.dpslo
Making: all_cpposl.dpobj

Entering /cygdrive/c/Source/openoffice/main/sal/textenc

Making: all_textenc.dpslo
Making: all_textenc.dpobj

Entering /cygdrive/c/Source/openoffice/main/sal/rtl/source

Making: all_cpprtl.dpslo
Making: all_cpprtl.dpobj
--- ALWAYSDBGFILES ---
--- ALWAYSDBGFILES OVER ---

Entering /cygdrive/c/Source/openoffice/main/sal/systools/win32/uwinapi

Entering /cygdrive/c/Source/openoffice/main/sal/systools/win32/onlineupdate

Entering /cygdrive/c/Source/openoffice/main/sal/osl/all

Compiling: sal/osl/all/debugbase.cxx
C:/Source/openoffice/main/solver/450/wntmsci12.pro/inc\boost/ref.hpp(15) : fatal error C1083: Cannot open include file: 'boost/core/ref.hpp': No such file or directory
dmake: Error code 2, while making '../../wntmsci12.pro/obj/debugbase.obj'

1 module(s):
sal
need(s) to be rebuilt

Reason(s):

ERROR: error 65280 occurred while making /cygdrive/c/Source/openoffice/main/sal/osl/all

When you have fixed the errors in that module you can resume the build by running:

    build --from sal

@pgiffuni
Copy link
Contributor Author

The latest version should work.

@pgiffuni pgiffuni changed the title Enhance a bit our current boost usage Update boost to version 1.64 Dec 26, 2023
@Pilot-Pirx
Copy link
Member

I am now able to build further on Windows, but I get a lot of these warnings and the build stops at some point:

VirtualBox_Windows 10 AOO-Build_31_12_2023_10_49_21

@pgiffuni
Copy link
Contributor Author

pgiffuni commented Dec 31, 2023

Bummer! This version of boost was tested was tested on our supported compiler upstream so it might be some local build issue.
Please merge the 1.55 header updates. I won't have time to work on further updates to boost but I'll keep the patch for playing with 1.64 in the future.

@pgiffuni pgiffuni changed the title Update boost to version 1.64 Enhance a bit our current boost usage Dec 31, 2023
@Pilot-Pirx
Copy link
Member

I will try to do that.
For the moment I will change this to a Draft.

@Pilot-Pirx Pilot-Pirx marked this pull request as draft December 31, 2023 13:42
@pgiffuni
Copy link
Contributor Author

pgiffuni commented Dec 31, 2023

Looking at your d.lst changes, there is a dll and respective /detail directory which may be needed for windows. Those didn't exist in 1.55

@Pilot-Pirx
Copy link
Member

I will try that!
Next year... ;-)

@pgiffuni

This comment was marked as off-topic.

@Pilot-Pirx
Copy link
Member

Builds on Windows now:
https://www.dropbox.com/scl/fi/5ooqaxvdec34l30v99xmo/Apache_OpenOffice_4.5.0_Win_x86_install_en-US_boost.exe?rlkey=k5r4bwmxrvzlzraypu42jod2c&dl=0

@Pilot-Pirx Pilot-Pirx marked this pull request as ready for review January 7, 2024 04:56
@Pilot-Pirx Pilot-Pirx requested a review from jimjag January 7, 2024 04:56
@Pilot-Pirx
Copy link
Member

@jimjag Can you please try to build on macOS/Linux?
I think this would be nice for AOO 4.2.0-Dev5.

@Pilot-Pirx Pilot-Pirx requested a review from ardovm January 7, 2024 12:41
@pgiffuni
Copy link
Contributor Author

@Pilot-Pirx Thanks so much for finishing the bits for Windows.

Since it's getting so long to merge(!), let me provide some motivation:

We currently make limited use of boost, so the boost update will provide some fixes and performance enhancements, but perhaps more important is that it provides functionality that modern languages would regularly provide and that are currently unavailable in our older C++ environment.
AOO is about 80% C++ code and it's currently stuck in an older version of that language supported by a MSVC 2008.
Keeping a too old version of boost will make it increasingly difficult to compile AOO on newer compilers; putting up a too recent version of boost will make it imposible to build AOO with the older compilers. The 1.64 version from 2017 seems to be in the right place for all the supported platforms/compilers.

@Pilot-Pirx
Copy link
Member

Hi Pedro,

I am highly motivated to merge this PR but I didn't want to do it without being sure that it builds on macOS and Linux.
We definitely want to have this in AOO 4.2.0 Developer Release 5 (hopefully end of the month).

Since it builds on BSD how high is the probability that it also builds on macOS?

@pgiffuni
Copy link
Contributor Author

pgiffuni commented Jan 14, 2024

Since it builds on BSD how high is the probability that it also builds on macOS?

Very high .. FreeBSD and macOS share most of libc and FreeBSD adopted natively LLVM as well, but there are sufficient differences that one can't be 100% sure.

The one thing that gives us relative confidence is that upstream tested all the OS/compiler combinations we are interested in:

Linux:

  • Clang: 3.0, 3.8.1, 3.9.1
  • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0

OS X:

  • Apple Clang: 7.0.2

Windows:

  • Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0

FreeBSD:

  • Clang: 3.8

@Pilot-Pirx
Copy link
Member

Thanks for the info!

I can merge it, although it still is a "shot in the dark" for me.

For Linux I can see the results from our buildbot (trunk):
https://nightlies.apache.org/openoffice/install/linux64/?C=M;O=D

If successful, I would cherry-pick for AOO42X.

@jimjag What do you think?

@pgiffuni
Copy link
Contributor Author

pgiffuni commented Jan 14, 2024

Can you cherrypick the 1.55 updates and squash the 1.64 update in a different commit?
I did try to make it easier for you guys to revert in case something went really wrong although it seems it won't be the case.

@Pilot-Pirx
Copy link
Member

Yes, I can "Squash and merge" it to trunk.
In fact I will do it now. If something goes wrong it is just one commit to revert...

If the Linux buildbot is successful, I will cherry-pick it to AOO42X tomorrow.

@Pilot-Pirx Pilot-Pirx merged commit fa664a2 into apache:trunk Jan 14, 2024
asfgit pushed a commit that referenced this pull request Jan 14, 2024
@Pilot-Pirx
Copy link
Member

Buildbot does not build:

1 module(s):
sal
need(s) to be rebuilt

Reason(s):

ERROR: error 65280 occurred while making /home/buildslave/slave/openoffice-linux64-nightly/build/main/sal/rtl/source

When you have fixed the errors in that module you can resume the build by running:

build --from sal

@Pilot-Pirx
Copy link
Member

Pilot-Pirx commented Jan 14, 2024

Not being a developer I will now step back and let others take over...

Feel free to reopen this PR.

@pgiffuni pgiffuni changed the title Enhance a bit our current boost usage Update boost to version 1.64 + minor enhancements Jan 23, 2024
@pgiffuni
Copy link
Contributor Author

I wish the 1.55 changes had been merged separately. The sinc_pi change was useful despite the version.

In any case it appears that the boost build per-se didn't fail but that the built left missing headers unistalled that are required by the linux port. I can't really follow up at this time as I don't have a linux box available to test.

@Pilot-Pirx
Copy link
Member

Unfortunately GitHub does not seem to allow to re-open a PR once it was merged...

If you don't mind (and my time permits) I would like to do "remakes" of your original PR.
I think the sinc_pi change can be merged quickly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants