FC6: library global symbol abuse

Hans de Goede j.w.r.degoede at hhs.nl
Thu Nov 16 19:55:44 UTC 2006



Joe Orton wrote:
> Below is the output of the script I have to check for global symbol 
> collisions in FC6 libraries, from an i386 @Everything install... some 
> false positives and the usual sorry story.
> 

Cool script, good work!


> Symbol clashes between libraries /usr/lib/libgd.so.2.0.0 /usr/lib/libwmf-0.2.so.7.1.0:
>   => gdImageStringUp16 gdFontSmallRep gdImageSaveAlpha fill_input_buffer gdPutBuf Putchar gdImageGetTrueColorPixel writewbmp gdFontTinyRep gdImageCreateFromJpegCtx gdImageRectangle gdCalloc gdImageFilledArc gdSinT gdFontTinyData gdNewFileCtx gdImageColorClosest gdImageGd2Ptr gdImageFilledRectangle skip_input_data gdPutWord gdImageColorDeallocate gdImageCopyMergeGray gdImageString16 gdImageCreateFromGd2 gdImageCreateFromPngSource gdCacheGet gdImageCreateFromWBMP gdImageCreateFromWBMPCtx term_source gdImagePng gd_getin gdImageColorClosestAlpha gdImageCreateFromPngCtx gdImageStringTTF skipheader gdSeek gdImageCopy gdImageFillToBorder gdImageGd gdImageAlphaBlending gdRealloc gdImageColorTransparent gdImageSetBrush gdFontSmallData createwbmp Putword init_source gdFree gdImageCreateFromJpeg gdPutInt gdImageInterlace gd_putout gdImageStringUp gdImageColorAllocate gdImageTrueColorToPalette gdImageCreateFromGd gdImageGdPtr gdFontTiny gdImageCreateFromGd2Ctx gdImageCreateFromXbm gdIm
ageDestroy putmbi getmbi gdImageJpeg gdGetC gdImageColorExact gdTell gdImageLine gdImagePngPtr gdDPExtractData gdImagePngCtx gd_strtok_r gdImageChar gdImageFill gdImageSetThickness empty_output_buffer gdImageCreateFromGdCtx gdImageCreateFromPng gdFontLargeData gdFontLargeRep gdFontGiantData any2eucjp gdImageCreate gdImageCopyMerge gdImageCopyResized gdImageGd2 gdImageWBMPCtx gdImageBoundsSafe lsqrt gdImageColorResolveAlpha init_destination gdFontMediumBold gdImageFilledEllipse gdImageGetPixel gdImageCreateFromXpm gdImageCreateFromGd2Part gdCacheCreate gdImageDashedLine gdImagePngToSink readwbmp term_destination jpeg_gdIOCtx_src gdImageColorAllocateAlpha gdGetBuf gdImageColorResolve gdNewSSCtx gdFontSmall gdMalloc gdImageSetStyle gdFontMediumBoldRep gdImageStringFT gdCacheDelete gdNewDynamicCtx gdImageCreateTrueColor gdImageCompare gdFontLarge gdFontGiantRep jpeg_gdIOCtx_dest gdImageColorClosestHWB gdImageCharUp gdImageArc gdAlphaBlend gdImageString gdCosT gdGetWord gdImageCop
yResampled gdImageJpegCtx gdImageCreateFromGd2PartCtx gdImagePaletteCopy gdImageWBMPPtr gdFontMediumBoldData gdGetInt gdImageColorExactAlpha gdGetByte gdPutC gdImageJpegPtr gdFontGiant printwbmp gdImageSetPixel gdImageWBMP freewbmp gdImageFilledPolygon gdImagePolygon gdImageSetTile
> 

Looks like libwmf contains its own private copy of libgd, BAD! BZ please.

