[FFmpeg-devel] [PATCH] configure: Add workaround for qtkit detection using ICC, compiler.

Thilo Borgmann thilo.borgmann at mail.de
Sun Apr 6 19:35:07 CEST 2014


Am 06.04.14 18:55, schrieb Timothy Gu:
> On Sun, Apr 6, 2014 at 9:53 AM, Thilo Borgmann <thilo.borgmann at mail.de> wrote:
>> Am 06.04.14 15:52, schrieb Michael Niedermayer:
>>> On Sun, Apr 06, 2014 at 03:02:16PM +0200, Thilo Borgmann wrote:
>>>> Like Reimar suggested on log, this works for me for proper detection of qtkit using:
>>>>
>>>> Mac OS X 10.9 with clang
>>>> Linux with gcc
>>>> Linux with icc
>>>>
>>>> -Thilo
>>>
>>>>  configure |    2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>> 96f5a6cf4915a1b8139050b48e08e1cc673871f4  0001-configure-Add-workaround-for-qtkit-detection-using-I.patch
>>>> From d9a1e4177d2bc55410c747576f8bc5820d4938ab Mon Sep 17 00:00:00 2001
>>>> From: Thilo Borgmann <thilo.borgmann at mail.de>
>>>> Date: Sun, 6 Apr 2014 14:57:24 +0200
>>>> Subject: [PATCH] configure: Add workaround for qtkit detection using ICC
>>>>  compiler.
>>>>
>>>> ---
>>>>  configure | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/configure b/configure
>>>> index f238276..945c847 100755
>>>> --- a/configure
>>>> +++ b/configure
>>>> @@ -4671,7 +4671,7 @@ enabled openssl           && { check_lib openssl/ssl.h SSL_library_init -lssl -l
>>>>                                 check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
>>>>                                 check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
>>>>                                 die "ERROR: openssl not found"; }
>>>> -enabled qtkit_indev      && { check_header_oc QTKit/QTKit.h || disable qtkit_indev; }
>>>> +enabled qtkit_indev      && { { check_header QTKit/QTKit.h && check_header_oc QTKit/QTKit.h; } || disable qtkit_indev; }
>>>
>>> applied
>>>
>>> though if someone can fix check_header_oc that would probably be
>>> better
>>>
>>> maybe by checking if a output file has been created or something like
>>> that (dont forget to make sure the output file doesnt exist before
>>> the test)
>>>
>>> but for now this patch is better than nothing, build should not be
>>> broken while the best solution is discussed
>>
>> Unfortunately, testing "stat $TMPO" is not sufficient, since this ICC call even
>> generates a file...... not of size 0....
>>
>> part of config.log after adding applying the attached patch:
>>
>> check_header_oc QTKit/QTKit.h
>> check_oc
>> BEGIN /tmp/ffconf.DCnCE0fZ.m
>>     1   #include <QTKit/QTKit.h>
>>     2   int main(void) { return 0; }
>> END /tmp/ffconf.DCnCE0fZ.m
>> /opt/intel/composerxe-2011.4.191/bin/intel64/icc -D_ISOC99_SOURCE
>> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112
>> -D_XOPEN_SOURCE=600 -std=c99 -fomit-frame-pointer -pthread -c -o
>> /tmp/ffconf.XKczCL4F.o /tmp/ffconf.DCnCE0fZ.m
>> icc: warning #10147: no action performed for specified file(s)
>> check_stat /tmp/ffconf.XKczCL4F.o
>>   File: `/tmp/ffconf.XKczCL4F.o'
>>   Size: 1464            Blocks: 8          IO Block: 4096   regular file
>> Device: 801h/2049d      Inode: 16002333    Links: 1
>> Access: (0644/-rw-r--r--)  Uid: ( 1000/    fate)   Gid: ( 1000/    fate)
>> Access: 2014-04-06 18:37:33.036520001 +0200
>> Modify: 2014-04-06 18:37:32.956520001 +0200
>> Change: 2014-04-06 18:37:32.956520001 +0200
> 
> Damn icc. Why don't we just probe for "warning #10147" assuming that
> the number don't change with updates.

Also try to link & exec seems to work... see patch. Works for me on OSX+CLANG /
Linux+GCC / Linux+ICC.

-Thilo

-------------- next part --------------
>From 05157e8a6ec6dc9a0d24d606f9b8dd027111aa0c Mon Sep 17 00:00:00 2001
From: Thilo Borgmann <thilo.borgmann at mail.de>
Date: Sun, 6 Apr 2014 19:30:19 +0200
Subject: [PATCH] configure: Always try to link if objective-c headers are
 checked.

---
 configure | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index f47c39f..ee4c95b 100755
--- a/configure
+++ b/configure
@@ -958,7 +958,7 @@ check_header_oc(){
     {
        echo "#include <$header>"
        echo "int main(void) { return 0; }"
-    } | check_oc "$@" && enable_safe $headers
+    } | check_exec_oc && enable_safe $headers
 }
 
 check_func(){
@@ -1077,6 +1077,10 @@ check_exec(){
     check_ld "cc" "$@" && { enabled cross_compile || $TMPE >> $logfile 2>&1; }
 }
 
+check_exec_oc(){
+    check_ld "oc" "$@" && { enabled cross_compile || $TMPE >> $logfile 2>&1; }
+}
+
 check_exec_crash(){
     code=$(cat)
 
@@ -4668,7 +4672,7 @@ enabled openssl           && { check_lib openssl/ssl.h SSL_library_init -lssl -l
                                check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
                                check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
                                die "ERROR: openssl not found"; }
-enabled qtkit_indev      && { { check_header QTKit/QTKit.h && check_header_oc QTKit/QTKit.h; } || disable qtkit_indev; }
+enabled qtkit_indev      && { check_header_oc QTKit/QTKit.h || disable qtkit_indev; }
 
 if enabled gnutls; then
     { check_lib nettle/bignum.h nettle_mpz_get_str_256 -lnettle -lhogweed -lgmp && enable nettle; } ||
-- 
1.8.3.2



More information about the ffmpeg-devel mailing list