else
AC_MSG_RESULT(no)
fi
+AM_CONDITIONAL(VERSIONED_SYMBOLS, test x$versioned = xyes)
dnl Check for debug...
AC_MSG_CHECKING(for debug)
#define default_symbol_version(real, name, version) \
__asm__ (".symver " #real "," #name "@@" #version)
+#ifdef USE_VERSIONED_SYMBOLS
+#define use_symbol_version(real, name, version) \
+ symbol_version(real, name, version)
+#define use_default_symbol_version(real, name, version) \
+ default_symbol_version(real, name, version)
+#else
+#define use_symbol_version(real, name, version) /* nothing */
+#define use_default_symbol_version(real, name, version) \
+ __asm__ (".weak " #name); \
+ __asm__ (".set " #name "," #real)
+#endif
+
#endif /* __ALSA_SYMBOLS_H */
EXTRA_DIST=Versions
COMPATNUM=@LIBTOOL_VERSION_INFO@
+if VERSIONED_SYMBOLS
+VSYMS = -Wl,--version-script=Versions
+else
+VSYMS =
+endif
+
lib_LTLIBRARIES = libasound.la
libasound_la_SOURCES = conf.c confmisc.c input.c output.c async.c error.c dlmisc.c
libasound_la_LIBADD = control/libcontrol.la mixer/libmixer.la pcm/libpcm.la \
compat/libcompat.la -lm -ldl -lpthread
libasound_la_LDFLAGS = -version-info $(COMPATNUM)
-LDFLAGS = -Wl,--version-script=Versions
+LDFLAGS = $(VSYMS)
control/libcontrol.la:
$(MAKE) -C control libcontrol.la
assert(frames > 0);
return pcm->fast_ops->forward(pcm->fast_op_arg, frames);
}
-default_symbol_version(__snd_pcm_forward, snd_pcm_forward, ALSA_0.9.0rc8);
+use_default_symbol_version(__snd_pcm_forward, snd_pcm_forward, ALSA_0.9.0rc8);
/**
* \brief Write interleaved frames to a PCM
return NULL;
return snd_pcm_type_names[type];
}
-default_symbol_version(__snd_pcm_type_name, snd_pcm_type_name, ALSA_0.9.0);
+use_default_symbol_version(__snd_pcm_type_name, snd_pcm_type_name, ALSA_0.9.0);
/**
* \brief Dump current hardware setup for PCM
assert(obj && ptr);
*ptr = obj->trigger_tstamp;
}
-default_symbol_version(__snd_pcm_status_get_trigger_htstamp, snd_pcm_status_get_trigger_htstamp, ALSA_0.9.0rc8);
+use_default_symbol_version(__snd_pcm_status_get_trigger_htstamp, snd_pcm_status_get_trigger_htstamp, ALSA_0.9.0rc8);
/**
* \brief Get "now" timestamp from a PCM status container
assert(obj && ptr);
*ptr = obj->tstamp;
}
-default_symbol_version(__snd_pcm_status_get_htstamp, snd_pcm_status_get_htstamp, ALSA_0.9.0rc8);
+use_default_symbol_version(__snd_pcm_status_get_htstamp, snd_pcm_status_get_htstamp, ALSA_0.9.0rc8);
/**
* \brief Get delay from a PCM status container (see #snd_pcm_delay)
else
params->flags &= ~SNDRV_TIMER_PSFLG_EXCLUSIVE;
}
-default_symbol_version(__snd_timer_params_set_exclusive, snd_timer_params_set_exclusive, ALSA_0.9.0);
+use_default_symbol_version(__snd_timer_params_set_exclusive, snd_timer_params_set_exclusive, ALSA_0.9.0);
/**
* \brief determine if timer has exclusive flag
assert(params);
return params->flags & SNDRV_TIMER_PSFLG_EXCLUSIVE ? 1 : 0;
}
-default_symbol_version(__snd_timer_params_get_exclusive, snd_timer_params_get_exclusive, ALSA_0.9.0);
+use_default_symbol_version(__snd_timer_params_get_exclusive, snd_timer_params_get_exclusive, ALSA_0.9.0);
/**
* \brief set timer ticks
assert(params);
params->filter = filter;
}
-default_symbol_version(__snd_timer_params_set_filter, snd_timer_params_set_filter, ALSA_0.9.0);
+use_default_symbol_version(__snd_timer_params_set_filter, snd_timer_params_set_filter, ALSA_0.9.0);
/**
* \brief get timer event filter
assert(params);
return params->filter;
}
-default_symbol_version(__snd_timer_params_get_filter, snd_timer_params_get_filter, ALSA_0.9.0);
+use_default_symbol_version(__snd_timer_params_get_filter, snd_timer_params_get_filter, ALSA_0.9.0);
/**
* \brief set parameters for timer handle
assert(info);
return timer->ops->info(timer, info);
}
-default_symbol_version(__snd_timer_query_info, snd_timer_query_info, ALSA_0.9.0);
+use_default_symbol_version(__snd_timer_query_info, snd_timer_query_info, ALSA_0.9.0);
/**
* \brief set the timer global parameters
assert(params);
return timer->ops->params(timer, params);
}
-default_symbol_version(__snd_timer_query_params, snd_timer_query_params, ALSA_0.9.0);
+use_default_symbol_version(__snd_timer_query_params, snd_timer_query_params, ALSA_0.9.0);
/**
* \brief get the timer global status
assert(status);
return timer->ops->status(timer, status);
}
-default_symbol_version(__snd_timer_query_status, snd_timer_query_status, ALSA_0.9.0);
+use_default_symbol_version(__snd_timer_query_status, snd_timer_query_status, ALSA_0.9.0);
/**
* \brief get size of the snd_timer_id_t structure in bytes