[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] [bug #50174] `make check` failed, due to ming-related lin

From: Nutchanon Wetchasit
Subject: [Gnash-commit] [bug #50174] `make check` failed, due to ming-related link error
Date: Sun, 29 Jan 2017 11:32:54 +0000 (UTC)
User-agent: Mozilla/5.0 (X11; Linux i686; rv:25.8) Gecko/20151123 Firefox/31.9 PaleMoon/25.8.1

Follow-up Comment #3, bug #50174 (project gnash):

Before commit ff92e0a, things are working fine as long as the value of _each
digit_ in Ming's major/minor/micro/prerelease version number *does not
_exceed_ 7*: the C preprocessor can just pretend they are all octal values and
still do correct comparisons.

However, when ff92e0a
is introduced...
* `./configure` and `Makefile`(s) still do `#define MING_VERSION_CODE
00040400` (equivalent to 16640 in decimal)...
* But _some_ code are now changed to do comparision *in decimal*:
** ming_utils.h:26
`#if 00040400 >= 40004` *now became false* (it should have been _true_).
** ming_utils.h:43
Change has no effect (it's code comment).
** ming_utils.h:45
`#if 00040400 >= 40004` *now became false* (it should have been _true_).
** ming_utils.h:56
`#if 00040400 >= 40006` *now became false* (it should have been _true_).

>From the link error:

registerClassTest2.c: In function 'main':
registerClassTest2.c:177:3: warning: implicit declaration of function
'add_clip_init_actions' [-Wimplicit-function-declaration]
registerClassTest2.c:192:5: warning: 'compileSWFActionCode' is deprecated
(declared at /usr/include/ming.h:619) [-Wdeprecated-declarations]
registerClassTest2.c:199:5: warning: 'compileSWFActionCode' is deprecated
(declared at /usr/include/ming.h:619) [-Wdeprecated-declarations]
  CCLD   registerClassTest2
registerClassTest2.o: In function `main':
undefined reference to `add_clip_init_actions'
collect2: error: ld returned 1 exit status
make[5]: *** [registerClassTest2] Error 1

A bit deeper inspection reveals that this is a direct result of version
interpretation discrepancy between C-preprocessor and configure script:

If libming version is _actually_ less than 0.4.4,
`testsuite/misc-ming.all/register_class/` would just exclude the
build of `registerClassTest2` test
in the configure process, as these libming did not support init action

But what really happened here is:
** `./configure` _correctly_ identified
that libming _supports_ init action insertion (`test` always do comparison in
base 10), resulting in
`testsuite/misc-ming.all/register_class/registerClassTest2.c` being listed for
building in Makefile.
** But `testsuite/misc-ming.all/ming_utils.h` (which is included by C source
code above), *misidentified* that libming _does not_ support init action
causing `add_clip_init_actions()` implementation to be excluded from
and associated header
** As `testsuite/misc-ming.all/register_class/registerClassTest2.c` tried to
use `add_clip_init_actions()`
it results in implicit declaration warning.
** When linker linked `registerClassTest2.o` against `libgnashmingutils.a`,
*it failed* as `add_clip_init_actions()` function is missing, causing `make
check` to abort.

Gnash: 0.8.11dev (git ff92e0a 28-Jan-2017)
GCC: 4.7.2-5 (debian)
G++: 4.7.2-5 (debian)
Ming: 0.4.4-1.1 (debian)
System: Debian GNU/Linux 7.0 Wheezy i386


Reply to this item at:


  Message sent via/by Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]