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 ci.yml - experiment with blanks in absolute path testing #3309

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

smoe
Copy link
Contributor

@smoe smoe commented Jan 31, 2025

Just curious.

@smoe smoe marked this pull request as draft January 31, 2025 14:18
@BsAtHome
Copy link
Contributor

I don't think we are there yet, even with all the patches in the pipeline.

An important test is to create "/home/path/dir with space/" and try to do a complete build in that subdirectory.

@BsAtHome
Copy link
Contributor

An important test is to create "/home/path/dir with space/" and try to do a complete build in that subdirectory.

With a base path /home/path/l in ux cnc:
...
Compiling libnml/inifile/inifile.cc
c++ -c -I. -Ilibnml/linklist -Iemc -Ilibnml/cms -Ilibnml/rcs -Ilibnml/inifile -Ilibnml/os_intf -Ilibnml/nml -Ilibnml/buffer -Ilibnml/posemath -Irtapi -Ihal -Iemc -Iemc/nml_intf -Iemc/kinematics -Iemc/tp -Iemc/motion -Iemc/ini -Iemc -Iemc/rs274ngc -Iemc/sai -Iemc/pythonplugin -Iemc/tooldata -Iemc -I/home/path/l in ux cnc/src/include -I/usr/include/python3.12 -I/usr/include/tirpc -Os -fwrapv -g -Wall -D_FORTIFY_SOURCE=2 -DULAPI -Werror=overloaded-virtual -g -O2 -std=gnu++20 -fPIC
-MP -MD -MF "objects/libnml/inifile/inifile.d" -MT "objects/libnml/inifile/inifile.o"
libnml/inifile/inifile.cc -o objects/libnml/inifile/inifile.o
c++: warning: in: linker input file unused because linking not done
c++: error: in: linker input file not found: No such file or directory
c++: warning: ux: linker input file unused because linking not done
c++: error: ux: linker input file not found: No such file or directory
c++: warning: cnc/src/include: linker input file unused because linking not done
c++: error: cnc/src/include: linker input file not found: No such file or directory
make: *** [Makefile:287: objects/libnml/inifile/inifile.o] Error 1

@smoe
Copy link
Contributor Author

smoe commented Jan 31, 2025

Looks like some work on LDFLAGS is required. The tests have performed fine, though. The default routines in CI are not creating sub directories, did not want to fiddle too much with it.

@BsAtHome
Copy link
Contributor

It fails on -I/home/path/l in ux cnc/src/include

@smoe
Copy link
Contributor Author

smoe commented Jan 31, 2025

;) Missed it.

smoe and others added 4 commits February 4, 2025 14:43
@smoe
Copy link
Contributor Author

smoe commented Feb 18, 2025

My little test now apparently works. I admit to be slightly surprised. Anyone up for suggestions on how to increase the level of difficulty wrt blanks in the build path?

@BsAtHome
Copy link
Contributor

My little test now apparently works. I admit to be slightly surprised. Anyone up for suggestions on how to increase the level of difficulty wrt blanks in the build path?

I think it would be a good idea to test with the setup in comment #3309 (comment) and (slowly) add fixes until it works properly (do a git clone of the main repo into a directory with spaces).

@smoe
Copy link
Contributor Author

smoe commented Feb 19, 2025

My little test now apparently works. I admit to be slightly surprised. Anyone up for suggestions on how to increase the level of difficulty wrt blanks in the build path?

I think it would be a good idea to test with the setup in comment #3309 (comment) and (slowly) add fixes until it works properly (do a git clone of the main repo into a directory with spaces).

But isn't exactly that what I have done in https://github.com/smoe/linuxcnc/blob/63c08892710fac2493ee2cc5f016a44793d22297/.github/workflows/ci.yml#L29-44 ?

Please kindly help me out with a PR against my branch.

@BsAtHome
Copy link
Contributor

CI is clearly not the same as doing it locally:

$ git clone https://github.com/smoe/linuxcnc.git "linuxcnc git smoe"
$ cd "linuxcnc git smoe"
$ git checkout patch-17
$ cd src
$ ./autogen.sh
$ ./configure --enable-non-distributable
$ make
...
Compiling libnml/inifile/inifile.cc
c++: warning: git: linker input file unused because linking not done
c++: error: git: linker input file not found: No such file or directory
c++: warning: smoe/src/include: linker input file unused because linking not done
c++: error: smoe/src/include: linker input file not found: No such file or directory
make: *** [Makefile:287: objects/libnml/inifile/inifile.o] Error 1

Caused by an include to g++ (bold part):
c++ -c -I. -Ilibnml/linklist -Iemc -Ilibnml/cms -Ilibnml/rcs -Ilibnml/inifile -Ilibnml/os_intf -Ilibnml/nml -Ilibnml/buffer -Ilibnml/posemath -Irtapi -Ihal -Iemc -Iemc/nml_intf -Iemc/kinematics -Iemc/tp -Iemc/motion -Iemc/ini -Iemc -Iemc/rs274ngc -Iemc/sai -Iemc/pythonplugin -Iemc/tooldata -Iemc -I/home/me/lcnc/linuxcnc git smoe/src/include -I/usr/include/python3.12 -I/usr/include/tirpc -Os -fwrapv -g -Wall -D_FORTIFY_SOURCE=2 -DULAPI -Werror=overloaded-virtual -g -O2 -std=gnu++20 -fPIC \
-MP -MD -MF "objects/libnml/inifile/inifile.d" -MT "objects/libnml/inifile/inifile.o" \
libnml/inifile/inifile.cc -o objects/libnml/inifile/inifile.o

It fails on the (full) expansion of paths in the Makefile (maybe imported from Makefile.inc). This is probably not the only place where this expansion will be a problem. Many files and configurations need to be checked.

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.

None yet

2 participants