Opened 7 years ago

Last modified 5 years ago

#4496 reopened defect

clean-workspaces.sh fails for renamed files (vs make clean)

Reported by: elexis Owned by:
Priority: Must Have Milestone: Backlog
Component: Build & Packages Keywords:
Cc: echotangoecho, Itms Patch:

Description (last modified by elexis)

When updating to r19165, one has to call "make clean" in build/workspaces/gcc/, otherwise the old turnmanager objects still exist and prevent a successful build (Many people couldn't build without this information).

clean-workspaces.sh is everything that should be required to start a fresh build and should call "make clean" before removing the gcc directory.

Change History (9)

comment:1 by leper, 7 years ago

Many people seem unable to read the BuildInstructions. I'd close this as worksforme.

comment:2 by elexis, 7 years ago

Yes, but it's not only playtesters:

2017-01-24-QuakeNet-#0ad-dev.log:15:29 < cc_> I tried clean-workspaces.sh but not make clean, I thought the first implied the second

and it wouldn't hurt to add it, no?

comment:3 by leper, 7 years ago

It would do things the script name does not imply. And people not reading the build instructions when building fails is not something I consider worth supporting.

comment:4 by elexis, 7 years ago

Adding a new script clean-everything.sh neither, right?

comment:5 by leper, 7 years ago

Resolution: worksforme
Status: newclosed

Nope, if you want you can clarify or add another block of text (maybe to the known issues section?) to the BuildInstructions.

comment:6 by leper, 7 years ago

Milestone: Backlog

comment:7 by elexis, 5 years ago

Description: modified (diff)
Milestone: Backlog

Jenkins is also affected by this, for example following the file rename in Phab:rP23018

Linking pyrogenesis
../../../binaries/system/libgui_dbg.a(JSInterface_GUISize.o):(.data.rel.local+0x0): multiple definition of `JSI_GUISize::JSI_class'
../../../binaries/system/libgui_dbg.a(JSInterface_GUITypes.o):(.data.rel.local+0x0): first defined here
../../../binaries/system/libgui_dbg.a(JSInterface_GUISize.o): In function `JSI_GUISize::construct(JSContext*, unsigned int, JS::Value*)':
/zpool0/gcc6/build/workspaces/gcc/../../../source/gui/scripting/JSInterface_GUISize.cpp:45: multiple definition of `JSI_GUISize::construct(JSContext*, unsigned int, JS::Value*)'
../../../binaries/system/libgui_dbg.a(JSInterface_GUITypes.o):/zpool0/gcc6/build/workspaces/gcc/../../../source/gui/scripting/JSInterface_GUITypes.cpp:40: first defined here
../../../binaries/system/libgui_dbg.a(JSInterface_GUISize.o): In function `OBJECT_TO_JSVAL_IMPL':
/zpool0/gcc6/build/workspaces/gcc/../../../libraries/source/spidermonkey/include-unix-debug/js/Value.h:860: multiple definition of `JSI_GUISize::JSI_methods'
../../../binaries/system/libgui_dbg.a(JSInterface_GUITypes.o):/zpool0/gcc6/build/workspaces/gcc/../../../libraries/source/spidermonkey/include-unix-debug/js/Value.h:860: first defined here
../../../binaries/system/libgui_dbg.a(JSInterface_GUISize.o): In function `JSI_GUISize::toString(JSContext*, unsigned int, JS::Value*)':
/zpool0/gcc6/build/workspaces/gcc/../../../source/gui/scripting/JSInterface_GUISize.cpp:101: multiple definition of `JSI_GUISize::toString(JSContext*, unsigned int, JS::Value*)'
../../../binaries/system/libgui_dbg.a(JSInterface_GUITypes.o):/zpool0/gcc6/build/workspaces/gcc/../../../source/gui/scripting/JSInterface_GUITypes.cpp:96: first defined here
collect2: error: ld returned 1 exit status
pyrogenesis.make:80: recipe for target '../../../binaries/system/pyrogenesis_dbg' failed
make[1]: *** [../../../binaries/system/pyrogenesis_dbg] Error 1
Makefile:68: recipe for target 'pyrogenesis' failed
make: *** [pyrogenesis] Error 2

Another example was the rename in Phab:rP22801:

2019-08/2019-08-16-QuakeNet-#0ad-dev.log:20:53 < minohaka> 0ad/build/workspaces/gcc/../../../source/gui/GUIutil.h:211: undefined reference to `bool │Generated ../workspaces/gcc/atlas.make... __ParseString<CSize>(CStrW const&, CSize&)'
2019-08/2019-08-16-QuakeNet-#0ad-dev.log:20:53 < minohaka> I'm getting this error when I try to build on linux
2019-08/2019-08-16-QuakeNet-#0ad-dev.log:20:55 < minohaka> I ran clean-workspaces.sh
2019-08/2019-08-16-QuakeNet-#0ad-dev.log:20:55 < minohaka> trying again...
2019-08/2019-08-16-QuakeNet-#0ad-dev.log:20:57 < minohaka> that did the trick thanks
2019-08/2019-08-16-QuakeNet-#0ad-dev.log:21:38 < minohaka> make clean worked

TODO for this ticket should be to (1) fix Jenkins and (2) provide reasoning further than nope as to why changing clean-workspaces.sh to avoid the renamed file issue is impossible or unpreferable (or change the file in any way that achieves that if that is possible and preferable.)

Last edited 5 years ago by elexis (previous) (diff)

comment:8 by elexis, 5 years ago

Resolution: worksforme
Status: closedreopened

comment:9 by elexis, 5 years ago

Summary: clean-workspaces.sh should call make cleanclean-workspaces.sh fails for renamed files (vs make clean)
Note: See TracTickets for help on using tickets.