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.

Resources