gnokii - Bugs: bug #37192, gnokii-0.6.31 build failure with...
You are not allowed to post comments on this tracker with your current authentication level.
bug #37192: gnokii-0.6.31 build failure with clang (undefined symbols)
Submitter: | Hanspeter Niederstrasser <nieder> | ||
Submitted: | Sat 25 Aug 2012 04:16:41 PM UTC | ||
Category: | build | Severity: | 3 - Normal |
Item Group: | installation | Status: | Fixed |
Privacy: | Public | Assigned to: | ja |
Open/Closed: | Open |
Sun 26 Aug 2012 10:22:08 PM UTC, comment #3: |
Jan Derfinak <ja> |
Sat 25 Aug 2012 09:08:38 PM UTC, comment #2: OK, I've read the link with debian logs. So that should be fixed with current git. However I did just the necessary changes.
|
Pawel Kot <pkot> |
Sat 25 Aug 2012 08:19:45 PM UTC, comment #1: For now I can advice not to use clang then. I think the code is just fine and there is some confusion within the compiler for an unknown reason to me. I think it would be more useful to report it to clang people. |
Pawel Kot <pkot> |
Sat 25 Aug 2012 04:16:41 PM UTC, original submission:
When using clang as the compiler, gnokii 0.6.31 fails to build with this error:
|
Hanspeter Niederstrasser <nieder> |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.
Follow 2 latest changes.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2012-08-25 | pkot | Status | None | Fixed | |
Assigned to | None | ja |
Powered by Savane 3.13-02a9.
Corresponding source code
Hello Pawel.
I see three reasons for use of inline function.
The first one is when you have a function called many times in cycle and you want for performance reason to strip out the opening and closing sequence for function calling.
The second reason is a small function when the opening and closing sequence for function calling is bigger then a body of the function. GCC can do it automagicaly with -finline-small-functions (included in -O2 switch).
The third reason for inline is when you split a bigger function to small functions and these small functions are called only on one place in program. GCC can do it automagicaly with -finline-functions-called-once.
I looked to smsd and there are only 4 inline functions.
InsertEvent(), FreeElement() and FreeArray () are reasonable small functions on the first look and in case of FreeElement() there is also a performance reason.
RemoveEvent() looks to be bigger but when you look at the code and forgot the long variables and functions names, it is very simple few lines function. And it is called only on one place in a cycle.
I didn't looked to xgnokii source for many years.
I was little bit surprised when I saw result of grep. But most of them are 1 to 3 lines functions. The bigger function are:
xgnokii.c:DrawNetwork()
xgnokii.c:DrawBattery()
xgnokii_sms.c:RefreshFolder()
xgnokii_lowlevel.c:RemoveEvent()
Above functions are called only on one place in code and are called frequently.
xgnokii_contacts.c:OkDialVoiceDialog()
Above function is called only on one place in code
And following functions need not be inline:
xgnokii_contacts.c:RefreshUserStatusCallBack()
xgnokii_contacts.c:GUI_GetEntry()
xgnokii.c:GUI_ShowContacts()
xgnokii.c:GUI_ShowSMS()
xgnokii_netmon.c:RefreshDisplay()
xgnokii_sms.c:RefreshSMSStatus()