Mailing list archives : pcb-rnd

ID:3528
From:ka...@aspodata.se
Date:Sun, 10 Nov 2019 10:58:45 +0100 (CET)
Subject:Re: [pcb-rnd] undefined reference to `fgw_ucall_all'
in-reply-to:3526 from ge...@igor2.repo.hu
replies: 3529 from ge...@igor2.repo.hu , 3530 from ge...@igor2.repo.hu
Igor2:
> On Sat, 9 Nov 2019, karl@aspodata.se wrote:
> >/Net/svn/pcb-rnd/src/../src_plugins/import_sch/import_sch.c:274: undefined reference to `fgw_uvcall'
...
> I think you have system installed fungw that is too old for the user call 
> contexts and scconfig failed to detect that. With the fix it should give 
> you a warning about this and fall back to the cut-back (but new-enough) 
> version shipped with pcb-rnd.
 
No warning and it still doesn't work:
 
$ ./configure --buildin-diag --debug --plugin-script --plugin-expfeat --plugin-export_openems > config.log
Generating puplug/Makefile (0)
Generating puplug/config.h (0)
$ grep fungw config.log 
Checking for fungw... OK ('', '' and '-lfungw -lm -lgenht')
Checking for fungw user_call_ctx... OK ('', '' and '-lfungw -lm -lgenht')
 fungw turing complete scripting yes, PLUGIN     [script]
 
$ make  > make.log 2>&1
$ tail make.log 
/Net/svn/pcb-rnd/src/event.c:235: undefined reference to `fgw_ucall_all'
../src_plugins/import_sch/import_sch.o: In function `pcb_act_Import':
/Net/svn/pcb-rnd/src/../src_plugins/import_sch/import_sch.c:277: undefined reference to `fgw_uvcall'
/Net/svn/pcb-rnd/src/../src_plugins/import_sch/import_sch.c:354: undefined reference to `fgw_uvcall'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:62: pcb-rnd] Error 1
make[2]: Leaving directory '/Net/svn/pcb-rnd/src'
make[1]: *** [Makefile:51: all] Error 2
make[1]: Leaving directory '/Net/svn/pcb-rnd/src'
make: *** [Makefile:3: all] Error 2
 
////
 
 I think I found out why.
 
When configureing, scconf looks in /usr/local/lib (my guess), but when 
linking, ld looks in lib64:
 
$ ls -l /usr/local/lib/libfungw.so.1.0.0  /usr/local/lib64/libfungw.so.1.0.0 
-rwxr-xr-x 1 karl users 60432 Nov 10 09:55 /usr/local/lib/libfungw.so.1.0.0
-rwxr-xr-x 1 karl users 43544 Feb 26  2019 /usr/local/lib64/libfungw.so.1.0.0
 
$ grep /usr/local/lib /etc/ld.so.conf
/usr/local/lib64
/usr/local/lib32
/usr/local/lib
 
 Gentoo have been messing with the lib dirs.:
https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html
 
Soo, in februari, before the gentoo lib switch, fungw ended up in 
lib64, and the new fungw ended up in lib since it doesn't know about 
gentoos lib policy.
 
/////
 
The quick fix is to remove the lib64 one and be done with it:
 
$ cd /usr/local/lib64/
$ mkdir zzz
$ mv libfungw.so* zzz/
$ cd -
/Net/svn/pcb-rnd
$ tail make.log2 
make[5]: Leaving directory '/Net/svn/pcb-rnd/src_3rd/genlist'
make[4]: Leaving directory '/Net/svn/pcb-rnd/src'
gcc gsch2pcb.o help.o netlister.o run.o glue.o method_import.o ../../src/vtlibrary.o ../../src/compat_fs.o ../../src/paths.o ../../src/conf.o ../../src/conf_core.o ../../src/hid_cfg.o ../../src/hidlib_conf.o ../../src/misc_util.o ../../src/unit.o ../../src/conf_internal.o ../../src/list_conf.o ../../src/conf_hid.o ../../src/pcb-printf.o ../../src/compat_misc.o ../../src/safe_fs.o  ../../src/plug_footprint.o  ../../src_3rd/genlist/genadlist.o ../../src_3rd/genlist/genlistalloc.o ../../src_3rd/qparse/qparse.o ../../src/librnd-hid.a ../../src/librnd-3rd.a -o gsch2pcb-rnd -lm -rdynamic -lfungw -lm -lgenht -lgd -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lgtkglext-x11-1.0 -lgdkglext-x11-1.0 -lGL -lGLU -lXmu -lXm -lXt -lSM -lICE -lpangox-1.0 -lX11 -Wl,--export-dynamic -pthread -lgmodule-2.0 -L/opt/X11/lib -lXinerama -lXrender -lxml2   -ldl -lfungw -lm -lgenht 
make[3]: Leaving directory '/Net/svn/pcb-rnd/util/gsch2pcb-rnd'
make[2]: Leaving directory '/Net/svn/pcb-rnd/util/gsch2pcb-rnd'
make[1]: Leaving directory '/Net/svn/pcb-rnd/util'
cd pcblib && make
make[1]: Entering directory '/Net/svn/pcb-rnd/pcblib'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/Net/svn/pcb-rnd/pcblib'
$
 
/////
 
Or do you want to handle this case ?
 
Regards,
/Karl Hammar
 
 

Reply subtree:
3528 Re: [pcb-rnd] undefined reference to `fgw_ucall_all' from ka...@aspodata.se
  3529 Re: [pcb-rnd] undefined reference to `fgw_ucall_all' from ge...@igor2.repo.hu
    3531 Re: [pcb-rnd] undefined reference to `fgw_ucall_all' from ka...@aspodata.se
  3530 Re: [pcb-rnd] undefined reference to `fgw_ucall_all' from ge...@igor2.repo.hu