Tk Source Code

View Ticket
Login
2013-09-16
02:03 Closed ticket [8eb56719]: macosx Tk compile errors/warnings due to bad merge plus 4 other changes artifact: 640ebe38 user: kevin_walzer
02:02 Ticket [8eb56719]: 4 changes artifact: 6d2c6e8e user: kevin_walzer
2013-09-15
23:28 Ticket [8eb56719]: 3 changes artifact: aa1069b9 user: ned.deily
23:27 Add attachment tk8_5_15_fix_merge.patch to ticket [8eb56719] artifact: 779ff778 user: ned.deily
23:23 New ticket [8eb56719] macosx Tk compile errors/warnings due to bad merge. artifact: f6efe468 user: ned.deily

Ticket UUID: 8eb56719cff9c2e5bb76230017fd65c649526bc
Title: macosx Tk compile errors/warnings due to bad merge
Type: Bug Version: 8.5.14
Submitter: ned.deily Created on: 2013-09-15 23:23:38
Subsystem: 83. Mac OS X Build Assigned To: kevin_walzer
Priority: 5 Medium Severity: Important
Status: Closed Last Modified: 2013-09-16 02:03:20
Resolution: None Closed By: kevin_walzer
    Closed on: 2013-09-16 02:03:20
Description:

Current versions of two Aqua modules, macosx/tkMacOSXClipboard.c and macosx/tkMacOSXDraw.c, get compile warnings when compiled with gcc and compile errors when attempting to compile with Apple clang. Both errors are due to misplaced return Success statements. From comparing the 8.5.14 and 8.5.15rc1 sources with the 8.6.0 and 8.6.1.rc0 sources, my guess is that the problems are due to an incorrect merge at some point of the Aqua code from 8.6 into 8.5, since the 8.6 code is correct.

Here are the results of compiling 8.5.15rc1 on OS X 10.8.5 with the current Xcode 4.6.3 command line tools installed. (8.5.14 results are similar.)

$ gcc --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
$ cd tk8.5.15/unix && ./configure --prefix=/tmp/a/root --enable-shared --enable-threads --enable-aqua && make
[...]
/tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c: In function ‘XSetSelectionOwner’:
/tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c:171: warning: no return statement in function returning non-void
/tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c: In function ‘TkMacOSXSelDeadWindow’:
/tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c:197: warning: ‘return’ with a value, in function returning void
[...]
/tmp/a/tk8.5.15/unix/../macosx/tkMacOSXDraw.c: In function ‘DrawCGImage’:
/tmp/a/tk8.5.15/unix/../macosx/tkMacOSXDraw.c:747: warning: ‘return’ with a value, in function returning void
/tmp/a/tk8.5.15/unix/../macosx/tkMacOSXDraw.c: In function ‘TkPutImage’:
/tmp/a/tk8.5.15/unix/../macosx/tkMacOSXDraw.c:350: warning: control reaches end of non-void function
/tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c:171:1: warning: control reaches end of
      non-void function [-Wreturn-type]


$ cc --version
Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.5.0
Thread model: posix
$ cd tk8.5.15/unix && ./configure --prefix=/tmp/a/root --enable-shared --enable-threads --enable-aqua CC=cc && make
[...]
/tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c:171:1: warning: control reaches end of
      non-void function [-Wreturn-type]
}
^
/tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c:197:5: error: void function
      'TkMacOSXSelDeadWindow' should not return a value [-Wreturn-type]
    return Success;
    ^      ~~~~~~~
1 warning and 1 error generated.
[...]
tmp/a/tk8.5.15/unix/../macosx/tkMacOSXDraw.c:350:1: warning: control may reach end of
      non-void function [-Wreturn-type]
}
^
/tmp/a/tk8.5.15/unix/../macosx/tkMacOSXDraw.c:747:5: error: void function 'DrawCGImage'
      should not return a value [-Wreturn-type]
    return Success;
    ^      ~~~~~~~
1 warning and 1 error generated.
Note that, with the next release of Apple's Xcode development tools, expected with the upcoming OS X 10.9 (Mavericks) release, Apple will no longer ship any gcc-based compilers, just clang, so it is important that Tk builds correctly with clang.

The attached patch fixes the problems.

User Comments: kevin_walzer added on 2013-09-16 02:02:32:
Fix committed, thanks for the patch.

Attachments: