HomeWildfire Games

Rename JSInterface_GUITypes to JSInterface_GUISize, refs rP22531, rP22534.

Description

Rename JSInterface_GUITypes to JSInterface_GUISize, refs rP22531, rP22534.
Rename init to RegisterScriptClass.

Differential Revision: https://code.wildfiregames.com/D2339
Tested on: clang 8.0.1., Jenkins/vs2015

Event Timeline

Linking pyrogenesis
../../../binaries/system/libgui.a(JSInterface_GUISize.o): In function `JSI_GUISize::construct(JSContext*, unsigned int, JS::Value*)':
/home/,,,/0ad/build/workspaces/gcc/../../../source/gui/scripting/JSInterface_GUISize.cpp:45: multiple definition of `JSI_GUISize::construct(JSContext*, unsigned int, JS::Value*)'
../../../binaries/system/libgui.a(JSInterface_GUITypes.o):/home/,,,/0ad/build/workspaces/gcc/../../../source/gui/scripting/JSInterface_GUITypes.cpp:40: first defined here
../../../binaries/system/libgui.a(JSInterface_GUISize.o):(.data.rel.local+0x0): multiple definition of `JSI_GUISize::JSI_methods'
../../../binaries/system/libgui.a(JSInterface_GUITypes.o):(.data.rel.local+0x0): first defined here
../../../binaries/system/libgui.a(JSInterface_GUISize.o):(.data.rel.local+0x60): multiple definition of `JSI_GUISize::JSI_class'
../../../binaries/system/libgui.a(JSInterface_GUITypes.o):(.data.rel.local+0x60): first defined here
../../../binaries/system/libgui.a(JSInterface_GUISize.o): In function `JSI_GUISize::toString(JSContext*, unsigned int, JS::Value*)':
/home/,,,/0ad/build/workspaces/gcc/../../../source/gui/scripting/JSInterface_GUISize.cpp:101: multiple definition of `JSI_GUISize::toString(JSContext*, unsigned int, JS::Value*)'
../../../binaries/system/libgui.a(JSInterface_GUITypes.o):/home/,,,/0ad/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' failed
make[1]: *** [../../../binaries/system/pyrogenesis] Error 1
Makefile:68: recipe for target 'pyrogenesis' failed
make: *** [pyrogenesis] Error 2

cd gcc;
make clean;

Sorry to bother you with this. Doesn't clean-workspaces do that also?

Sorry to bother you with this.

Np, it would have been more bothersome to revert the patch than to commit it, as one has to perform that cleaning each time one applies that patch :-/

Doesn't clean-workspaces do that also?

Clean workspaces also kills the shared libs like spidermonkey and fcollada. There is a --preserve-libs or similar.
Not sure if it comes out the sam (it costs some time to test by the nature of having to compile everything again when testing, so I never went to the bottom of that)

It seems like it doesn't work to do only clean-workspaces sometimes (since that *is* what I had done the first time) so it is good to know now :)

It seems like it doesn't work to do only clean-workspaces sometimes (since that *is* what I had done the first time) so it is good to know now :)

Well that is a small script, it sounds like it misses deleting the path that the compiler complained about:

echo "Cleaning build output..."

# Remove workspaces/gcc if present
rm -rf ./gcc
# Remove workspaces/codeblocks if present
rm -rf ./codeblocks
# Remove workspaces/xcode3 if present
rm -rf ./xcode3
# Remove workspaces/xcode4 if present
rm -rf ./xcode4

echo
echo "Done. Try running update-workspaces.sh again now."

Ive seen this years ago already, and it seems Jenkins is also affected by this, assuming that clean-workspaces.sh does the job:
https://jenkins.wildfiregames.com/job/docker-svn/485/console

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

So it's actually a bug that someone should find interest in and like fix.

Stan added subscribers: Itms, Stan.Sep 30 2019, 4:21 PM

I guess @Itms could add it to his script when he has some time :)