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

Use cp -rp to copy tbb libs to avoid relinking every time running make #7155

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

cielavenir
Copy link
Contributor

Type

  • Bug fix (non-breaking change which fixes an issue): Fixes Open3D 0.19.0 "make install" causes relink #7152
  • New feature (non-breaking change which adds functionality). Resolves #
  • Breaking change (fix or feature that would cause existing functionality to not work as expected) Resolves #

Motivation and Context

cmake -E copy_directory copies the directory unconditionally without keeping timestamp. Then make thinks that libippc*_tl_tbb.a is updated and needs relinking libOpen3D.so.

In this MR we will use rsync -rut to avoid unnecessary updating.

Checklist:

  • I have run python util/check_style.py --apply to apply Open3D code style
    to my code.
  • This PR changes Open3D behavior or adds new functionality.
    • Both C++ (Doxygen) and Python (Sphinx / Google style) documentation is
      updated accordingly.
    • I have added or updated C++ and / or Python unit tests OR included test
      results
      (e.g. screenshots or numbers) here.
  • I will follow up and update the code if CI fails.
  • For fork PRs, I have selected Allow edits from maintainers.

Description

Copy link

update-docs bot commented Jan 31, 2025

Thanks for submitting this pull request! The maintainers of this repository would appreciate if you could update the CHANGELOG.md based on your changes.

@cielavenir
Copy link
Contributor Author

cielavenir commented Jan 31, 2025

oh... it is super-sad that Open3D build agent does not have rsync, I thought it should be standard package...

do you mind telling me how this PR can be improved?

[edit] yeah, so the CI passes on MacOS

@timohl
Copy link
Contributor

timohl commented Feb 18, 2025

Just a quick idea after a short glance through this PR:
Adding rsync to the dockerfile should solve this, right?
See:

# Dependencies: basic and python-build
RUN apt-get update && apt-get install -y \
git \
wget \
curl \
build-essential \
pkg-config \
zlib1g \
zlib1g-dev \
libssl-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
libncursesw5-dev \
xz-utils \
tk-dev \
libxml2-dev \
libxmlsec1-dev \
libffi-dev \
liblzma-dev \
&& if [ $BUILD_SYCL_MODULE = "ON" ]; then apt-get install -y intel-level-zero-gpu-raytracing ; fi \
&& rm -rf /var/lib/apt/lists/*

In the bottom you can also see how to install certain dependencies depending on build flags (in this case BUILD_SYCL_MODULE, but for your PR WITH_IPP)
There is also util/install_deps_ubuntu.sh which might have to include installing rsync.

Another question:
Does rsync also work on Windows?

@cielavenir
Copy link
Contributor Author

@timohl Thank you! Quick ideas are still welcomed!

As you points out, I'm not sure about the universal solutions on Windows.

For Ubuntu, to avoid rsync, I changed to cp -rp. It copies the file but it keeps the timestamp, so make will not complain still.

Miracly, Windows looks working as well. Is cp available on Windows? (There are too many dialects on Windows...)

@cielavenir
Copy link
Contributor Author

Ubuntu SYCL / ubuntu-sycl (OFF) (pull_request)

+ cp /open3d-ci-sycl.tar.xz /opt/mount
cp: error writing '/opt/mount/open3d-ci-sycl.tar.xz': No space left on device
Error: Process completed with exit code 1.

Do you know about this failure? It is not my fault

@timohl
Copy link
Contributor

timohl commented Feb 19, 2025

Ubuntu SYCL / ubuntu-sycl (OFF) (pull_request)

+ cp /open3d-ci-sycl.tar.xz /opt/mount
cp: error writing '/opt/mount/open3d-ci-sycl.tar.xz': No space left on device
Error: Process completed with exit code 1.

Do you know about this failure? It is not my fault

I have seen this error before.
Should be unrelated.

@cielavenir cielavenir changed the title Use rsync to copy tbb libs to avoid relinking every time running make Use cp -rp to copy tbb libs to avoid relinking every time running make Feb 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Open3D 0.19.0 "make install" causes relink
2 participants