zeroc-ice / ice

All-in-one solution for creating networked applications with RPC, pub/sub, server deployment, and more.
https://zeroc.com
GNU General Public License v2.0
2.01k stars 592 forks source link

Intermittent C++ make build failure #2124

Open externl opened 2 months ago

externl commented 2 months ago

I've been seeing this somewhat frequently recently. Maybe a parallel build issue? Doing a clean build fixes it (not sure when running make a second time.

/bin/sh: src/IceBox/generated/../Ice/BuiltinSequences.ice.d: No such file or directory
make[1]: *** [include/generated/IceBox/../Ice/BuiltinSequences.h] Error 1
make[1]: *** Waiting for unfinished jobs....
In file included from src/Ice/WSEndpoint.cpp:5:
In file included from src/Ice/WSEndpoint.h:8:
In file included from src/Ice/EndpointFactory.h:12:
include/Ice/Plugin.h:8:10: fatal error: 'Ice/BuiltinSequences.h' file not found
#include "Ice/BuiltinSequences.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/Ice/WSConnector.cpp:5:
In file included from src/Ice/WSConnector.h:10:
In file included from src/Ice/ProtocolInstance.h:9:
In file included from src/Ice/EndpointFactory.h:12:
include/Ice/Plugin.h:8:10: fatal error: 'Ice/BuiltinSequences.h' file not found
#include "Ice/BuiltinSequences.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/IceBox/Service.cpp:5:
In file included from include/IceBox/Service.h:9:
In file included from include/Ice/Ice.h:14:
include/Ice/Proxy.h:13:10: fatal error: 'Ice/BuiltinSequences.h' file not found
#include "Ice/BuiltinSequences.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[1]: *** [src/Ice/build/macosx/shared/pic/WSEndpoint.o] Error 1
1 error generated.
make[1]: *** [src/Ice/build/macosx/shared/pic/WSConnector.o] Error 1
1 error generated.
make[1]: *** [src/IceBox/build/macosx/shared/pic/IceBox/Service.o] Error 1
make: *** [all] Error 1
bernardnormier commented 2 months ago

On which platform did you get this issue?

externl commented 2 months ago

macOS

bernardnormier commented 3 weeks ago

I think it's a bug in our source-to-dependency gmake function that doesn't handle well the new relative path.

(where "dependency" means the .d file)

here source = ../Ice/BuiltinSequences.ice and we don't look for the .d file in the correct location.

bernardnormier commented 3 weeks ago

Unfortunately my attempted fix did not change anything:

Compiling [macosx-shared] src/IceBox/Service.cpp
Compiling ../slice/Glacier2/PermissionsVerifier.ice
/bin/sh: src/IceBox/generated/../Ice/BuiltinSequences.ice.d: No such file or directory
Compiling ../slice/Glacier2/Metrics.ice
Compiling ../slice/Glacier2/SSLInfo.ice
Compiling ../slice/Glacier2/../Ice/BuiltinSequences.ice
Compiling ../slice/Glacier2/Router.ice
/bin/sh: src/Glacier2Lib/generated/../Ice/BuiltinSequences.ice.d: No such file or directory
make: *** [include/generated/IceBox/../Ice/BuiltinSequences.h] Error 1
make: *** Waiting for unfinished jobs....
make: *** [include/generated/Glacier2/../Ice/BuiltinSequences.h] Error 1
In file included from src/Ice/OutgoingResponse.cpp:6:
include/Ice/LocalExceptions.h:8:10: fatal error: 'Ice/BuiltinSequences.h' file not found
#include "Ice/BuiltinSequences.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/IceBox/Service.cpp:5:
In file included from include/IceBox/Service.h:9:
In file included from include/Ice/Ice.h:15:
include/Ice/Proxy.h:13:10: fatal error: 'Ice/BuiltinSequences.h' file not found
#include "Ice/BuiltinSequences.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [src/Ice/build/macosx/shared/pic/OutgoingResponse.o] Error 1
1 error generated.
make: *** [src/IceBox/build/macosx/shared/pic/IceBox/Service.o] Error 1
pepone commented 3 weeks ago

next time this fails will be good to try "make -d -jXX" and see if we can figure out the issue from the debug output.