News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Linux GUI programming

Started by DarkWolf, January 10, 2011, 09:20:20 PM

Previous topic - Next topic

DarkWolf

I think I still have 2.14 not sure because the linux version still reports itself as 2.13

Quote
that's a tricky one, but you can probably keep it out of the library since the stdlib has a system command now (but it works a bit differently than mine).
Just the os2_sysexec file or all the os2 files; which relates to your version of the system command.

I am having power issues with a local snow storm so I'll look at your website later.
--
Where's there's smoke, There are mirrors.
Give me Free as in Freedom not Speech or Beer.
Thank You and Welcome to the Internet.

DarkWolf

Quote from: Sevag.K on January 24, 2011, 09:52:48 PM
elitism.
Quote
i wanted to get a proof of theory out asap and planned on writing the window control with the button widgets later.  but like i said, i got frustrated trying to find help documents on how to do all that stuff so i just gave up and moved on to greener pastures...windows.

Yes, I know.
They cry community, then don't want to play nice.  (See my posts in --hutch's wikipedia thread)
The thing is the user in question in the linux newsgroup was normally helpful in the past. Guess I hit the right button this time.

Documentation is one thing that Linux devs do not do well.
--
Where's there's smoke, There are mirrors.
Give me Free as in Freedom not Speech or Beer.
Thank You and Welcome to the Internet.

Sevag.K

Quote from: DarkWolf on January 27, 2011, 04:31:51 AM
I think I still have 2.14 not sure because the linux version still reports itself as 2.13

i just uploaded v1.72.04
you will need hla v2.15+ to build it.

Quote
Just the os2_sysexec file or all the os2 files; which relates to your version of the system command.

only os2_sysexec relates to my version of system command.

though you may consider keeping it in and testing if the changes i made work, as far as the last time i built the library on linux myself (over a year ago), my os2.sysexec had better path-finding code (on linux) than the hlalib os.system version.  that may or may not have changed since.

the other function in my os2 namespace, getmodulepath does not have an hlalib counterpart.


DarkWolf

(Long ass post; bear with me :P )

Makefile in use


