Too many functions exported in TDengine database libtaos.so/libtaos.dylib - database
on macOS:
nm -g debug/build/lib/libtaos.1.dylib
shows, that not only functions declared in taos.h are exported in dynamic library, but also internal functions, which is not elegant.
I would say this operation might cause some potential security vulnerability in target machine.
0000000000384ec0 T _vnodeProcessQueryMsg
0000000000387750 T _vnodeProcessSyncMsg
0000000000381360 T _vnodeProcessWriteMsg
0000000000385b40 T _vnodeProposeCommitOnNeed
0000000000385ea0 T _vnodeProposeWriteMsg
000000000037dd60 T _vnodeQueryClose
000000000037dcf0 T _vnodeQueryOpen
000000000037dd30 T _vnodeQueryPreClose
00000000003856a0 T _vnodeRedirectRpcMsg
000000000037f320 T _vnodeResetLoad
000000000037d440 T _vnodeRollback
000000000037c3a0 T _vnodeSaveInfo
00000000003800e0 T _vnodeScheduleTask
000000000037c200 T _vnodeShouldCommit
000000000037c320 T _vnodeShouldCommitOld
000000000037d350 T _vnodeShouldRollback
0000000000389ee0 T _vnodeSnapRead
0000000000389e20 T _vnodeSnapReaderClose
0000000000389cd0 T _vnodeSnapReaderOpen
000000000038aee0 T _vnodeSnapWrite
000000000038aa80 T _vnodeSnapWriterClose
000000000038a8f0 T _vnodeSnapWriterOpen
00000000003793b0 T _vnodeStart
00000000003793d0 T _vnodeStop
00000000003885f0 T _vnodeSyncCheckTimeout
0000000000388580 T _vnodeSyncClose
000000000037d310 T _vnodeSyncCommit
0000000000387c90 T _vnodeSyncOpen
0000000000388510 T _vnodeSyncPostClose
0000000000388400 T _vnodeSyncPreClose
0000000000388320 T _vnodeSyncStart
000000000037c180 T _vnodeUpdCommitSched
00000000003855e0 T _vnodeUpdateMetaRsp
000000000037bde0 T _vnodeValidateTableHash
000000000037fcc0 T _vnode_done_commit
000000000037fca0 T _vnode_wait_commit
0000000000441c70 T _voteGrantedCreate
0000000000441d70 T _voteGrantedDestroy
0000000000441e20 T _voteGrantedMajority
00000000004420f0 T _voteGrantedReset
0000000000441da0 T _voteGrantedUpdate
0000000000441e40 T _voteGrantedVote
00000000004422e0 T _votesRespondAdd
0000000000442130 T _votesRespondCreate
00000000004421d0 T _votesRespondDestory
Related
How to extract function names from a library / binary
I have a library with debug symbols, and I do the following to extract function names: $ objdump -S -D library_name.so > library_name.asm $ grep -rn ">:" library_name.asm This gives me what I want: 3101:0000000000002190 <memset#plt>: 3106:00000000000021a0 <close#plt>: but seems a bit awkward ... Is there a better way to achieve this?
I think the utility you're looking for is nm: It collects all the symbols, both static and dynamic, defined in a library or any ELF file. The output looks like this: 000000ec T main 000003f0 a REG_HID0 000003f1 a REG_HID1 00000ec4 T RSA_bigint_add 000009e0 T RSA_bigint_clear 00000a0c T RSA_bigint_cmp 00000dd8 T RSA_bigint_gen 00000aa4 T RSA_bigint_get_bitlength 000010f4 T RSA_bigint_intmul 00000c20 T RSA_bigint_lshift 00001330 T RSA_bigint_mod 00001470 T RSA_bigint_modexp 0000142c T RSA_bigint_modmul 0000120c T RSA_bigint_mul 00000aec T RSA_bigint_rshift 00001024 T RSA_bigint_sub 00000238 T RSA_check_data_with_certificate 00000180 T RSA_check_signature 000002d0 T RSA_x509_get_field 000003a4 T RSA_x509_get_int 000008f8 T RSA_x509_parse_certificate 0000042c T RSA_x509_parse_PKI 000007d8 T RSA_x509_parse_signature 0000057c T RSA_x509_parse_tbscertificate
GCC Linker cannot locate library
I'm trying to compile the PCRE library into a testing executable. The documentation states that running Make and then configure should generate the library. In the PCRE source directory: Make ./configure gcc -o test test.c -L . -lpcre However the following error returns: /usr/bin/ld: cannot find -pcre collect2: error: ld returned 1 exit status Note: I've also tried flag -libpcre. I was able to sucessfully run this on MacOS (seperately compiled but same library source code and same testiing source code). Directory Contents: 132html pcre16_globals.c aclocal.m4 pcre16_jit_compile.c AUTHORS pcre16_maketables.c ChangeLog pcre16_newline.c CheckMan pcre16_ord2utf16.c CleanTxt pcre16_printint.c cmake pcre16_refcount.c CMakeLists.txt pcre16_string_utils.c compile pcre16_study.c config-cmake.h.in pcre16_tables.c config.guess pcre16_ucd.c config.h pcre16_utf16_utils.c config.h.generic pcre16_valid_utf16.c config.h.in pcre16_version.c config.log pcre16_xclass.c config.status pcre32_byte_order.c config.sub pcre32_chartables.c configure pcre32_compile.c configure.ac pcre32_config.c COPYING pcre32_dfa_exec.c depcomp pcre32_exec.c Detrail pcre32_fullinfo.c dftables.c pcre32_get.c doc pcre32_globals.c HACKING pcre32_jit_compile.c INSTALL pcre32_maketables.c install-sh pcre32_newline.c libpcre16.pc pcre32_ord2utf32.c libpcre16.pc.in pcre32_printint.c libpcre32.pc pcre32_refcount.c libpcre32.pc.in pcre32_string_utils.c libpcrecpp.la pcre32_study.c libpcrecpp_la-pcrecpp.lo pcre32_tables.c libpcrecpp_la-pcrecpp.o pcre32_ucd.c libpcrecpp_la-pcre_scanner.lo pcre32_utf32_utils.c libpcrecpp_la-pcre_scanner.o pcre32_valid_utf32.c libpcrecpp_la-pcre_stringpiece.lo pcre32_version.c libpcrecpp_la-pcre_stringpiece.o pcre32_xclass.c libpcrecpp.pc pcre_byte_order.c libpcrecpp.pc.in pcre_chartables.c libpcre.la pcre_chartables.c.dist libpcre_la-pcre_byte_order.lo pcre_compile.c libpcre_la-pcre_byte_order.o pcre-config libpcre_la-pcre_chartables.lo pcre_config.c libpcre_la-pcre_chartables.o pcre-config.in libpcre_la-pcre_compile.lo pcrecpparg.h libpcre_la-pcre_compile.o pcrecpparg.h.in libpcre_la-pcre_config.lo pcrecpp.cc libpcre_la-pcre_config.o pcrecpp.h libpcre_la-pcre_dfa_exec.lo pcrecpp_internal.h libpcre_la-pcre_dfa_exec.o pcrecpp_unittest libpcre_la-pcre_exec.lo pcrecpp_unittest.cc libpcre_la-pcre_exec.o pcrecpp_unittest-pcrecpp_unittest.o libpcre_la-pcre_fullinfo.lo pcredemo libpcre_la-pcre_fullinfo.o pcredemo.c libpcre_la-pcre_get.lo pcre_dfa_exec.c libpcre_la-pcre_get.o pcre_exec.c libpcre_la-pcre_globals.lo pcre_fullinfo.c libpcre_la-pcre_globals.o pcre_get.c libpcre_la-pcre_jit_compile.lo pcregexp.pas libpcre_la-pcre_jit_compile.o pcre_globals.c libpcre_la-pcre_maketables.lo pcregrep libpcre_la-pcre_maketables.o pcregrep.c libpcre_la-pcre_newline.lo pcregrep-pcregrep.o libpcre_la-pcre_newline.o pcre.h libpcre_la-pcre_ord2utf8.lo pcre.h.generic libpcre_la-pcre_ord2utf8.o pcre.h.in libpcre_la-pcre_refcount.lo pcre_internal.h libpcre_la-pcre_refcount.o pcre_jit_compile.c libpcre_la-pcre_string_utils.lo pcre_jit_test.c libpcre_la-pcre_string_utils.o pcre_maketables.c libpcre_la-pcre_study.lo pcre_newline.c libpcre_la-pcre_study.o pcre_ord2utf8.c libpcre_la-pcre_tables.lo pcreposix.c libpcre_la-pcre_tables.o pcreposix.h libpcre_la-pcre_ucd.lo pcre_printint.c libpcre_la-pcre_ucd.o pcre_refcount.c libpcre_la-pcre_valid_utf8.lo pcre_scanner.cc libpcre_la-pcre_valid_utf8.o pcre_scanner.h libpcre_la-pcre_version.lo pcre_scanner_unittest libpcre_la-pcre_version.o pcre_scanner_unittest.cc libpcre_la-pcre_xclass.lo pcre_scanner_unittest-pcre_scanner_unittest.o libpcre_la-pcre_xclass.o pcre_stringpiece.cc libpcre.pc pcre_stringpiece.h libpcre.pc.in pcre_stringpiece.h.in libpcreposix.la pcre_stringpiece_unittest libpcreposix_la-pcreposix.lo pcre_stringpiece_unittest.cc libpcreposix_la-pcreposix.o pcre_stringpiece_unittest-pcre_stringpiece_unittest.o libpcreposix.pc pcre_string_utils.c libpcreposix.pc.in pcre_study.c libtool pcre_tables.c LICENCE pcretest ltmain.sh pcre_test.c m4 pcretest.c Makefile pcretest-pcre_printint.o Makefile.am pcretest-pcretest.o Makefile.in pcre_ucd.c makevp.bat pcre_valid_utf8.c makevp_c.txt pcre_version.c makevp_l.txt pcre_xclass.c missing perltest.pl NEWS PrepareRelease NON-AUTOTOOLS-BUILD README NON-UNIX-USE RunGrepTest pcre16_byte_order.c RunTest pcre16_chartables.c RunTest.bat pcre16_compile.c sljit pcre16_config.c stamp-h1 pcre16_dfa_exec.c test.c pcre16_exec.c testdata pcre16_fullinfo.c ucp.h pcre16_get.c
Try -lpcre not -libpcre when you link. -l assumes the lib prefix and takes the name of the lib so -lpcre looks for libpcre
File names conventions in glibc/math?
If we look to the directory math of the C library glibc, we have the following files : atest-exp2.c atest-exp.c atest-sincos.c basic-test.c bits bug-nextafter.c bug-nexttoward.c bug-tgmath1.c cabs.c cabsf.c cabsl.c carg.c cargf.c cargl.c cimag.c cimagf.c cimagl.c complex.h conj.c conjf.c conjl.c creal.c crealf.c creall.c divtc3.c e_acoshl.c e_acosl.c e_asinl.c e_atan2l.c e_atanhl.c e_coshl.c e_exp10.c e_exp10f.c e_exp10l.c e_exp2l.c e_expl.c e_fmodl.c e_gammal_r.c e_hypotl.c e_j0l.c e_j1l.c e_jnl.c e_lgammal_r.c e_log10l.c e_log2l.c e_logl.c e_powl.c e_rem_pio2l.c e_scalb.c e_scalbf.c e_scalbl.c e_sinhl.c e_sqrtl.c fclrexcpt.c fedisblxcpt.c feenablxcpt.c fegetenv.c fegetexcept.c fegetround.c feholdexcpt.c fenv.h fesetenv.c fesetround.c feupdateenv.c fgetexcptflg.c fpu_control.c fraiseexcpt.c fsetexcptflg.c ftestexcept.c gen-libm-test.pl ieee-math.c k_cosl.c k_rem_pio2l.c k_sincosl.c k_sinl.c k_tanl.c libm-test.inc machine Makefile math.h multc3.c README.libm-test s_asinhl.c s_atanl.c s_cacos.c s_cacosf.c s_cacosh.c s_cacoshf.c s_cacoshl.c s_cacosl.c s_casin.c s_casinf.c s_casinh.c s_casinhf.c s_casinhl.c s_casinl.c s_catan.c s_catanf.c s_catanh.c s_catanhf.c s_catanhl.c s_catanl.c s_cbrtl.c s_ccos.c s_ccosf.c s_ccosh.c s_ccoshf.c s_ccoshl.c s_ccosl.c s_cexp.c s_cexpf.c s_cexpl.c s_clog10.c s_clog10f.c s_clog10l.c s_clog.c s_clogf.c s_clogl.c s_cpow.c s_cpowf.c s_cpowl.c s_cproj.c s_cprojf.c s_cprojl.c s_csin.c s_csinf.c s_csinh.c s_csinhf.c s_csinhl.c s_csinl.c s_csqrt.c s_csqrtf.c s_csqrtl.c s_ctan.c s_ctanf.c s_ctanh.c s_ctanhf.c s_ctanhl.c s_ctanl.c s_erfl.c setfpucw.c s_expm1l.c s_fdim.c s_fdimf.c s_fdiml.c s_fma.c s_fmaf.c s_fmal.c s_fmax.c s_fmaxf.c s_fmaxl.c s_fmin.c s_fminf.c s_fminl.c s_ldexp.c s_ldexpf.c s_ldexpl.c s_log1pl.c s_nan.c s_nanf.c s_nanl.c s_nextafter.c s_nexttowardf.c s_nexttowardl.c s_significand.c s_significandf.c s_significandl.c s_tanhl.c test-double.c test-fenv.c test-float.c test-fpucw.c test-idouble.c test-ifloat.c test-ildoubl.c test-ldouble.c test-matherr.c test-misc.c test-powl.c test-tgmath2.c test-tgmath.c test-tgmath-int.c test-tgmath-ret.c tgmath.h t_sincosl.c tst-CMPLX2.c tst-CMPLX.c tst-definitions.c Versions w_acos.c w_acosf.c w_acosh.c w_acoshf.c w_acoshl.c w_acosl.c w_asin.c w_asinf.c w_asinl.c w_atan2.c w_atan2f.c w_atan2l.c w_atanh.c w_atanhf.c w_atanhl.c w_cosh.c w_coshf.c w_coshl.c w_drem.c w_dremf.c w_dreml.c w_exp10.c w_exp10f.c w_exp10l.c w_exp2.c w_exp2f.c w_exp2l.c w_expl.c w_fmod.c w_fmodf.c w_fmodl.c w_hypot.c w_hypotf.c w_hypotl.c w_ilogb.c w_ilogbf.c w_ilogbl.c w_j0.c w_j0f.c w_j0l.c w_j1.c w_j1f.c w_j1l.c w_jn.c w_jnf.c w_jnl.c w_lgamma.c w_lgammaf.c w_lgammaf_r.c w_lgammal.c w_lgammal_r.c w_lgamma_r.c w_log10.c w_log10f.c w_log10l.c w_log2.c w_log2f.c w_log2l.c w_log.c w_logf.c w_logl.c w_pow.c w_powf.c w_powl.c w_remainder.c w_remainderf.c w_remainderl.c w_scalb.c w_scalbf.c w_scalbl.c w_sinh.c w_sinhf.c w_sinhl.c w_sqrt.c w_sqrtf.c w_sqrtl.c w_tgamma.c w_tgammaf.c w_tgammal.c What do the e_, s_ and w_ prefixes mean ?
glXCreateContextAttribsARB not found (on OpenGL 4.2 driver, GLX 1.4)
Strangely enough, despite the fact that I have GLX 1.4, it appears that I don't have glXCreateContextAttribsARB in my repos. I wonder if there's any reasonable explanation for this? This can't be a common issue. glxinfo name of display: :0 display: :0 screen: 0 direct rendering: Yes server glx vendor string: NVIDIA Corporation server glx version string: 1.4 server glx extensions: GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control, GLX_EXT_swap_control, GLX_EXT_texture_from_pixmap, GLX_ARB_create_context, GLX_ARB_create_context_profile, GLX_EXT_create_context_es2_profile, GLX_ARB_create_context_robustness, GLX_ARB_multisample, GLX_NV_float_buffer, GLX_ARB_fbconfig_float, GLX_EXT_framebuffer_sRGB client glx vendor string: NVIDIA Corporation client glx version string: 1.4 client glx extensions: GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_SGI_video_sync, GLX_NV_swap_group, GLX_NV_video_out, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGI_swap_control, GLX_EXT_swap_control, GLX_ARB_create_context, GLX_ARB_create_context_profile, GLX_NV_float_buffer, GLX_ARB_fbconfig_float, GLX_EXT_fbconfig_packed_float, GLX_EXT_texture_from_pixmap, GLX_EXT_framebuffer_sRGB, GLX_NV_present_video, GLX_NV_copy_image, GLX_NV_multisample_coverage, GLX_NV_video_capture, GLX_EXT_create_context_es2_profile, GLX_ARB_create_context_robustness GLX version: 1.4 GLX extensions: GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control, GLX_EXT_swap_control, GLX_EXT_texture_from_pixmap, GLX_ARB_create_context, GLX_ARB_create_context_profile, GLX_EXT_create_context_es2_profile, GLX_ARB_create_context_robustness, GLX_ARB_multisample, GLX_NV_float_buffer, GLX_ARB_fbconfig_float, GLX_EXT_framebuffer_sRGB, GLX_ARB_get_proc_address OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce GTX 550 Ti/PCI/SSE2 OpenGL version string: 4.2.0 NVIDIA 290.10 OpenGL shading language version string: 4.20 NVIDIA via Cg compiler OpenGL extensions: GL_ARB_base_instance, GL_ARB_blend_func_extended, GL_ARB_color_buffer_float, GL_ARB_compatibility, GL_ARB_compressed_texture_pixel_storage, GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, GL_ARB_draw_indirect, GL_ARB_draw_elements_base_vertex, GL_ARB_draw_instanced, GL_ARB_ES2_compatibility, GL_ARB_explicit_attrib_location, GL_ARB_fragment_coord_conventions, GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB, GL_ARB_geometry_shader4, GL_ARB_get_program_binary, GL_ARB_gpu_shader5, GL_ARB_gpu_shader_fp64, GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, GL_ARB_imaging, GL_ARB_instanced_arrays, GL_ARB_internalformat_query, GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_occlusion_query2, GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_provoking_vertex, GL_ARB_robustness, GL_ARB_sample_shading, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map, GL_ARB_separate_shader_objects, GL_ARB_shader_atomic_counters, GL_ARB_shader_bit_encoding, GL_ARB_shader_image_load_store, GL_ARB_shader_objects, GL_ARB_shader_precision, GL_ARB_shader_subroutine, GL_ARB_shading_language_100, GL_ARB_shading_language_420pack, GL_ARB_shading_language_include, GL_ARB_shading_language_packing, GL_ARB_shadow, GL_ARB_sync, GL_ARB_tessellation_shader, GL_ARB_texture_border_clamp, GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_object_rgb32, GL_ARB_texture_compression, GL_ARB_texture_compression_bptc, GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map, GL_ARB_texture_cube_map_array, GL_ARB_texture_env_add, GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3, GL_ARB_texture_float, GL_ARB_texture_gather, GL_ARB_texture_mirrored_repeat, GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two, GL_ARB_texture_query_lod, GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui, GL_ARB_texture_storage, GL_ARB_texture_swizzle, GL_ARB_timer_query, GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced, GL_ARB_transpose_matrix, GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra, GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_64bit, GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_viewport_array, GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_texture_float, GL_ATI_texture_mirror_once, GL_S3_s3tc, GL_EXT_texture_env_add, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_bindable_uniform, GL_EXT_blend_color, GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array, GL_EXT_Cg_shader, GL_EXT_depth_bounds_test, GL_EXT_direct_state_access, GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, GL_EXTX_framebuffer_mixed_formats, GL_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB, GL_EXT_geometry_shader4, GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4, GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil, GL_EXT_packed_float, GL_EXT_packed_pixels, GL_EXT_pixel_buffer_object, GL_EXT_point_parameters, GL_EXT_provoking_vertex, GL_EXT_rescale_normal, GL_EXT_secondary_color, GL_EXT_separate_shader_objects, GL_EXT_separate_specular_color, GL_EXT_shader_image_load_store, GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_texture3D, GL_EXT_texture_array, GL_EXT_texture_buffer_object, GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_latc, GL_EXT_texture_compression_rgtc, GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp, GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic, GL_EXT_texture_format_BGRA8888, GL_EXT_texture_integer, GL_EXT_texture_lod, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp, GL_EXT_texture_object, GL_EXT_texture_shared_exponent, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode, GL_EXT_texture_storage, GL_EXT_texture_swizzle, GL_EXT_texture_type_2_10_10_10_REV, GL_EXT_timer_query, GL_EXT_transform_feedback2, GL_EXT_vertex_array, GL_EXT_vertex_array_bgra, GL_EXT_vertex_attrib_64bit, GL_EXT_x11_sync_object, GL_EXT_import_sync_object, GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat, GL_KTX_buffer_region, GL_NV_alpha_test, GL_NV_blend_minmax, GL_NV_blend_square, GL_NV_complex_primitives, GL_NV_conditional_render, GL_NV_copy_depth_to_color, GL_NV_copy_image, GL_NV_depth_buffer_float, GL_NV_depth_clamp, GL_NV_explicit_multisample, GL_NV_fbo_color_attachments, GL_NV_fence, GL_NV_float_buffer, GL_NV_fog_distance, GL_NV_fragdepth, GL_NV_fragment_program, GL_NV_fragment_program_option, GL_NV_fragment_program2, GL_NV_framebuffer_multisample_coverage, GL_NV_geometry_shader4, GL_NV_gpu_program4, GL_NV_gpu_program4_1, GL_NV_gpu_program5, GL_NV_gpu_program_fp64, GL_NV_gpu_shader5, GL_NV_half_float, GL_NV_light_max_exponent, GL_NV_multisample_coverage, GL_NV_multisample_filter_hint, GL_NV_occlusion_query, GL_NV_packed_depth_stencil, GL_NV_parameter_buffer_object, GL_NV_parameter_buffer_object2, GL_NV_path_rendering, GL_NV_pixel_data_range, GL_NV_point_sprite, GL_NV_primitive_restart, GL_NV_register_combiners, GL_NV_register_combiners2, GL_NV_shader_atomic_counters, GL_NV_shader_buffer_load, GL_NV_texgen_reflection, GL_NV_texture_barrier, GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4, GL_NV_texture_expand_normal, GL_NV_texture_lod_clamp, GL_NV_texture_multisample, GL_NV_texture_rectangle, GL_NV_texture_shader, GL_NV_texture_shader2, GL_NV_texture_shader3, GL_NV_transform_feedback, GL_NV_transform_feedback2, GL_NV_vdpau_interop, GL_NV_vertex_array_range, GL_NV_vertex_array_range2, GL_NV_vertex_attrib_integer_64bit, GL_NV_vertex_buffer_unified_memory, GL_NV_vertex_program, GL_NV_vertex_program1_1, GL_NV_vertex_program2, GL_NV_vertex_program2_option, GL_NV_vertex_program3, GL_NVX_conditional_render, GL_NVX_gpu_memory_info, GL_OES_depth24, GL_OES_depth32, GL_OES_depth_texture, GL_OES_element_index_uint, GL_OES_fbo_render_mipmap, GL_OES_get_program_binary, GL_OES_mapbuffer, GL_OES_packed_depth_stencil, GL_OES_rgb8_rgba8, GL_OES_standard_derivatives, GL_OES_texture_3D, GL_OES_texture_float, GL_OES_texture_float_linear, GL_OES_texture_half_float, GL_OES_texture_half_float_linear, GL_OES_texture_npot, GL_OES_vertex_array_object, GL_OES_vertex_half_float, GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, GL_SGIX_depth_texture, GL_SGIX_shadow, GL_SUN_slice_accum Obviously buffer binding, ARB, and all that other nice stuff is supported, but why not glXCreateContextAttribsARB? Even stranger, what I do have is glXCreateContextAttribsARBPRoc, which I'm curious to know if it would serve as an alternative? This compiles, for example: `glXCreateContextAttribsARBProc glxccarb = 0;`
When you say "don't have", I assume you mean "if I try to call a function of this name directly, my app won't link". That's somewhat by design. The list of functions directly exported from libGL is not growing. If it did, an app that links against a (function exported only by a) new libGL would fail to even launch against an old one. That's bad. glXCreateContextAttribsARB, like all other extension functions, should be looked up using glXGetProcAddressARB. Better yet, use GLEW so you don't have to worry about this level of detail again.
Visual Studio 2005 always relinks the project when the project is generated with CMake
I have a project in Visual 2005 generated using CMake, and everytime I press F5 the linker relinks the objects, even if no modification was done. I have read other questions with similar problems, but the solution for them was: The time of the windows was wrong. It was making the executable to be created with the time in the future. Or The PDB created by the linker and by the compiler had the same name. I've checked that and I don't have that problem. Also, I have another solution for the project (that was not generated by CMake) and it works fine. I've checked the properties of each project and they are similar. This is the output generated in the BuildLog.htm: Build Log Build started: Project: remote4, Configuration: TTecDebug|Win32 Command Lines Creating temporary file "c:\advtec9\trunk\bin_sem_unittest\remote4\remote4.dir\TTecDebug\RSP00008649325832.rsp" with contents [ /OUT:"c:\T\bin\smartclient\TTecDebug..\TSmartClient.exe" /VERSION:0.0 /LIBPATH:"C:\Qt4\lib\TTecDebug" /LIBPATH:"C:\Qt4\lib" /LIBPATH:"C:\Qt4\plugins\imageformats\TTecDebug" /LIBPATH:"C:\Qt4\plugins\imageformats" /LIBPATH:"C:\Qt4\plugins\accessible\TTecDebug" /LIBPATH:"C:\Qt4\plugins\accessible" /LIBPATH:"C:\kdchart4\lib\TTecDebug" /LIBPATH:"C:\kdchart4\lib" /MANIFEST:NO /NODEFAULTLIB:"LIBCMT" /DEBUG /PDB:"c:\T\bin\smartclient\TTecDebug/../TSmartClient.pdb" /SUBSYSTEM:WINDOWS /IMPLIB:"c:\T\bin\smartclient\TTecDebug..\TSmartClient.lib" /machine:X86 /ignore:4217 /ignore:4049 /debug /LIBPATH:C:/advtec9/trunk/openssl/debug kdchartd.lib qtmaind.lib QtCored.lib QtGuid.lib Qt3Supportd.lib QtXmld.lib qtsvgd.lib QtNetworkd.lib QAxServerd.lib QAxContainerd.lib qgifd.lib qjpegd.lib qtaccessiblecompatwidgetsd.lib qtaccessiblewidgetsd.lib C:/advtec9/trunk/senhap/splogin4d.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib ssleay32.lib libeay32.lib mpr.lib imm32.lib winmm.lib ws2_32.lib msimg32.lib odbc32.lib odbccp32.lib ..\lib_comm\TTecDebug\lib_comm.lib ..\lib_getsys\TTecDebug\lib_getsys.lib c:\T\bin\smartclient\TTecDebug..\singlesign.lib ..\lib_graphicprint\TTecDebug\lib_graphicprint.lib ..\lib\TTecDebug\lib.lib ..\lib_base\TTecDebug\lib_base.lib ..\lib_gzip\TTecDebug\lib_gzip.lib ..\web\TTecDebug\web.lib ..\third_libraries\engine_pkcs11\TTecDebug\engine_pkcs11.lib ..\third_libraries\libp11\TTecDebug\libp11.lib dbghelp.lib ".\remote4.dir\TTecDebug\main.obj" ".\remote4.dir\TTecDebug\apcombase.obj" ".\remote4.dir\TTecDebug\apexcel.obj" ".\remote4.dir\TTecDebug\approject.obj" ".\remote4.dir\TTecDebug\apword.obj" ".\remote4.dir\TTecDebug\calc.obj" ".\remote4.dir\TTecDebug\calend4.obj" ".\remote4.dir\TTecDebug\config_client.obj" ".\remote4.dir\TTecDebug\execinclient.obj" ".\remote4.dir\TTecDebug\fjs_comps_base.obj" ".\remote4.dir\TTecDebug\t4jsaction.obj" ".\remote4.dir\TTecDebug\t4jsapplication.obj" ".\remote4.dir\TTecDebug\t4jsbitmap.obj" ".\remote4.dir\TTecDebug\t4jsdisplay.obj" ".\remote4.dir\TTecDebug\t4jsdisplayarray.obj" ".\remote4.dir\TTecDebug\t4jsexpandedinput.obj" ".\remote4.dir\TTecDebug\t4jsform.obj" ".\remote4.dir\TTecDebug\t4jshelpwindow.obj" ".\remote4.dir\TTecDebug\t4jsinput.obj" ".\remote4.dir\TTecDebug\t4jsinputarray.obj" ".\remote4.dir\TTecDebug\t4jsinputcheck.obj" ".\remote4.dir\TTecDebug\t4jsinputfieldbmp.obj" ".\remote4.dir\TTecDebug\t4jsinputimage.obj" ".\remote4.dir\TTecDebug\t4jsinputradio.obj" ".\remote4.dir\TTecDebug\t4jsinputtext.obj" ".\remote4.dir\TTecDebug\t4jsmainwindow.obj" ".\remote4.dir\TTecDebug\t4jsmenu.obj" ".\remote4.dir\TTecDebug\t4jsmessagebox.obj" ".\remote4.dir\TTecDebug\t4jsmultilineinputtext.obj" ".\remote4.dir\TTecDebug\t4jspromptinput.obj" ".\remote4.dir\TTecDebug\t4jstoolbar.obj" ".\remote4.dir\TTecDebug\t4jswaitwindow.obj" ".\remote4.dir\TTecDebug\t4jswindow.obj" ".\remote4.dir\TTecDebug\qtcolortriangle.obj" ".\remote4.dir\TTecDebug\qtsingleapplication.obj" ".\remote4.dir\TTecDebug\remote_utils.obj" ".\remote4.dir\TTecDebug\rmtcli.obj" ".\remote4.dir\TTecDebug\signfunctions.obj" ".\remote4.dir\TTecDebug\talignlayout.obj" ".\remote4.dir\TTecDebug\tapplication.obj" ".\remote4.dir\TTecDebug\tbitmap.obj" ".\remote4.dir\TTecDebug\tbrowsebutton.obj" ".\remote4.dir\TTecDebug\tbtnbmp.obj" ".\remote4.dir\TTecDebug\tbutton.obj" ".\remote4.dir\TTecDebug\crazychrs.obj" ".\remote4.dir\TTecDebug\parserext.obj" ".\remote4.dir\TTecDebug\Tprinter.obj" ".\remote4.dir\TTecDebug\Tprinterfonts.obj" ".\remote4.dir\TTecDebug\ttpviewer.obj" ".\remote4.dir\TTecDebug\tcbrowse.obj" ".\remote4.dir\TTecDebug\tchartwin.obj" ".\remote4.dir\TTecDebug\tcheckbox.obj" ".\remote4.dir\TTecDebug\tcombobox.obj" ".\remote4.dir\TTecDebug\tcomponentfactory.obj" ".\remote4.dir\TTecDebug\tconnection.obj" ".\remote4.dir\TTecDebug\tconnectionsocket.obj" ".\remote4.dir\TTecDebug\tcontrol.obj" ".\remote4.dir\TTecDebug\tcorretor.obj" ".\remote4.dir\TTecDebug\tcreateinifiledialog.obj" ".\remote4.dir\TTecDebug\tdgcanvas.obj" ".\remote4.dir\TTecDebug\tdgcanvasitem.obj" ".\remote4.dir\TTecDebug\tdgcanvasview.obj" ".\remote4.dir\TTecDebug\tdgconnectorabs.obj" ".\remote4.dir\TTecDebug\tdgconnectorline.obj" ".\remote4.dir\TTecDebug\tdgconnectorpoly.obj" ".\remote4.dir\TTecDebug\tdgdocument.obj" ".\remote4.dir\TTecDebug\tdgeditor.obj" ".\remote4.dir\TTecDebug\tdgrule.obj" ".\remote4.dir\TTecDebug\tdgselectionbox.obj" ".\remote4.dir\TTecDebug\tdgshape.obj" ".\remote4.dir\TTecDebug\tdgshapeabs.obj" ".\remote4.dir\TTecDebug\tdgshapebox.obj" ".\remote4.dir\TTecDebug\tdgshapeicon.obj" ".\remote4.dir\TTecDebug\tdgundolog.obj" ".\remote4.dir\TTecDebug\tdgviewer.obj" ".\remote4.dir\TTecDebug\tdialog.obj" ".\remote4.dir\TTecDebug\teventbuffer.obj" ".\remote4.dir\TTecDebug\tfileman.obj" ".\remote4.dir\TTecDebug\tfolder.obj" ".\remote4.dir\TTecDebug\tget.obj" ".\remote4.dir\TTecDebug\tgetdados.obj" ".\remote4.dir\TTecDebug\tgraphicprint_client.obj" ".\remote4.dir\TTecDebug\tgroupbox.obj" ".\remote4.dir\TTecDebug\tguicommand.obj" ".\remote4.dir\TTecDebug\thelpbaloon.obj" ".\remote4.dir\TTecDebug\thelpdialog.obj" ".\remote4.dir\TTecDebug\thotkeys.obj" ".\remote4.dir\TTecDebug\tibrowser.obj" ".\remote4.dir\TTecDebug\tinifile_client.obj" ".\remote4.dir\TTecDebug\tlibmanager.obj" ".\remote4.dir\TTecDebug\tlistbox.obj" ".\remote4.dir\TTecDebug\tlocallog.obj" ".\remote4.dir\TTecDebug\tmenu.obj" ".\remote4.dir\TTecDebug\tmenubar.obj" ".\remote4.dir\TTecDebug\tmenupopup.obj" ".\remote4.dir\TTecDebug\tmessage.obj" ".\remote4.dir\TTecDebug\tmessagebar.obj" ".\remote4.dir\TTecDebug\tmessagebox.obj" ".\remote4.dir\TTecDebug\tmessagehook.obj" ".\remote4.dir\TTecDebug\tmeter.obj" ".\remote4.dir\TTecDebug\tmodaldialog.obj" ".\remote4.dir\TTecDebug\tmscalendar.obj" ".\remote4.dir\TTecDebug\tmscalendgrid.obj" ".\remote4.dir\TTecDebug\tmsgrun.obj" ".\remote4.dir\TTecDebug\tmsselbr.obj" ".\remote4.dir\TTecDebug\tmultiget.obj" ".\remote4.dir\TTecDebug\tnanfor.obj" ".\remote4.dir\TTecDebug\tobjecthook.obj" ".\remote4.dir\TTecDebug\tolecontainer.obj" ".\remote4.dir\TTecDebug\tpageview.obj" ".\remote4.dir\TTecDebug\tpanel.obj" ".\remote4.dir\TTecDebug\tparametersform.obj" ".\remote4.dir\TTecDebug\tprinterhook.obj" ".\remote4.dir\TTecDebug\tprinterspool.obj" ".\remote4.dir\TTecDebug\tradiobutton.obj" ".\remote4.dir\TTecDebug\trashook.obj" ".\remote4.dir\TTecDebug\tremoteopensave.obj" ".\remote4.dir\TTecDebug\treportprinter.obj" ".\remote4.dir\TTecDebug\tresourcemanager.obj" ".\remote4.dir\TTecDebug\tsay.obj" ".\remote4.dir\TTecDebug\tsbutton.obj" ".\remote4.dir\TTecDebug\tscrollbox.obj" ".\remote4.dir\TTecDebug\tsplash.obj" ".\remote4.dir\TTecDebug\ttab.obj" ".\remote4.dir\TTecDebug\tterminal.obj" ".\remote4.dir\TTecDebug\tterminalupd.obj" ".\remote4.dir\TTecDebug\ttimer.obj" ".\remote4.dir\TTecDebug\ttoolbar.obj" ".\remote4.dir\TTecDebug\ttree.obj" ".\remote4.dir\TTecDebug\tvalue.obj" ".\remote4.dir\TTecDebug\tverticalscrollbar.obj" ".\remote4.dir\TTecDebug\twindow.obj" ".\remote4.dir\TTecDebug\tworkspace.obj" ".\remote4.dir\TTecDebug\tworkspacefolder.obj" ".\remote4.dir\TTecDebug\tworktime.obj" ".\remote4.dir\TTecDebug\waitrun.obj" ".\remote4.dir\TTecDebug\tgrid.obj" ".\remote4.dir\TTecDebug\httpclient.obj" ".\remote4.dir\TTecDebug\tpaintpanel.obj" ".\remote4.dir\TTecDebug\ttimerhook.obj" ".\remote4.dir\TTecDebug\qtsingleapplication_win.obj" ".\remote4.dir\TTecDebug\rational_robot.obj" ".\remote4.dir\TTecDebug\remote41.res" ".\remote4.dir\TTecDebug\qrc_remote4.obj" ".\remote4.dir\TTecDebug\moc_calc.obj" ".\remote4.dir\TTecDebug\moc_calend4.obj" ".\remote4.dir\TTecDebug\moc_t4jsaction.obj" ".\remote4.dir\TTecDebug\moc_t4jsapplication.obj" ".\remote4.dir\TTecDebug\moc_t4jsdisplayarray.obj" ".\remote4.dir\TTecDebug\moc_t4jsexpandedinput.obj" ".\remote4.dir\TTecDebug\moc_t4jsform.obj" ".\remote4.dir\TTecDebug\moc_t4jshelpwindow.obj" ".\remote4.dir\TTecDebug\moc_t4jsinput.obj" ".\remote4.dir\TTecDebug\moc_t4jsinputarray.obj" ".\remote4.dir\TTecDebug\moc_t4jsinputcheck.obj" ".\remote4.dir\TTecDebug\moc_t4jsinputfieldbmp.obj" ".\remote4.dir\TTecDebug\moc_t4jsinputimage.obj" ".\remote4.dir\TTecDebug\moc_t4jsinputradio.obj" ".\remote4.dir\TTecDebug\moc_t4jsinputtext.obj" ".\remote4.dir\TTecDebug\moc_t4jsmainwindow.obj" ".\remote4.dir\TTecDebug\moc_t4jsmenu.obj" ".\remote4.dir\TTecDebug\moc_t4jsmessagebox.obj" ".\remote4.dir\TTecDebug\moc_t4jsmultilineinputtext.obj" ".\remote4.dir\TTecDebug\moc_t4jspromptinput.obj" ".\remote4.dir\TTecDebug\moc_t4jstoolbar.obj" ".\remote4.dir\TTecDebug\moc_t4jswindow.obj" ".\remote4.dir\TTecDebug\moc_qtcolortriangle.obj" ".\remote4.dir\TTecDebug\moc_qtsingleapplication.obj" ".\remote4.dir\TTecDebug\moc_talignlayout.obj" ".\remote4.dir\TTecDebug\moc_tapplication.obj" ".\remote4.dir\TTecDebug\moc_tbitmap.obj" ".\remote4.dir\TTecDebug\moc_tbtnbmp.obj" ".\remote4.dir\TTecDebug\moc_tbutton.obj" ".\remote4.dir\TTecDebug\moc_Tprinter.obj" ".\remote4.dir\TTecDebug\moc_tcbrowse.obj" ".\remote4.dir\TTecDebug\moc_tchartwin.obj" ".\remote4.dir\TTecDebug\moc_tcheckbox.obj" ".\remote4.dir\TTecDebug\moc_tcombobox.obj" ".\remote4.dir\TTecDebug\moc_tcontrol.obj" ".\remote4.dir\TTecDebug\moc_tcorretor.obj" ".\remote4.dir\TTecDebug\moc_tcreateinifiledialog.obj" ".\remote4.dir\TTecDebug\moc_tdgcanvasview.obj" ".\remote4.dir\TTecDebug\moc_tdgconnectorline.obj" ".\remote4.dir\TTecDebug\moc_tdgdocument.obj" ".\remote4.dir\TTecDebug\moc_tdgeditor.obj" ".\remote4.dir\TTecDebug\moc_tdgrule.obj" ".\remote4.dir\TTecDebug\moc_tdgshape.obj" ".\remote4.dir\TTecDebug\moc_tdgshapebox.obj" ".\remote4.dir\TTecDebug\moc_tdgshapeicon.obj" ".\remote4.dir\TTecDebug\moc_tdgviewer.obj" ".\remote4.dir\TTecDebug\moc_tdialog.obj" ".\remote4.dir\TTecDebug\moc_tfolder.obj" ".\remote4.dir\TTecDebug\moc_tget.obj" ".\remote4.dir\TTecDebug\moc_tgetdados.obj" ".\remote4.dir\TTecDebug\moc_tguicommand.obj" ".\remote4.dir\TTecDebug\moc_thelpbaloon.obj" ".\remote4.dir\TTecDebug\moc_thelpdialog.obj" ".\remote4.dir\TTecDebug\moc_tlistbox.obj" ".\remote4.dir\TTecDebug\moc_tmenu.obj" ".\remote4.dir\TTecDebug\moc_tmenupopup.obj" ".\remote4.dir\TTecDebug\moc_tmessagebar.obj" ".\remote4.dir\TTecDebug\moc_tmessagebox.obj" ".\remote4.dir\TTecDebug\moc_tmodaldialog.obj" ".\remote4.dir\TTecDebug\moc_tmscalendar.obj" ".\remote4.dir\TTecDebug\moc_tmscalendgrid.obj" ".\remote4.dir\TTecDebug\moc_tmsselbr.obj" ".\remote4.dir\TTecDebug\moc_tmultiget.obj" ".\remote4.dir\TTecDebug\moc_tobjecthook.obj" ".\remote4.dir\TTecDebug\moc_tolecontainer.obj" ".\remote4.dir\TTecDebug\moc_tpageview.obj" ".\remote4.dir\TTecDebug\moc_tpanel.obj" ".\remote4.dir\TTecDebug\moc_tparametersform.obj" ".\remote4.dir\TTecDebug\moc_tprinterhook.obj" ".\remote4.dir\TTecDebug\moc_tprinterspool.obj" ".\remote4.dir\TTecDebug\moc_tradiobutton.obj" ".\remote4.dir\TTecDebug\moc_tremoteopensave.obj" ".\remote4.dir\TTecDebug\moc_treportprinter.obj" ".\remote4.dir\TTecDebug\moc_tresourcemanager.obj" ".\remote4.dir\TTecDebug\moc_tsay.obj" ".\remote4.dir\TTecDebug\moc_tscrollbox.obj" ".\remote4.dir\TTecDebug\moc_ttab.obj" ".\remote4.dir\TTecDebug\moc_tterminal.obj" ".\remote4.dir\TTecDebug\moc_ttoolbar.obj" ".\remote4.dir\TTecDebug\moc_ttree.obj" ".\remote4.dir\TTecDebug\moc_tverticalscrollbar.obj" ".\remote4.dir\TTecDebug\moc_twindow.obj" ".\remote4.dir\TTecDebug\moc_tworkspace.obj" ".\remote4.dir\TTecDebug\moc_tworkspacefolder.obj" ".\remote4.dir\TTecDebug\moc_tworktime.obj" ".\remote4.dir\TTecDebug\moc_tgrid.obj" ".\remote4.dir\TTecDebug\moc_httpclient.obj" ".\remote4.dir\TTecDebug\moc_tpaintpanel.obj" ".\remote4.dir\TTecDebug\moc_ttimerhook.obj" ".\remote4.dir\TTecDebug\moc_splogin.obj" ] Creating command line "link.exe #c:\advtec9\trunk\bin_sem_unittest\remote4\remote4.dir\TTecDebug\RSP00008649325832.rsp /NOLOGO /ERRORREPORT:PROMPT" Output Window Linking... Results Build log was saved at "file://c:\advtec9\trunk\bin_sem_unittest\remote4\remote4.dir\TTecDebug\BuildLog.htm" remote4 - 0 error(s), 0 warning(s)
I've (finally!) found out what my problem was. I have a project with some sub-directories. In the CMakeLists.txt of each subdirectory, I was defining a project name (with the command project() ). This was causing visual studio to behave like that. When I removed the project() of the sub_directories the problem was solved.