Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Jul 2012 06:52:23 GMT
From:      Phil Stone <phil.stone@gmx.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/170102: php53-gd dumps core when compiled without T1Lib
Message-ID:  <201207240652.q6O6qNkm005674@red.freebsd.org>
Resent-Message-ID: <201207240700.q6O70OYr054699@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         170102
>Category:       ports
>Synopsis:       php53-gd dumps core when compiled without T1Lib
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jul 24 07:00:24 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Phil Stone
>Release:        FreeBSD 8.3-RELEASE-p3
>Organization:
>Environment:
FreeBSD phildek.dev 8.3-RELEASE-p3 FreeBSD 8.3-RELEASE-p3 #0: Tue Jun 12 00:39:29 UTC 2012     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
When compiling extension graphics/php53-gd without option T1LIB, php dumps core because of undefined symbols. Error message:
/usr/local/lib/php/20090626/gd.so: Undefined symbol "T1_errno"

When building the extension, libtool gets the correct flags:
/bin/sh /usr/ports/graphics/php53-gd/work/php-5.3.15/ext/gd/libtool --mode=compile cc -I/usr/ports/graphics/php53-gd/work/php-5.3.15/ext/gd/libgd -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_LIBFREETYPE -DENABLE_GD_TTF -I. -I/usr/ports/graphics/php53-gd/work/php-5.3.15/ext/gd -DPHP_ATOM_INC -I/usr/ports/graphics/php53-gd/work/php-5.3.15/ext/gd/include -I/usr/ports/graphics/php53-gd/work/php-5.3.15/ext/gd/main -I/usr/ports/graphics/php53-gd/work/php-5.3.15/ext/gd -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/usr/local/include -I/usr/local/include/freetype2  -DHAVE_CONFIG_H  -O2 -pipe -fno-strict-aliasing   -c /usr/ports/graphics/php53-gd/work/php-5.3.15/ext/gd/gd.c -o gd.lo

config.h gets the correct settings:
/* #undef HAVE_LIBT1 */

Nevertheless, T1 symbols are included in the library: 
objdump -x /usr/ports/graphics/php53-gd/work/php-5.3.15/ext/gd/modules/gd.so | grep T1_
0000000000000000         *UND*  0000000000000000              T1_GetCharOutline
0000000000000000         *UND*  0000000000000000              T1_RotateMatrix
0000000000000000         *UND*  0000000000000000              T1_InitLib
0000000000000000         *UND*  0000000000000000              T1_AAFillOutline
0000000000000000         *UND*  0000000000000000              T1_GetCharBBox
0000000000000000         *UND*  0000000000000000              T1_AAHSetGrayValues
0000000000000000         *UND*  0000000000000000              T1_AASetString
0000000000000000         *UND*  0000000000000000              T1_AASetBitsPerPixel
0000000000000000         *UND*  0000000000000000              T1_SetBitmapPad
0000000000000000         *UND*  0000000000000000              T1_CloseLib
0000000000000000         *UND*  0000000000000000              T1_SetLogLevel
0000000000000000         *UND*  0000000000000000              T1_SlantFont
0000000000000000         *UND*  0000000000000000              T1_DeleteAllSizes
0000000000000000         *UND*  0000000000000000              T1_errno
0000000000000000         *UND*  0000000000000000              T1_GetCharWidth
0000000000000000         *UND*  0000000000000000              T1_ReencodeFont
0000000000000000         *UND*  0000000000000000              T1_StrError
0000000000000000         *UND*  0000000000000000              T1_DeleteFont
0000000000000000         *UND*  0000000000000000              T1_ConcatOutlines
0000000000000000         *UND*  0000000000000000              T1_AASetGrayValues
0000000000000000         *UND*  0000000000000000              T1_GetKerning
0000000000000000         *UND*  0000000000000000              T1_GetMoveOutline
0000000000000000         *UND*  0000000000000000              T1_LoadFont
0000000000000000         *UND*  0000000000000000              T1_ExtendFont
0000000000000000         *UND*  0000000000000000              T1_GetExtend
0000000000000000         *UND*  0000000000000000              T1_AASetLevel
0000000000000000         *UND*  0000000000000000              T1_DeleteEncoding
0000000000000000         *UND*  0000000000000000              T1_GetStringBBox
0000000000000000         *UND*  0000000000000000              T1_AddFont
0000000000000000         *UND*  0000000000000000              T1_LoadEncoding

objdump -x /usr/ports/graphics/php53-gd/work/php-5.3.15/ext/gd/modules/gd.so | grep arginfo_imageps
0000000000151680 l     O .data  0000000000000050              arginfo_imagepsloadfont
00000000001516e0 l     O .data  0000000000000050              arginfo_imagepsfreefont
0000000000151740 l     O .data  0000000000000078              arginfo_imagepsencodefont
00000000001517c0 l     O .data  0000000000000078              arginfo_imagepsextendfont
0000000000151840 l     O .data  0000000000000078              arginfo_imagepsslantfont
00000000001518c0 l     O .data  0000000000000208              arginfo_imagepstext
0000000000151ae0 l     O .data  0000000000000118              arginfo_imagepsbbox

Looks like HAVE_LIBT1 is defined during build.
>How-To-Repeat:
Compile with T1LIB option OFF
>Fix:
I'm not a M4 expert. At first sight, couldn't find why.

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201207240652.q6O6qNkm005674>