View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0004235 | unreal | installing | public | 2013-09-13 07:15 | 2015-10-26 11:03 |
| Reporter | QIXOZL | Assigned To | syzop | ||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Product Version | 3.2.10.1 | ||||
| Summary | 0004235: [Solaris 11] Linking fails with solaris studio 12 | ||||
| Description | linking fails with solaris studio 12 giving: Undefined first referenced symbol in file find_CommandEx packet.o ld: fatal: symbol referencing errors. No output written to ircd | ||||
| Steps To Reproduce | ./configure --with-showlistmodes --enable-ssl --enable-ziplinks --with-listen=5 --with-dpath=/root/Unreal3.2.10.1 --with-spath=/root/Unreal3.2.10.1/src/ircd --with-nick-history=2000 --with-sendq=3000000 --with-bufferpool=18 --with-permissions=0600 --with-fd-setsize=1024 --enable-dynamic-linking ... gmake[1]: Entering directory `/root/Unreal3.2.10.1/src' cc -I../include -I/root/Unreal3.2.10.1/extras/regexp/include -I/root/Unreal3.2.10.1/extras/c-ares/include -xc99=all -fast -xunroll=12 -xarch=ssse3 -m64 -xCC -features=extensions -lssl -lcrypto -o ircd timesynch.o res.o s_bsd.o auth.o aln.o channel.o cloak.o crule.o dbuf.o events.o fdlist.o hash.o help.o ircd.o ircsprintf.o list.o lusers.o match.o modules.o packet.o parse.o s_auth.o s_conf.o s_debug.o s_err.o s_extra.o s_kline.o s_misc.o s_numeric.o s_serv.o s_svs.o socket.o ssl.o s_user.o charsys.o scache.o send.o support.o umodes.o version.o whowas.o zip.o cidr.o random.o extcmodes.o extbans.o md5.o api-isupport.o api-command.o -lcrypt -lsocket -lnsl -lz -lresolv ../extras/regexp/lib/libtre.a -L../extras/c-ares/lib /root/Unreal3.2.10.1/extras/c-ares/lib/libcares.a -lrt -lssl -lcrypto Undefined first referenced symbol in file find_CommandEx packet.o ld: fatal: symbol referencing errors. No output written to ircd gmake[1]: *** [ircd] Error 2 | ||||
| 3rd party modules | |||||
|
|
Hmmm Solaris :) Sorry I'm not familiar with Solaris and we currently have too few resources to seriously support it. In any case, we only support gcc at the moment. I suggest trying compiling with that. See 0004121 for another issue on Solaris (10) -- which also happens to show how to use gcc by the way. Hopefully that issue is not an issue on Solaris 11, I don't know, let us know. It used to work at one point.. and I don't think we added any incompatible code since then.. so it's probably something easy. |
|
|
>> we currently have too few resources to seriously support it you can get solaris and the studio for free from sun, eh, i mean oracle ;-) a small vm is installed in less than 10 minutes and letting it run there every once in a while takes even less time. if something shows up it could be a quick fix and an improvement for the code as well. if not then no harm done either. >> we only support gcc at the moment as pretty much any other project these days. a pity tho because not only that gcc has never been known for great results it also gives a much better view at the program and so far unnoticed potential issues when running it through a serious compiler. >> Hopefully that issue is not an issue on Solaris 11 it's not. a gcc build was successful. |
|
|
seems i found a solution here. basically the sun compiler doesn't allow mixing static and inline functions. there're 2 solutions for that: 1. remove inline 2. use option -features=no%extinl the docs say: Compile new codes with -features=no%extinl to obtain the same treatment of extern inline functions as provided by older versions of the C and C++ compilers. http://docs.oracle.com/cd/E24457_01/html/E21990/bjapr.html#bjaqo for much more detailed info: https://blogs.oracle.com/dew/entry/c99_inline_function |
|
|
then the oracle compiler is not C99-compliant. 'static' defines a symbol as having internal linkage (similar to visibility 'hidden', which is a GNU-ism). GNU C is the correct interpretation of C99 here... |
|
|
did you check the second link? EDIT: anyway there're 2 more things to get it done properly using suncc: 1. option -features=extensions to avoid problems with anonymous structures, and 2. there're 2 versions of install available. the native one /usr/sbin/install doesn't work with the Makefile so in case that has been found first and added to the Makefile replace it with /usr/gnu/bin/install |
|
|
I did check the link. The oracle compiler is not C99-compliant. Both 'static' and 'inline' define a translation unit as having internal linkage. Beyond that, anonymous structures are a valid feature in both C99 and C11. |
|
|
my bad, it was anonymous structures with union(s). anyway this seems solved for now :-) |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2013-09-13 07:15 | QIXOZL | New Issue | |
| 2013-09-18 11:59 | syzop | Note Added: 0017761 | |
| 2013-09-18 12:00 | syzop | Summary | undefined symbol find_CommandEx => [Solaris 11] Linking fails with solaris studio 12 |
| 2013-09-18 15:40 | QIXOZL | Note Added: 0017762 | |
| 2013-09-21 09:17 | QIXOZL | Note Added: 0017768 | |
| 2013-09-21 09:59 |
|
Note Added: 0017769 | |
| 2013-09-21 10:08 | QIXOZL | Note Added: 0017770 | |
| 2013-09-21 17:48 | QIXOZL | Note Edited: 0017770 | |
| 2013-09-21 19:41 |
|
Note Added: 0017771 | |
| 2013-09-21 20:15 | QIXOZL | Note Added: 0017772 | |
| 2014-01-12 16:42 | syzop | Relationship added | related to 0004121 |
| 2014-03-14 01:14 | peterkingalexander | Issue cloned: 0004264 | |
| 2015-10-26 11:02 | syzop | Status | new => closed |
| 2015-10-26 11:03 | syzop | Assigned To | => syzop |
| 2015-10-26 11:03 | syzop | Resolution | open => fixed |