> Symbol clashes between libraries /usr/lib/libartsc.so.0.0.0 /usr/lib/libartsdsp_st.so.0.0.0 /usr/lib/libgcj.so.7rh.0.0 /usr/lib/libkdecore.so.4.2.0 /usr/lib/libltdl.so.3.1.4 /usr/lib/libMagick.so.10.0.3 /usr/lib/libmcop.so.1.0.0 /usr/lib/libodbcinst.so.1.0.0 /usr/lib/libodbcpsql.so.1.0.0 /usr/lib/libodbcpsql.so.2.0.0 /usr/lib/libtemplate.so.1.0.0:
>   => lt_dlloader_find lt_dlinit lt_dlseterror lt_dlmutex_register lt_dlopen lt_dlloader_remove lt_dlisresident lt_dlloader_data lt_dlmalloc lt_dlforeach lt_dlloader_add lt_dlsetsearchpath lt_dlsym lt_dladdsearchdir lt_dlgetinfo lt_dlcaller_get_data lt_dlcaller_set_data lt_dlpreload_default lt_dlcaller_register lt_dlmakeresident lt_dlclose lt_dlloader_name lt_dlhandle_next lt_dlloader_next lt_dlfree lt_dlerror lt_dlpreload lt_dlopenext lt_dlexit lt_dlgetsearchpath lt_dladderror
> 

Looks like these contain a private copy of libltdl, BAD! BZ please.

> Symbol clashes between libraries /usr/lib/libgs.so.8.15 /usr/lib/libjpeg.so.62.0.0:
>   => jpeg_free_small jpeg_get_small jpeg_get_large jpeg_mem_init jpeg_free_large jpeg_mem_term jpeg_mem_available jpeg_open_backing_store
> 

Looks like libgs contains a few private copies of libjpeg functions,
these should be checked to see if they are different from the libjpeg
ones and if different they should not be exported and if not different
they should be removed and the libjpeg ones should be used.

> Symbol clashes between libraries /usr/lib/libopal_linux_x86_r.so.2.2.2 /usr/lib/libspeex.so.1.3.0:
>   => speex_decoder_destroy speex_std_low_mode_request_handler exc_gain_quant_scal3 exc_gain_quant_scal1 comb_filter speex_bits_init_buffer speex_decode_int high_lsp_cdbk hexc_10_32_table speex_lib_get_mode sb_encoder_destroy print_vec speex_encoder_init speex_mode_query be_int vbr_destroy qmf_decomp le_int lsp_unquant_nb speex_realloc speex_bits_unpack_unsigned open_loop_nbest_pitch iir_mem2 speex_bits_peek_unsigned fir_mem2 exc_10_32_table speex_alloc nb_decoder_destroy lsp_unquant_high lsp_quant_lbr speex_std_vbr_quality_request_handler lsp_quant_high exc_10_16_table speex_std_mode_request_handler nb_encoder_init syn_percep_zero speex_header_to_packet residue_percep_zero speex_free speex_move speex_bits_rewind lsp_unquant_lbr speex_bits_insert_terminator speex_std_vbr_request_handler cdbk_nb_high2 cdbk_nb_high1 speex_bits_peek nb_encoder_destroy nb_encode exc_5_64_table noise_codebook_unquant speex_bits_read_from speex_rand pitch_search_3tap speex_encoder_destroy speex_en
coder_ctl split_cb_shape_sign_unquant speex_rand_vec speex_decoder_init forced_pitch_quant sb_encoder_ctl speex_bits_init speex_encode_int vq_nbest_sign sb_encode gain_cdbk_nb vbr_hb_thresh speex_bits_reset sb_decoder_init hexc_table pitch_unquant_3tap lpc_to_lsp speex_encode noise_codebook_quant nb_encoder_ctl speex_inband_handler speex_uwb_mode nb_decoder_ctl exc_8_128_table bw_lpc forced_pitch_unquant speex_bits_pack gain_cdbk_lbr speex_bits_nbytes speex_mode_list speex_lib_ctl lsp_enforce_margin speex_bits_write_whole_bytes nb_decode speex_warning_int speex_error speex_warning exc_20_32_table speex_std_high_mode_request_handler speex_default_user_handler speex_bits_remaining speex_bits_unpack_signed vbr_uhb_thresh vbr_analysis speex_bits_advance sb_decoder_ctl lsp_to_lpc exc_5_256_table speex_init_header sb_encoder_init fir_mem_up vbr_init speex_wb_mode split_cb_search_shape_sign speex_packet_to_header vq_index high_lsp_cdbk2 sb_decode speex_nb_mode filter_mem2 speex_std_
char_handler nb_decoder_init speex_bits_write sb_decoder_destroy speex_bits_read_whole_bytes speex_bits_destroy speex_decode cdbk_nb_low1 cdbk_nb_low2 cdbk_nb speex_std_enh_request_handler vq_nbest speex_decoder_ctl lsp_quant_nb vbr_nb_thresh
> 