hidelib_dep= src/*.hla
hla_lib= /media/data/Programming/asm/hlalib

hidelib.a: $(hidelib_dep)
date -u +%F_%T >> log/build.log
hla -vc src/*.hla >> log/build.log
ar -qvc hidelib.a src/*.o >> log/build.log
ar -vs hidelib.a >> log/build.log

install:
cp hidelib.a $(hla_lib)/hide

# EOL




Assembling "src/os2_sysexec.hla" to "src/os2_sysexec.o"
Error in file "src/os2_sysexec.hla" at line 117 [errid:77784/hlaparse.bsn]:
Expected ':', encountered '('
(Possible undefined ID '.exists').
Near: << ( >>

HLAPARSE assembly failed with 1 errors
fo.hla"]


src/os2_sysexec.hla; line 117


// file not found.  look for PATH environment.
str.talloc (5000);
mov (eax, pathVar);
str.talloc (2000);
mov (eax, binName);

str.cpy (cmds[0], binName);
filesys.exists (binName);     //<---   you originally had fileio.exists (stdlib has no function I can find)
cmp (eax, true);
je _runit;


(even after correcting it still does not compile on linux, since you said that os2_sysexec.hla can be ignored I will but I thought to still tell you of the error)

Oddly linux hla still calls ld even though I specified -vc options:


$ make hidelib.a >> log/build.log
ld: warning: cannot find entry symbol _start; defaulting to 0000000008048074
src/env2_envunit.o: In function `ENV2_GETENVSTRINGS':
(.text+0x1): undefined reference to `_envp__hla_'
src/env2_envunit.o: In function `ENV2_GET':
(.text+0x2b): undefined reference to `_envp__hla_'
src/env2_envunit.o: In function `endif__hla_806':
(.text+0xe5): undefined reference to `_envp__hla_'
src/env2_envunit.o: In function `false__hla_815':
(.text+0x19e): undefined reference to `_envp__hla_'
src/env2_envunit.o: In function `false__hla_817':
(.text+0x1be): undefined reference to `_envp__hla_'
src/env2_envunit.o:(.text+0x1e5): more undefined references to `_envp__hla_' follow
/media/data/Programming/asm/hlalib/hlalib.a(ex_buildexcepts.o): In function `BuildExcepts__hla_':
(.text+0x1): undefined reference to `InstallSignals__hla_'
/media/data/Programming/asm/hlalib/hlalib.a(ex_buildexcepts.o): In function `BuildExcepts__hla_':
(.text+0x7): undefined reference to `DfltExHndlr__hla_'
/media/data/Programming/asm/hlalib/hlalib.a(ex_buildexcepts.o): In function `MainPgmCoroutineVMT__hla_80':
(.text+0x28): undefined reference to `QuitMain__hla_'
ar: no operation specified
make: *** [hidelib.a] Error 1


aside from src/os2_sysexec this is the hidelib.a listing after compile


a - src/class_baselist_node.o
a - src/class_baselist.o
a - src/class_baselist_utils.o
a - src/class_buf_bof.o
a - src/class_buf_delete.o
a - src/class_buf_eof.o
a - src/class_buf_eq.o
a - src/class_bufferbase.o
a - src/class_buffer_block.o
a - src/class_buffer_cmp.o
a - src/class_buffer_cursor.o
a - src/class_buffer_del.o
a - src/class_buffer_extract.o
a - src/class_buffer_info.o
a - src/class_buffer_insert.o
a - src/class_buffer_line.o
a - src/class_buffer_lineword.o
a - src/class_buffer_match.o
a - src/class_buffer_misc.o
a - src/class_buffer.o
a - src/class_buffer_out.o
a - src/class_buffer_read.o
a - src/class_buffer_replace.o
a - src/class_buffer_search.o
a - src/class_buffer_searchr.o
a - src/class_buffer_token.o
a - src/class_buf_getindex.o
a - src/class_buf_ieq.o
a - src/class_buf_iseof.o
a - src/class_buf_left.o
a - src/class_buf_moveto.o
a - src/class_buf.o
a - src/class_buf_putb.o
a - src/class_buf_putbuffer.o
a - src/class_buf_putd.o
a - src/class_buf_putfile.o
a - src/class_buf_putl.o
a - src/class_buf_putq.o
a - src/class_buf_puts.o
a - src/class_buf_putw.o
a - src/class_buf_right.o
a - src/class_buf_sub.o
a - src/class_buf_substring.o
a - src/class_buf_write.o
a - src/class_clone.o
a - src/class_config_bool.o
a - src/class_config_cpysec.o
a - src/class_config_del.o
a - src/class_config_hex.o
a - src/class_config_int.o
a - src/class_config_item.o
a - src/class_config_itemtokens.o
a - src/class_config.o
a - src/class_config_real.o
a - src/class_config_rename.o
a - src/class_config_sections.o
a - src/class_config_strings.o
a - src/class_config_uns.o
a - src/class_flist_find.o
a - src/class_flist_funcs.o
a - src/class_flist.o
a - src/class_flist_remove.o
a - src/class_list_find.o
a - src/class_list.o
a - src/class_list_set.o
a - src/class_stack.o
a - src/class_strbuffer_get.o
a - src/class_strbuffer_info.o
a - src/class_strbuffer.o
a - src/class_strbuffer_put.o
a - src/env2_envunit.o
a - src/hide_data.o
a - src/hide_info.o
a - src/hide_putmem.o
a - src/hide_putn.o
a - src/hide_putz.o
a - src/hide_stricmp.o
a - src/mem2_size.o
a - src/os2_getmodulepath.o
a - src/scan_extract.o
a - src/scan_findc.o
a - src/scan_find.o
a - src/scan_ifind.o
a - src/scan_imatch.o
a - src/scan_imatchword.o
a - src/scan_irfind.o
a - src/scan_lines.o
a - src/scan_match.o
a - src/scan_matchword.o
a - src/scan_pfind.o
a - src/scan_rfind.o
a - src/scan_skipalphanum.o
a - src/scan_skipws.o
a - src/scan_tokens.o


test apps (okay you warned they were out of date in the source but I thought to give them a try)


Error in file "hidelibtest.hla" at line 61 [errid:81732/hlaparse.bsn]:
Error in file "hidelibtest.hla" at line 72 [errid:77784/hlaparse.bsn]:

hide.extract and hide.scanf (I tried replacing hide.extract with scan.extract which looked similar but they must be different enough. Found no replacement for scanf)


Error in file "hidelibtest2.hla" at line 110 [errid:11027/hlaparse.bsn]:
Error in file "hidelibtest2.hla" at line 133 [errid:77784/hlaparse.bsn]:

baseNode_t and func.FillMemory (this also applies to test/hidelib.hla which is the same file)

Testlib.hla was a windows app so I didn't try that one.
I tried to keep os2_sysexec but it still had issues. There is no fileio.exists and filesys.exists won't work. Wrong parameter or something I didn't work at that one too hard since it was possible to build with out that file.

Linux version attached if any one is brave to try.
I am going to try kmake and guilib next.
--
Where's there's smoke, There are mirrors.
Give me Free as in Freedom not Speech or Beer.
Thank You and Welcome to the Internet.

Sevag.K

Quote from: DarkWolf on February 02, 2011, 12:54:51 AM

Assembling "src/os2_sysexec.hla" to "src/os2_sysexec.o"
Error in file "src/os2_sysexec.hla" at line 117 [errid:77784/hlaparse.bsn]:
Expected ':', encountered '('
(Possible undefined ID '.exists').
Near: << ( >>

HLAPARSE assembly failed with 1 errors
fo.hla"]

thanks.  that's a relic from the older hlalib.  there are two places in the code where that should change to filesys.exists. 

Quote
(even after correcting it still does not compile on linux, since you said that os2_sysexec.hla can be ignored I will but I thought to still tell you of the error)

did you change both of them?


Quote
Oddly linux hla still calls ld even though I specified -vc options:

that is odd.

Quote
aside from src/os2_sysexec this is the hidelib.a listing after compile

looks like everything that needs to be in is in.

Quote
test apps (okay you warned they were out of date in the source but I thought to give them a try)


Error in file "hidelibtest.hla" at line 61 [errid:81732/hlaparse.bsn]:
Error in file "hidelibtest.hla" at line 72 [errid:77784/hlaparse.bsn]:

hide.extract and hide.scanf (I tried replacing hide.extract with scan.extract which looked similar but they must be different enough. Found no replacement for scanf)

that is old stuff!  i don't know why i kept those file in there, the latest test program is testLib.hla in the same folder.  but i have a lot of stuff commented out and it's not really a benchmark test.  it's mostly for me testing out new stuff.  one of these days i should write a really in depth testing program.

anyway, the entire hide.scanxx line has been replaced by the scan.xxxx namespace.  and the new 'scanf' is the scan.find


Quote
Testlib.hla was a windows app so I didn't try that one.

it's not except for the debug stuff which you can comment out.  that includes #include("hide/dbgwin.hhf") as well as everything in the dbg. namespace.

Quote
I tried to keep os2_sysexec but it still had issues. There is no fileio.exists and filesys.exists won't work. Wrong parameter or something I didn't work at that one too hard since it was possible to build with out that file.

Linux version attached if any one is brave to try.
I am going to try kmake and guilib next.

i may just fire up my rusting ubuntu one of these days just to test things out.  but it looks like you've overcome most of it already!

Quote

DarkWolf

Quote from: Sevag.K on February 02, 2011, 02:26:31 AM

thanks.  that's a relic from the older hlalib.  there are two places in the code where that should change to filesys.exists. 

did you change both of them?

Yes but it still flags it.

Quote
Oddly linux hla still calls ld even though I specified -vc options:
Quote
that is odd.

Just had a thought; maybe hla doesn't let you combine the options ie I need to specify -v -c seperately. I'll have to try that. It is common on linux to be able to do that.

Quote
that is old stuff!  i don't know why i kept those file in there, the latest test program is testLib.hla in the same folder.  but i have a lot of stuff commented out and it's not really a benchmark test.  it's mostly for me testing out new stuff.  one of these days i should write a really in depth testing program.

anyway, the entire hide.scanxx line has been replaced by the scan.xxxx namespace.  and the new 'scanf' is the scan.find

I'll have to try and see.

Quote
Testlib.hla was a windows app so I didn't try that one.
Quote
it's not except for the debug stuff which you can comment out.  that includes #include("hide/dbgwin.hhf") as well as everything in the dbg. namespace.

I avoided cause I assumed that anything that used the debug functions were windows specific. I'll have to look again.

Quote
I tried to keep os2_sysexec but it still had issues. There is no fileio.exists and filesys.exists won't work. Wrong parameter or something I didn't work at that one too hard since it was possible to build with out that file.

Linux version attached if any one is brave to try.
I am going to try kmake and guilib next.
Quote
i may just fire up my rusting ubuntu one of these days just to test things out.  but it looks like you've overcome most of it already!

:) Good Luck.

I was trying to build kmake and guilib a few minutes ago and for guilib I think everything is okay except for some reason I can't get hla or ld to link with guilib.a; it can't seem to find it. I even placed it in the same directory with hlalib.a

Last attempt on guilib.hla was this:

Linking via [ld     -o "src/guilib"   "src/guilib.o" "/media/data/Programming/asm/hlalib/hlalib.a"]
src/guilib.o: In function `_findEnvp_$$_':
(.text+0x36f): undefined reference to `tFrame_create'
Error returned by ld = 256



For kmake I see something here:

Assembling "src/imports.hla" to "src/imports.o"
Error in file "src/kmake.hhf" at line 32 [errid:11027/hlaparse.bsn]:
Undefined base type identifier.
Near: << listNode_t >>

Error in file "src/kmake.hhf" at line 53 [errid:11027/hlaparse.bsn]:
Undefined base type identifier.
Near: << baseNode_t >>


That has popped up before with the hidelib test app code.
--
Where's there's smoke, There are mirrors.
Give me Free as in Freedom not Speech or Beer.
Thank You and Welcome to the Internet.

Sevag.K

get the latest version i just put up at my site.  it incorporates the recent changes.

https://sites.google.com/site/highlevelassembly/downloads


the linking issues you're having may be related to the order in which you link the files.  link in hidelib.a before guilib.a
i believe ld does sequential symbol search as the libraries are linked in and doesn't want to look ahead for missing symbols.

DarkWolf

Quote from: Sevag.K on February 03, 2011, 11:24:56 PM
get the latest version i just put up at my site.  it incorporates the recent changes.

https://sites.google.com/site/highlevelassembly/downloads


the linking issues you're having may be related to the order in which you link the files.  link in hidelib.a before guilib.a
i believe ld does sequential symbol search as the libraries are linked in and doesn't want to look ahead for missing symbols.


Not sure how to do that. I have tried a few options for ld but nothing seems to set hidelib before guilib.

os2_sysexec.hla still fails because it doesn't recognize filesys.exists as a valid ID.
But it looks like that hidelib will still compile anyway just without that file.

guilibtest.hla (just added test to guilib.hla so as to avoid confusion with lib source code) fails.
ld can't find either lib and when I specify on the command line or the makefile the exact path I get this:
Command:

hla -v src/guilibtest.hla /media/data/Programming/asm/hlalib/hide/hidelib.a /media/data/Programming/asm/hlalib/hide/guilib.a

Output:

/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_events.o): In function `false__hla_2442':
(.text+0x16): undefined reference to `MEM2_FILLMEM'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_events.o): In function `str__hla_2436':
(.text+0x90): undefined reference to `_VMT_tClone___hla_'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_events.o): In function `_VMT_tEvent___hla_':
(.text+0x94): undefined reference to `tClone_clone'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_events.o): In function `_VMT_tEvent___hla_':
(.text+0x98): undefined reference to `tClone_isClone'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `forever__hla_2484':
(.text+0x23): undefined reference to `XNextEvent'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2485':
(.text+0x6b): undefined reference to `XKeycodeToKeysym'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2486':
(.text+0x111): undefined reference to `XKeycodeToKeysym'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `exitloop__hla_2483':
(.text+0x557): undefined reference to `XDestroyWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `exitloop__hla_2483':
(.text+0x562): undefined reference to `XCloseDisplay'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2522':
(.text+0x583): undefined reference to `MEM2_FILLMEM'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tGraphics_eraseBackground':
(.text+0x5b6): undefined reference to `XClearWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tGraphics_setForegroundColor':
(.text+0x5e5): undefined reference to `XSetForeground'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tGraphics_setBackgroundColor':
(.text+0x615): undefined reference to `XSetBackground'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tGraphics_setBackgroundColor':
(.text+0x626): undefined reference to `XSetWindowBackground'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tGraphics_drawString':
(.text+0x65e): undefined reference to `XDrawString'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x6bc): undefined reference to `XOpenDisplay'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x6d2): undefined reference to `XDefaultRootWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x6f2): undefined reference to `XCreateSimpleWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x710): undefined reference to `XSelectInput'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x722): undefined reference to `XCreateGC'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x736): undefined reference to `XSetForeground'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x747): undefined reference to `XSetBackground'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x758): undefined reference to `XSetWindowBackground'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x76a): undefined reference to `XInternAtom'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x784): undefined reference to `XSetWMProtocols'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tFrame_show':
(.text+0x7cb): undefined reference to `XMapWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tFrame_show':
(.text+0x7da): undefined reference to `XClearWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tFrame_setSize':
(.text+0x82a): undefined reference to `XMoveResizeWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tFrame_setText':
(.text+0x877): undefined reference to `XStringListToTextProperty'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tFrame_setText':
(.text+0x899): undefined reference to `XSetWMProperties'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `_VMT_tFrame___hla_':
(.text+0x940): undefined reference to `tClone_clone'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `_VMT_tFrame___hla_':
(.text+0x944): undefined reference to `tClone_isClone'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `str__hla_2438':
(.text+0x174): undefined reference to `_VMT_tClone___hla_'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `tComponentVMT':
(.text+0x178): undefined reference to `tClone_clone'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `tComponentVMT':
(.text+0x17c): undefined reference to `tClone_isClone'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `tContainerVMT':
(.text+0x1b0): undefined reference to `tClone_clone'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `tContainerVMT':
(.text+0x1b4): undefined reference to `tClone_isClone'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `tWindowVMT':
(.text+0x1e8): undefined reference to `tClone_clone'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `tWindowVMT':
(.text+0x1ec): undefined reference to `tClone_isClone'


ld's error is this:

Linking via [ld     -o "src/guilibtest"   "src/guilibtest.o" "/media/data/Programming/asm/hlalib/hide/hidelib.a" "/media/data/Programming/asm/hlalib/hide/guilib.a" "/media/data/Programming/asm/hlalib/hlalib.a"]
Error returned by ld = 256


Looks like it still can't find the libraries.
They are actually located in the above path but I don't get why ld is having an issue.
--
Where's there's smoke, There are mirrors.
Give me Free as in Freedom not Speech or Beer.
Thank You and Welcome to the Internet.

Sevag.K

Quote from: DarkWolf on February 22, 2011, 08:44:13 PM
Not sure how to do that. I have tried a few options for ld but nothing seems to set hidelib before guilib.

linking order matters i think.  since guilib calls on hlalib functions, hlalib has to be linked first on the commandline.
so...
Linking via [ld     -o "src/guilib"   "src/guilib.o" "/media/data/Programming/asm/hlalib/hlalib.a"]

instead of that, use
Linking via [ld     -o "src/guilib"  "/media/data/Programming/asm/hlalib/hlalib.a" "src/guilib.o" ]

Quote
os2_sysexec.hla still fails because it doesn't recognize filesys.exists as a valid ID.
But it looks like that hidelib will still compile anyway just without that file.

guilibtest.hla (just added test to guilib.hla so as to avoid confusion with lib source code) fails.
ld can't find either lib and when I specify on the command line or the makefile the exact path I get this:
Command:

hla -v src/guilibtest.hla /media/data/Programming/asm/hlalib/hide/hidelib.a /media/data/Programming/asm/hlalib/hide/guilib.a

Output:

/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_events.o): In function `false__hla_2442':
(.text+0x16): undefined reference to `MEM2_FILLMEM'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_events.o): In function `str__hla_2436':
(.text+0x90): undefined reference to `_VMT_tClone___hla_'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_events.o): In function `_VMT_tEvent___hla_':
(.text+0x94): undefined reference to `tClone_clone'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_events.o): In function `_VMT_tEvent___hla_':
(.text+0x98): undefined reference to `tClone_isClone'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `forever__hla_2484':
(.text+0x23): undefined reference to `XNextEvent'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2485':
(.text+0x6b): undefined reference to `XKeycodeToKeysym'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2486':
(.text+0x111): undefined reference to `XKeycodeToKeysym'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `exitloop__hla_2483':
(.text+0x557): undefined reference to `XDestroyWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `exitloop__hla_2483':
(.text+0x562): undefined reference to `XCloseDisplay'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2522':
(.text+0x583): undefined reference to `MEM2_FILLMEM'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tGraphics_eraseBackground':
(.text+0x5b6): undefined reference to `XClearWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tGraphics_setForegroundColor':
(.text+0x5e5): undefined reference to `XSetForeground'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tGraphics_setBackgroundColor':
(.text+0x615): undefined reference to `XSetBackground'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tGraphics_setBackgroundColor':
(.text+0x626): undefined reference to `XSetWindowBackground'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tGraphics_drawString':
(.text+0x65e): undefined reference to `XDrawString'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x6bc): undefined reference to `XOpenDisplay'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x6d2): undefined reference to `XDefaultRootWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x6f2): undefined reference to `XCreateSimpleWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x710): undefined reference to `XSelectInput'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x722): undefined reference to `XCreateGC'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x736): undefined reference to `XSetForeground'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x747): undefined reference to `XSetBackground'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x758): undefined reference to `XSetWindowBackground'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x76a): undefined reference to `XInternAtom'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `false__hla_2556':
(.text+0x784): undefined reference to `XSetWMProtocols'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tFrame_show':
(.text+0x7cb): undefined reference to `XMapWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tFrame_show':
(.text+0x7da): undefined reference to `XClearWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tFrame_setSize':
(.text+0x82a): undefined reference to `XMoveResizeWindow'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tFrame_setText':
(.text+0x877): undefined reference to `XStringListToTextProperty'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `tFrame_setText':
(.text+0x899): undefined reference to `XSetWMProperties'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `_VMT_tFrame___hla_':
(.text+0x940): undefined reference to `tClone_clone'
/media/data/Programming/asm/hlalib/hide/guilib.a(guilib_frameControl.o): In function `_VMT_tFrame___hla_':
(.text+0x944): undefined reference to `tClone_isClone'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `str__hla_2438':
(.text+0x174): undefined reference to `_VMT_tClone___hla_'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `tComponentVMT':
(.text+0x178): undefined reference to `tClone_clone'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `tComponentVMT':
(.text+0x17c): undefined reference to `tClone_isClone'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `tContainerVMT':
(.text+0x1b0): undefined reference to `tClone_clone'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `tContainerVMT':
(.text+0x1b4): undefined reference to `tClone_isClone'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `tWindowVMT':
(.text+0x1e8): undefined reference to `tClone_clone'
/media/data/Programming/asm/hlalib/hide/guilib.a(root_objects.o): In function `tWindowVMT':
(.text+0x1ec): undefined reference to `tClone_isClone'


ld's error is this:

Linking via [ld     -o "src/guilibtest"   "src/guilibtest.o" "/media/data/Programming/asm/hlalib/hide/hidelib.a" "/media/data/Programming/asm/hlalib/hide/guilib.a" "/media/data/Programming/asm/hlalib/hlalib.a"]
Error returned by ld = 256


Looks like it still can't find the libraries.
They are actually located in the above path but I don't get why ld is having an issue.

i'll take a look at this when i get the time.  but just as a reminder, you also have to link in the x libraries to your test program.  khla used to do this automatically, but as i've said, khla is abandoned and i don't even have the sources anymore.  maybe it's online somewhere and you can find the source line with the proper ld command line to use.

DarkWolf

Who wrote this crap ?!

First ld will not search the path I give it on the command line for the libraries.
I cannot specify /media/data/Programming/asm/hlalib/hlalib.a (yes I keep my programming stuff that deep)
It will never search there, it will never try.

The -l switch does not specify a path, so I cannot use "-l /media/data/Programming/asm/hlalib/hlalib.a" (actually I use a macro but this is what it expands to)
The -L specifies the path but not a file name. "-L /media/data/Programming/asm/hlalib"

The makefile command:

ld  --verbose -o "bin/my_guilibtest"  -L "$(hla_lib)" -L "$(hide_lib)" -l "/hlalib.a"  -l "hidelib.a"  -l "guilib.a"  "src/guilibtest.o" >> log/build.log


Here's where it actually looked :

attempt to open /media/data/Programming/asm/hlalib/lib/hlalib.a.so failed
attempt to open /media/data/Programming/asm/hlalib/lib/hlalib.a.a failed


Yes that's right not only does -L appends a /lib to the file path but -l appends both a .a and .so to the file name. No wonder it can't find shit.

I can't find anything in the man page to alter this.
--
Where's there's smoke, There are mirrors.
Give me Free as in Freedom not Speech or Beer.
Thank You and Welcome to the Internet.