#jsmess 2017-07-17,Mon

↑back Search

Time Nickname Message
01:12 🔗 john__ has joined #jsmess
01:13 🔗 john__ is now known as JohnTalen
08:03 🔗 JohnTalen stumped.
08:04 🔗 JohnTalen changed this particular 'symbol multiply defined'. a number of times. shows up again. only defined one (i made sure of this). Only 11 references to it in the entire project.
08:05 🔗 db48x maybe I can help
08:07 🔗 db48x is there a git repository that I can clone?
08:07 🔗 JohnTalen not yet no.
08:08 🔗 JohnTalen I'll give it some more time.
08:08 🔗 JohnTalen I'm sure I"m missing something.
08:08 🔗 db48x well
08:08 🔗 db48x ok, show me the references
08:08 🔗 db48x grep -r the_symbol
08:08 🔗 db48x and the error message
08:09 🔗 JohnTalen https://pastebin.com/LrRMdYSs
08:09 🔗 JohnTalen I don't think you'll be able to determine given my 'evidence'.
08:10 🔗 JohnTalen It's clearly on some other symbolic level.
08:10 🔗 db48x that does seem pretty straight-forward
08:10 🔗 db48x what about the full error message?
08:10 🔗 JohnTalen https://pastebin.com/8T3pMga2
08:11 🔗 JohnTalen shit
08:11 🔗 JohnTalen it changed!
08:11 🔗 JohnTalen lol.
08:11 🔗 db48x heh
08:11 🔗 JohnTalen Let's call this process not magic, but lessens Psychoticness. :)
08:12 🔗 JohnTalen but here is the thing.
08:12 🔗 JohnTalen I did in fact change the reference in c64memsc.c.
08:12 🔗 db48x what did you change it to?
08:12 🔗 JohnTalen Even though it's just an assignment it sees it as a definition.
08:12 🔗 JohnTalen It's outside of any C++ objects that may exist.
08:12 🔗 JohnTalen But the definition i put in vice.h.
08:13 🔗 JohnTalen i just uncommented it.
08:13 🔗 JohnTalen this is never ending.
08:13 🔗 JohnTalen I'm uncommented all the confounded empty funcitons that return 0, -1 or have nothing but a shell.
08:13 🔗 db48x can you show me the section of c64memsc.c containing that line?
08:14 🔗 JohnTalen https://pastebin.com/EQyitpch
08:15 🔗 JohnTalen As you can see it's an assignment, not a definition.
08:15 🔗 db48x well, with the JKL there it does look like one
08:15 🔗 JohnTalen Although At some point all thses references were definitions.
08:15 🔗 JohnTalen look like one 'what'?
08:16 🔗 db48x it does look like a definition, with the JKL
08:16 🔗 db48x but I guess that's the author's initials or somesuch
08:16 🔗 JohnTalen JKL is my initials.. it goes with the uncomment.
08:16 🔗 JohnTalen John Kenneth Lutz
08:16 🔗 db48x ok
08:17 🔗 JohnTalen well, at least i got past it. But this is not the right way to do it.
08:19 🔗 db48x would it be easier to disable parts of the emulator?
08:19 🔗 JohnTalen than what?
08:19 🔗 db48x (I don't know what the distribution of problems you're getting looks like, or how the code is structured)
08:20 🔗 db48x well, if one particular machine type that it could emulate is broken or incomplete, disabling it so that you don't have to compile it seems like it would be an option
08:20 🔗 JohnTalen it's mostly 'symbol multiply defined' based on unfinished or incorrect code that gets past gcc.
08:22 🔗 JohnTalen btw, Billy Zane has a definite presence.
08:23 🔗 db48x the actor?
08:23 🔗 JohnTalen yes.
08:23 🔗 JohnTalen <light tension breaker>
08:23 🔗 JohnTalen had to say it.
08:23 🔗 JohnTalen This code has me going all mechnical. :)
08:24 🔗 JohnTalen yeah i'm leaving a trail of JKLs so when I do this again, i just do a diff.
08:25 🔗 JohnTalen i'm doing this on an old version of vice.
08:25 🔗 db48x hmm. why the old version?
08:25 🔗 JohnTalen Of course I have to do a diff on the actual projects and guide the code along.
08:26 🔗 JohnTalen because it's based on a project that uses this old version. These goddamned multiply defined variables are all over the place though. tedious. But I'll get there.
08:27 🔗 db48x oh, Vice.js is based on an older version of Vice
08:29 🔗 JohnTalen yes, indeed.
08:30 🔗 JohnTalen it's unfortunate, and questionable why they didn't give the actual project up to github.com.
08:31 🔗 JohnTalen it'd be nice to have a flag for emcc to just give all errors and not just stop at one. But that would be what we call normal compiling. And it's never ever that way, is it? lol.
08:32 🔗 db48x :)
10:55 🔗 JohnTalen Perhaps emcc thinks that a global assignment is a declaration. It certainly acts like it from the linking process.
11:04 🔗 db48x oh
11:05 🔗 db48x vice.h is included by all of those .c files, right? (c128.c, c64mem.c, etc)
11:09 🔗 db48x JohnTalen: make vice.h have "extern int machine_c64_variety;"
11:09 🔗 db48x this declares that there is a global called machine_c64_variety, and that it's an int, without actually defining it
11:10 🔗 db48x then, in a single cpp file make a global declaration "int machine_c64_variety;"
11:10 🔗 db48x that way the linker sees a bunch of .o files that refer to the single declaration of machine_c64_variety, and will be able to do it's job correctly
11:29 🔗 JohnTalen the extern might be a good idea, only because of pet peeves of emcc,otherwise theoretically it shouldn't make a difference because int machine_c64_variety is defined in a header files which is being directly included.
11:29 🔗 JohnTalen let me give that a try.
11:32 🔗 db48x well
11:32 🔗 db48x gcc will complain about this as well
11:35 🔗 JohnTalen yeah, well, the actual code compiles and links fine in gcc.
11:36 🔗 JohnTalen I actually had all the definitions set to extern 2 weeks ago.
11:37 🔗 JohnTalen And yes,error: Linking globals named 'machine_c64_variety': symbol multiply defined!
11:37 🔗 JohnTalen if I change to extern machine_c64_variety = VICE_MACHINE_C64SC;
11:38 🔗 JohnTalen so I will change it back to the way I had it.
11:39 🔗 JohnTalen the compiler would've given an error if the extern wasn't there(if it needed it).
12:09 🔗 JohnTalen l8r.
12:09 🔗 JohnTalen -=*> L8r Daze <*=-
12:10 🔗 JohnTalen has quit IRC (leaving)
14:26 🔗 devesine has joined #jsmess
15:04 🔗 Arkiver2 is now known as arkiver
15:26 🔗 db48x` has joined #jsmess
15:27 🔗 db48x has quit IRC (Read error: Operation timed out)
16:24 🔗 SketchCow m/win 14
18:17 🔗 bwn has quit IRC (Read error: Operation timed out)
18:41 🔗 bwn has joined #jsmess
19:58 🔗 gsathya` has quit IRC (Read error: Operation timed out)
19:58 🔗 gsathya` has joined #jsmess
22:41 🔗 i0npulse has quit IRC (Ping timeout: 268 seconds)
22:42 🔗 i0npulse has joined #jsmess

irclogger-viewer