Looks like libopal_linux_x86_r.so.2.2.2, contains its own copy of speex,
bad BZ please.

> 
> Symbol clashes between libraries /usr/lib/libsefs.so.1.3 /usr/lib/libsqlite3.so.0.8.6:
>   => sqlite3VdbeDeleteAuxData sqlite3BtreeIsInStmt sqlite3GenerateConstraintChecks sqlite3FixSrcList sqlite3BtreeRollbackStmt sqlite3ValueFree sqlite3_total_changes sqlite3pager_stmt_commit sqlite3BtreeBeginStmt sqlite3BtreeCommit sqlite3_column_double sqlite3DeleteTriggerStep sqlite3utf16ByteLen sqlite3VdbeMemStringify sqlite3_column_int sqlite3BtreeCursor sqlite3FindTable sqlite3FixSelect sqlite3_value_text16be sqlite3pager_set_codec sqlite3_temp_directory sqlite3VdbeMemMove sqlite3_errcode sqlite3VdbeMemCopy sqlite3BtreeData sqlite3FinishTrigger sqlite3GenerateRowDelete sqlite3_bind_parameter_count sqlite3ExprIfFalse sqlite3_column_name16 sqlite3ExprIsInteger sqlite3StrDup sqlite3SrcListAppend sqlite3pager_commit sqlite3LocateTable sqlite3pager_begin sqlite3_user_data sqlite3VdbeGetOp sqlite3VdbeMemSetInt64 sqlite3VdbeMemIntegerify sqlite3MallocRaw sqlite3AddColumn sqlite3OsUnlock sqlite3_result_text16 sqlite3Update sqlite3_result_null sqlite3HashInit sqlite3IdListDup sq
lite3_value_text16le sqlite3SrcListDelete sqlite3_errmsg sqlite3Randomness sqlite3_result_blob sqlite3_column_decltype16 sqlite3VdbeMemShallowCopy sqlite3pager_sync sqlite3ParserAlloc sqlite3BtreeClearTable sqlite3_create_collation sqlite3_column_count sqlite3BtreeDropTable sqlite3Detach sqlite3VdbeMakeLabel sqlite3VdbeSetColName sqlite3_get_table sqlite3BtreeKeySize sqlite3HashInsert sqlite3ExprAnd sqlite3_column_decltype sqlite3CreateForeignKey sqlite3VdbeMemMakeWriteable sqlite3VdbeHalt sqlite3BtreeGetFilename sqlite3Parser sqlite3FixExprList sqlite3SafetyOn sqlite3_errmsg16 sqlite3AddColumnType sqlite3HashFind sqlite3BtreeKey sqlite3_column_text sqlite3Expr sqlite3BeginParse sqlite3pager_set_reiniter sqlite3BtreeIntegrityCheck sqlite3VdbeIntValue sqlite3CheckObjectName sqlite3_bind_blob sqlite3CommitInternalChanges sqlite3GenerateIndexKey sqlite3_open sqlite3Vacuum sqlite3MemCompare sqlite3BeginTrigger sqlite3BtreeSetSafetyLevel sqlite3FreeX sqlite3BtreeGetPageSize sqlite
3FindFunction sqlite3_get_auxdata sqlite3pager_set_pagesize sqlite3VdbeSetNumCols sqlite3UnlinkAndDeleteIndex sqlite3_complete16 sqlite3PutVarint sqlite3_snprintf sqlite3BeginTransaction sqlite3StartTable sqlite3VdbeMemSetNull sqlite3SafetyOff sqlite3_step sqlite3VdbeRealValue sqlite3BtreeNext sqlite3IndexAffinityOk sqlite3OsSync sqlite3AuthRead sqlite3GetVarint32 sqlite3TriggerInsertStep sqlite3BtreeDelete sqlite3_result_text16le sqlite3VdbeSerialTypeLen sqlite3VMPrintf sqlite3_data_count sqlite3CreateView sqlite3ExprCode sqlite3VdbePrintSql sqlite3_value_text16 sqlite3ResetInternalSchema sqlite3_bind_int sqlite3pager_rollback sqlite3ValueBytes sqlite3pager_set_busyhandler sqlite3BtreeGetDirname sqlite3_mprintf sqlite3FitsIn64Bits sqlite3DeferForeignKey sqlite3_value_bytes sqlite3VdbeChangeEncoding sqlite3VdbeList sqlite3CreateIndex sqlite3_open16 sqlite3StrICmp sqlite3_create_function16 sqlite3ResultSetOfSelect sqlite3BtreeSetPageSize sqlite3_result_double sqlite3IdListInde
x sqlite3IsReadOnly sqlite3BtreeDataSize sqlite3BtreeFlags sqlite3WhereEnd sqlite3_interrupt_count sqlite3AuthContextPush sqlite3RollbackAll sqlite3_commit_hook sqlite3Error sqlite3_result_text sqlite3ViewGetColumnNames sqlite3StrNICmp sqlite3_prepare16 sqlite3ExprCodeExprList sqlite3pager_read_fileheader sqlite3BtreeFactory sqlite3_bind_parameter_name sqlite3RegisterBuiltinFunctions sqlite3Realloc sqlite3_column_int64 sqlite3_create_function sqlite3CheckCollSeq sqlite3BtreeClose sqlite3AddNotNull sqlite3ExprCompare sqlite3DeleteTrigger sqlite3pager_unref sqlite3_bind_parameter_index sqlite3BtreeInsert sqlite3ExprAffinity sqlite3ParserTokenName sqlite3FinishCoding sqlite3RollbackTransaction sqlite3ExprAnalyzeAggregates sqlite3_bind_int64 sqlite3NameFromToken sqlite3AuthContextPop sqlite3BtreePager sqlite3VdbeMemRelease sqlite3VdbeCurrentAddr sqlite3SelectDup sqlite3TableAffinityStr sqlite3BtreeUpdateMeta sqlite3VdbeIdxKeyCompare sqlite3atoi64 sqlite3_column_text16 sqlite3TwoP
artName sqlite3VdbeSerialType sqlite3GetInt32 sqlite3SrcListDup sqlite3Malloc sqlite3_search_count sqlite3_os_trace sqlite3BtreeDataFetch sqlite3ErrorMsg sqlite3VdbeChangeP1 sqlite3OsRead sqlite3_interrupt sqlite3pager_pagenumber sqlite3pager_filename sqlite3GetVarint sqlite3ErrStr sqlite3Dequote sqlite3BtreeSetCacheSize sqlite3pager_journalname sqlite3_result_int sqlite3VdbeIdxRowidLen sqlite3utf8CharLen sqlite3DeleteTable sqlite3Select sqlite3VdbeMakeReady sqlite3InitCallback sqlite3VdbeAddOp sqlite3IsNumber sqlite3Attach sqlite3TriggersExist sqlite3VdbeFreeCursor sqlite3BtreeFirst sqlite3one sqlite3CommitTransaction sqlite3AddCollateType sqlite3pager_dirname sqlite3WhereBegin sqlite3SrcListLookup sqlite3CompareAffinity sqlite3VdbeChangeP3 sqlite3RunVacuum sqlite3DropTrigger sqlite3OpenTableAndIndices sqlite3VdbeSetChanges sqlite3FindIndex sqlite3VdbeOp3 sqlite3_column_name sqlite3_complete sqlite3SafetyCheck sqlite3ExprSpan sqlite3UnlinkAndDeleteTable sqlite3EndTable sqlit
e3SetString sqlite3_aggregate_context sqlite3VdbeResolveLabel sqlite3_column_bytes sqlite3ExprCollSeq sqlite3BtreeGetJournalname sqlite3ChangeCookie sqlite3Insert sqlite3CompleteInsertion sqlite3VarintLen sqlite3BtreeSync sqlite3_set_auxdata sqlite3_exec sqlite3VdbeReset sqlite3GenerateRowIndexDelete sqlite3OsOpenDirectory sqlite3OsLock sqlite3_last_insert_rowid sqlite3VdbeMemHandleBom sqlite3VdbeCreate sqlite3ExprFunction sqlite3VdbeMemTranslate sqlite3pager_pagecount sqlite3FixTriggerStep sqlite3GetVdbe sqlite3VdbeTrace sqlite3VdbeSerialPut sqlite3pager_stats sqlite3VdbeMemSetStr sqlite3LocateCollSeq sqlite3pager_stmt_begin sqlite3VdbeFinalize sqlite3UpperToLower sqlite3IdListAppend sqlite3OsTruncate sqlite3CodeVerifySchema sqlite3ExprIfTrue sqlite3pager_set_destructor sqlite3_version sqlite3pager_overwrite sqlite3_value_blob sqlite3VdbeExec sqlite3pager_isreadonly sqlite3ExprListDup sqlite3pager_stmt_rollback sqlite3pager_truncate sqlite3_result_text16be sqlite3pager_looku
p sqlite3BtreeLast sqlite3ReadUtf8 sqlite3_finalize sqlite3pager_set_cachesize sqlite3_busy_timeout sqlite3IndexAffinityStr sqlite3_btree_trace sqlite3SrcListAddAlias sqlite3OsSeek sqlite3BtreeEof sqlite3VdbeMemFromBtree sqlite3_result_int64 sqlite3CodeRowTrigger sqlite3_result_value sqlite3_value_text sqlite3VdbeCountChanges sqlite3pager_dont_write sqlite3Init sqlite3BtreeCreateTable sqlite3SrcListAssignCursors sqlite3VdbeRecordCompare sqlite3ExprDelete sqlite3_value_type sqlite3_bind_double sqlite3pager_ref sqlite3_changes sqlite3BtreeGetReserve sqlite3BtreeKeyFetch sqlite3_bind_text16 sqlite3VdbeMemDynamicify sqlite3BtreeCloseCursor sqlite3VdbeMemRealify sqlite3_vmprintf sqlite3BtreePrevious sqlite3_free sqlite3VdbeCursorMoveto sqlite3_bind_text sqlite3HashClear sqlite3TokenCopy sqlite3_value_int64 sqlite3ValueNew sqlite3_value_int sqlite3RollbackInternalChanges sqlite3_result_error sqlite3_column_bytes16 sqlite3HexToBlob sqlite3StrNDup sqlite3pager_dont_rollback sqlite3Bt
reeRollback sqlite3BtreeIsInTrans sqlite3VdbeDelete sqlite3pager_get sqlite3VdbeIdxRowid sqlite3BtreeSetBusyHandler sqlite3ValueText sqlite3ExprIsConstant sqlite3OpcodeNames sqlite3DropTriggerPtr sqlite3AddPrimaryKey sqlite3RunParser sqlite3OsClose sqlite3IdListDelete sqlite3AtoF sqlite3ParserFree sqlite3JoinType sqlite3ValueSetStr sqlite3OsWrite sqlite3_collation_needed sqlite3pager_write sqlite3DropTable sqlite3VdbeMemSetDouble sqlite3_reset sqlite3VdbeMemNulTerminate sqlite3RegisterDateTimeFunctions sqlite3ExprListAppend sqlite3_column_type sqlite3AffinityType sqlite3SelectNew sqlite3DeleteFrom sqlite3_free_table sqlite3BtreeOpen sqlite3IsRowid sqlite3DropIndex sqlite3_collation_needed16 sqlite3_create_collation16 sqlite3_trace sqlite3BtreeMoveto sqlite3OpenMasterTable sqlite3_column_blob sqlite3AuthCheck sqlite3VdbeAddOpList sqlite3AddDefaultValue sqlite3_aggregate_count sqlite3FixExpr sqlite3_libversion sqlite3ExprDup sqlite3ExprListDelete sqlite3OsCheckReservedLock sqli
te3_value_double sqlite3BtreeGetMeta sqlite3_progress_handler sqlite3_busy_handler sqlite3VdbeChangeP2 sqlite3SelectDelete sqlite3_bind_null sqlite3UnlinkAndDeleteTrigger sqlite3ReadSchema sqlite3_close sqlite3utf16Substr sqlite3FixInit sqlite3KeywordCode sqlite3pager_set_safety_level sqlite3OsFileSize sqlite3BtreeBeginTrans sqlite3_result_error16 sqlite3BtreeCopyFile sqlite3_value_bytes16 sqlite3BtreeCommitStmt sqlite3pager_close sqlite3_set_authorizer sqlite3TriggerSelectStep sqlite3Pragma sqlite3TriggerDeleteStep sqlite3FindCollSeq sqlite3TriggerUpdateStep sqlite3BeginWriteOperation sqlite3MPrintf sqlite3VdbeSerialGet sqlite3ExprAssignVarNumber sqlite3_prepare sqlite3pager_open
> 

Looks like libsefs contains its own copy of sqlite3, bad BZ please.

Regards,

Hans




More information about the Fedora-maintainers mailing list