diff -Nru libdrm-2.4.52/aclocal.m4 libdrm-2.4.52+really2.4.21/aclocal.m4 --- libdrm-2.4.52/aclocal.m4 2014-01-20 19:04:45.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/aclocal.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,1295 +0,0 @@ -# generated automatically by aclocal 1.13.4 -*- Autoconf -*- - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically 'autoreconf'.])]) - -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) -# -# Copyright © 2004 Scott James Remnant . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) -m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -])# PKG_PROG_PKG_CONFIG - -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) - -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- -m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], - [pkg_failed=yes]) - else - pkg_failed=untried -fi[]dnl -])# _PKG_CONFIG - -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED - - -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT])[]dnl - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see .])[]dnl - ]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -])# PKG_CHECK_MODULES - - -# PKG_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable pkgconfigdir as the location where a module -# should install pkg-config .pc files. By default the directory is -# $libdir/pkgconfig, but the default can be changed by passing -# DIRECTORY. The user can override through the --with-pkgconfigdir -# parameter. -AC_DEFUN([PKG_INSTALLDIR], -[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) -m4_pushdef([pkg_description], - [pkg-config installation directory @<:@]pkg_default[@:>@]) -AC_ARG_WITH([pkgconfigdir], - [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, - [with_pkgconfigdir=]pkg_default) -AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) -m4_popdef([pkg_default]) -m4_popdef([pkg_description]) -]) dnl PKG_INSTALLDIR - - -# PKG_NOARCH_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable noarch_pkgconfigdir as the location where a -# module should install arch-independent pkg-config .pc files. By -# default the directory is $datadir/pkgconfig, but the default can be -# changed by passing DIRECTORY. The user can override through the -# --with-noarch-pkgconfigdir parameter. -AC_DEFUN([PKG_NOARCH_INSTALLDIR], -[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) -m4_pushdef([pkg_description], - [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) -AC_ARG_WITH([noarch-pkgconfigdir], - [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, - [with_noarch_pkgconfigdir=]pkg_default) -AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) -m4_popdef([pkg_default]) -m4_popdef([pkg_description]) -]) dnl PKG_NOARCH_INSTALLDIR - - -# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, -# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# ------------------------------------------- -# Retrieves the value of the pkg-config variable for the given module. -AC_DEFUN([PKG_CHECK_VAR], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl - -_PKG_CONFIG([$1], [variable="][$3]["], [$2]) -AS_VAR_COPY([$1], [pkg_cv_][$1]) - -AS_VAR_IF([$1], [""], [$5], [$4])dnl -])# PKG_CHECK_VAR - -# Copyright (C) 2002-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.13' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.13.4], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.13.4])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES. -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -]) - -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) - -# Copyright (C) 2003-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAINTAINER_MODE([DEFAULT-MODE]) -# ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless 'enable' is passed literally. -# For symmetry, 'disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], - [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], - am_maintainer_other[ make rules and dependencies not useful - (and sometimes confusing) to the casual installer])], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# -------------------- -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) - -# _AM_SET_OPTIONS(OPTIONS) -# ------------------------ -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) - -# Copyright (C) 2009-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor 'install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -# -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([m4/libtool.m4]) -m4_include([m4/ltoptions.m4]) -m4_include([m4/ltsugar.m4]) -m4_include([m4/ltversion.m4]) -m4_include([m4/lt~obsolete.m4]) diff -Nru libdrm-2.4.52/autogen.sh libdrm-2.4.52+really2.4.21/autogen.sh --- libdrm-2.4.52/autogen.sh 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/autogen.sh 2014-05-11 23:32:00.000000000 +0000 @@ -1,6 +1,12 @@ #! /bin/sh -test -n "$srcdir" || srcdir=`dirname "$0"` -test -n "$srcdir" || srcdir=. -autoreconf --force --install --verbose "$srcdir" -test -n "$NOCONFIGURE" || "$srcdir/configure" --enable-maintainer-mode "$@" +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +ORIGDIR=`pwd` +cd $srcdir + +autoreconf -v --install || exit 1 +cd $ORIGDIR || exit $? + +$srcdir/configure --enable-maintainer-mode "$@" diff -Nru libdrm-2.4.52/build-aux/config.guess libdrm-2.4.52+really2.4.21/build-aux/config.guess --- libdrm-2.4.52/build-aux/config.guess 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/build-aux/config.guess 1970-01-01 00:00:00.000000000 +0000 @@ -1,1552 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright 1992-2013 Free Software Foundation, Inc. - -timestamp='2013-05-16' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). -# -# Originally written by Per Bothner. -# -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -# -# Please send patches with a ChangeLog entry to config-patches@gnu.org. - - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright 1992-2013 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -case "${UNAME_SYSTEM}" in -Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu - - eval $set_cc_for_build - cat <<-EOF > $dummy.c - #include - #if defined(__UCLIBC__) - LIBC=uclibc - #elif defined(__dietlibc__) - LIBC=dietlibc - #else - LIBC=gnu - #endif - EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - ;; -esac - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH="x86_64" - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi - else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf - fi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } - ;; - or1k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - or32:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} - exit ;; - x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} - exit ;; - NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; - x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx - exit ;; -esac - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff -Nru libdrm-2.4.52/build-aux/config.sub libdrm-2.4.52+really2.4.21/build-aux/config.sub --- libdrm-2.4.52/build-aux/config.sub 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/build-aux/config.sub 1970-01-01 00:00:00.000000000 +0000 @@ -1,1806 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright 1992-2013 Free Software Foundation, Inc. - -timestamp='2013-04-24' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). - - -# Please send patches with a ChangeLog entry to config-patches@gnu.org. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright 1992-2013 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | be32 | be64 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx | dvp \ - | epiphany \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 \ - | or1k | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | we32k \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown - ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none - ;; - xscaleeb) - basic_machine=armeb-unknown - ;; - - xscaleel) - basic_machine=armel-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mipsEE* | ee | ps2) - basic_machine=mips64r5900el-scei - case $os in - -linux*) - ;; - *) - os=-elf - ;; - esac - ;; - iop) - basic_machine=mipsel-scei - os=-irx - ;; - dvp) - basic_machine=dvp-scei - os=-elf - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i386-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc | ppcbe) basic_machine=powerpc-unknown - ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos - ;; - rdos32) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tile*) - basic_machine=$basic_machine-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -irx* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -nacl*) - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - hexagon-*) - os=-elf - ;; - tic54x-*) - os=-coff - ;; - tic55x-*) - os=-coff - ;; - tic6x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or1k-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff -Nru libdrm-2.4.52/build-aux/depcomp libdrm-2.4.52+really2.4.21/build-aux/depcomp --- libdrm-2.4.52/build-aux/depcomp 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/build-aux/depcomp 1970-01-01 00:00:00.000000000 +0000 @@ -1,791 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2013-05-30.07; # UTC - -# Copyright (C) 1999-2013 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -case $1 in - '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by 'PROGRAMS ARGS'. - object Object file output by 'PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputting dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -# Get the directory component of the given path, and save it in the -# global variables '$dir'. Note that this directory component will -# be either empty or ending with a '/' character. This is deliberate. -set_dir_from () -{ - case $1 in - */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; - *) dir=;; - esac -} - -# Get the suffix-stripped basename of the given path, and save it the -# global variable '$base'. -set_base_from () -{ - base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` -} - -# If no dependency file was actually created by the compiler invocation, -# we still have to create a dummy depfile, to avoid errors with the -# Makefile "include basename.Plo" scheme. -make_dummy_depfile () -{ - echo "#dummy" > "$depfile" -} - -# Factor out some common post-processing of the generated depfile. -# Requires the auxiliary global variable '$tmpdepfile' to be set. -aix_post_process_depfile () -{ - # If the compiler actually managed to produce a dependency file, - # post-process it. - if test -f "$tmpdepfile"; then - # Each line is of the form 'foo.o: dependency.h'. - # Do two passes, one to just change these to - # $object: dependency.h - # and one to simply output - # dependency.h: - # which is needed to avoid the deleted-header problem. - { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" - sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" - } > "$depfile" - rm -f "$tmpdepfile" - else - make_dummy_depfile - fi -} - -# A tabulation character. -tab=' ' -# A newline character. -nl=' -' -# Character ranges might be problematic outside the C locale. -# These definitions help. -upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ -lower=abcdefghijklmnopqrstuvwxyz -digits=0123456789 -alpha=${upper}${lower} - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi - -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Avoid interferences from the environment. -gccflag= dashmflag= - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -cygpath_u="cygpath -u -f -" -if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvisualcpp -fi - -if test "$depmode" = msvc7msys; then - # This is just like msvc7 but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvc7 -fi - -if test "$depmode" = xlc; then - # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. - gccflag=-qmakedep=gcc,-MF - depmode=gcc -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. -## Unfortunately, FreeBSD c89 acceptance of flags depends upon -## the command line argument order; so add the flags where they -## appear in depend2.am. Note that the slowdown incurred here -## affects only configure: in makefiles, %FASTDEP% shortcuts this. - for arg - do - case $arg in - -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; - *) set fnord "$@" "$arg" ;; - esac - shift # fnord - shift # $arg - done - "$@" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. -## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. -## (see the conditional assignment to $gccflag above). -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). Also, it might not be -## supported by the other compilers which use the 'gcc' depmode. -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # The second -e expression handles DOS-style file names with drive - # letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the "deleted header file" problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. -## Some versions of gcc put a space before the ':'. On the theory -## that the space means something, we add a space to the output as -## well. hp depmode also adds that space, but also prefixes the VPATH -## to the object. Take care to not repeat it in the output. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like '#:fec' to the end of the - # dependency line. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ - | tr "$nl" ' ' >> "$depfile" - echo >> "$depfile" - # The second pass generates a dummy entry for each header file. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" - else - make_dummy_depfile - fi - rm -f "$tmpdepfile" - ;; - -xlc) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts '$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - set_dir_from "$object" - set_base_from "$object" - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.u - tmpdepfile2=$base.u - tmpdepfile3=$dir.libs/$base.u - "$@" -Wc,-M - else - tmpdepfile1=$dir$base.u - tmpdepfile2=$dir$base.u - tmpdepfile3=$dir$base.u - "$@" -M - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - aix_post_process_depfile - ;; - -tcc) - # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 - # FIXME: That version still under development at the moment of writing. - # Make that this statement remains true also for stable, released - # versions. - # It will wrap lines (doesn't matter whether long or short) with a - # trailing '\', as in: - # - # foo.o : \ - # foo.c \ - # foo.h \ - # - # It will put a trailing '\' even on the last line, and will use leading - # spaces rather than leading tabs (at least since its commit 0394caf7 - # "Emit spaces for -MD"). - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. - # We have to change lines of the first kind to '$object: \'. - sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" - # And for each line of the second kind, we have to emit a 'dep.h:' - # dummy dependency, to avoid the deleted-header problem. - sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" - rm -f "$tmpdepfile" - ;; - -## The order of this option in the case statement is important, since the -## shell code in configure will try each of these formats in the order -## listed in this file. A plain '-MD' option would be understood by many -## compilers, so we must ensure this comes after the gcc and icc options. -pgcc) - # Portland's C compiler understands '-MD'. - # Will always output deps to 'file.d' where file is the root name of the - # source file under compilation, even if file resides in a subdirectory. - # The object file name does not affect the name of the '.d' file. - # pgcc 10.2 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using '\' : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - set_dir_from "$object" - # Use the source, not the object, to determine the base name, since - # that's sadly what pgcc will do too. - set_base_from "$source" - tmpdepfile=$base.d - - # For projects that build the same source file twice into different object - # files, the pgcc approach of using the *source* file root name can cause - # problems in parallel builds. Use a locking strategy to avoid stomping on - # the same $tmpdepfile. - lockdir=$base.d-lock - trap " - echo '$0: caught signal, cleaning up...' >&2 - rmdir '$lockdir' - exit 1 - " 1 2 13 15 - numtries=100 - i=$numtries - while test $i -gt 0; do - # mkdir is a portable test-and-set. - if mkdir "$lockdir" 2>/dev/null; then - # This process acquired the lock. - "$@" -MD - stat=$? - # Release the lock. - rmdir "$lockdir" - break - else - # If the lock is being held by a different process, wait - # until the winning process is done or we timeout. - while test -d "$lockdir" && test $i -gt 0; do - sleep 1 - i=`expr $i - 1` - done - fi - i=`expr $i - 1` - done - trap - 1 2 13 15 - if test $i -le 0; then - echo "$0: failed to acquire lock after $numtries attempts" >&2 - echo "$0: check lockdir '$lockdir'" >&2 - exit 1 - fi - - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp2) - # The "hp" stanza above does not work with aCC (C++) and HP's ia64 - # compilers, which have integrated preprocessors. The correct option - # to use with these is +Maked; it writes dependencies to a file named - # 'foo.d', which lands next to the object file, wherever that - # happens to be. - # Much of this is similar to the tru64 case; see comments there. - set_dir_from "$object" - set_base_from "$object" - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir.libs/$base.d - "$@" -Wc,+Maked - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - "$@" +Maked - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" - # Add 'dependent.h:' lines. - sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" - else - make_dummy_depfile - fi - rm -f "$tmpdepfile" "$tmpdepfile2" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in 'foo.d' instead, so we check for that too. - # Subdirectories are respected. - set_dir_from "$object" - set_base_from "$object" - - if test "$libtool" = yes; then - # Libtool generates 2 separate objects for the 2 libraries. These - # two compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir$base.o.d # libtool 1.5 - tmpdepfile2=$dir.libs/$base.o.d # Likewise. - tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - # Same post-processing that is required for AIX mode. - aix_post_process_depfile - ;; - -msvc7) - if test "$libtool" = yes; then - showIncludes=-Wc,-showIncludes - else - showIncludes=-showIncludes - fi - "$@" $showIncludes > "$tmpdepfile" - stat=$? - grep -v '^Note: including file: ' "$tmpdepfile" - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # The first sed program below extracts the file names and escapes - # backslashes for cygpath. The second sed program outputs the file - # name when reading, but also accumulates all include files in the - # hold buffer in order to output them again at the end. This only - # works with sed implementations that can handle large buffers. - sed < "$tmpdepfile" -n ' -/^Note: including file: *\(.*\)/ { - s//\1/ - s/\\/\\\\/g - p -}' | $cygpath_u | sort -u | sed -n ' -s/ /\\ /g -s/\(.*\)/'"$tab"'\1 \\/p -s/.\(.*\) \\/\1:/ -H -$ { - s/.*/'"$tab"'/ - G - p -}' >> "$depfile" - echo >> "$depfile" # make sure the fragment doesn't end with a backslash - rm -f "$tmpdepfile" - ;; - -msvc7msys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove '-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for ':' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. - "$@" $dashmflag | - sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this sed invocation - # correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no eat=no - for arg - do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - if test $eat = yes; then - eat=no - continue - fi - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -arch) - eat=yes ;; - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix=`echo "$object" | sed 's/^.*\././'` - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - # makedepend may prepend the VPATH from the source file name to the object. - # No need to regex-escape $object, excess matching of '.' is harmless. - sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process the last invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed '1,2d' "$tmpdepfile" \ - | tr ' ' "$nl" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove '-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E \ - | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - | sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - IFS=" " - for arg - do - case "$arg" in - -o) - shift - ;; - $object) - shift - ;; - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E 2>/dev/null | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" - echo "$tab" >> "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvcmsys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff -Nru libdrm-2.4.52/build-aux/install-sh libdrm-2.4.52+really2.4.21/build-aux/install-sh --- libdrm-2.4.52/build-aux/install-sh 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/build-aux/install-sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,527 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2011-11-20.07; # UTC - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# 'make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -nl=' -' -IFS=" "" $nl" - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -no_target_directory= - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; - - -T) no_target_directory=true;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call 'install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - do_exit='(exit $ret); exit $ret' - trap "ret=129; $do_exit" 1 - trap "ret=130; $do_exit" 2 - trap "ret=141; $do_exit" 13 - trap "ret=143; $do_exit" 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names problematic for 'test' and other utilities. - case $src in - -* | [=\(\)!]) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - dst=$dst_arg - - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. - if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - - test -d "$dstdir" - dstdir_status=$? - fi - fi - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; - esac - - eval "$initialize_posix_glob" - - oIFS=$IFS - IFS=/ - $posix_glob set -f - set fnord $dstdir - shift - $posix_glob set +f - IFS=$oIFS - - prefixes= - - for d - do - test X"$d" = X && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff -Nru libdrm-2.4.52/build-aux/ltmain.sh libdrm-2.4.52+really2.4.21/build-aux/ltmain.sh --- libdrm-2.4.52/build-aux/ltmain.sh 2014-01-20 19:04:42.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/build-aux/ltmain.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,9655 +0,0 @@ - -# libtool (GNU libtool) 2.4.2 -# Written by Gordon Matzigkeit , 1996 - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# GNU Libtool is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, -# or obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -# Usage: $progname [OPTION]... [MODE-ARG]... -# -# Provide generalized library-building support services. -# -# --config show all configuration variables -# --debug enable verbose shell tracing -# -n, --dry-run display commands without modifying any files -# --features display basic configuration information and exit -# --mode=MODE use operation mode MODE -# --preserve-dup-deps don't remove duplicate dependency libraries -# --quiet, --silent don't print informational messages -# --no-quiet, --no-silent -# print informational messages (default) -# --no-warn don't display warning messages -# --tag=TAG use configuration variables from tag TAG -# -v, --verbose print more informational messages than default -# --no-verbose don't print the extra informational messages -# --version print version information -# -h, --help, --help-all print short, long, or detailed help message -# -# MODE must be one of the following: -# -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory -# -# MODE-ARGS vary depending on the MODE. When passed as first option, -# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. -# Try `$progname --help --mode=MODE' for a more detailed description of MODE. -# -# When reporting a bug, please describe a test case to reproduce it and -# include the following information: -# -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 -# automake: $automake_version -# autoconf: $autoconf_version -# -# Report bugs to . -# GNU libtool home page: . -# General help using GNU software: . - -PROGRAM=libtool -PACKAGE=libtool -VERSION=2.4.2 -TIMESTAMP="" -package_revision=1.3337 - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' -} - -# NLS nuisances: We save the old values to restore during execute mode. -lt_user_locale= -lt_safe_locale= -for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -do - eval "if test \"\${$lt_var+set}\" = set; then - save_$lt_var=\$$lt_var - $lt_var=C - export $lt_var - lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" - lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" - fi" -done -LC_ALL=C -LANGUAGE=C -export LANGUAGE LC_ALL - -$lt_unset CDPATH - - -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" - - - -: ${CP="cp -f"} -test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} -: ${MAKE="make"} -: ${MKDIR="mkdir"} -: ${MV="mv -f"} -: ${RM="rm -f"} -: ${SHELL="${CONFIG_SHELL-/bin/sh}"} -: ${Xsed="$SED -e 1s/^X//"} - -# Global variables: -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. -EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. - -exit_status=$EXIT_SUCCESS - -# Make sure IFS has a sensible default -lt_nl=' -' -IFS=" $lt_nl" - -dirname="s,/[^/]*$,," -basename="s,^.*/,," - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} # func_dirname may be replaced by extended shell implementation - - -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "${1}" | $SED "$basename"` -} # func_basename may be replaced by extended shell implementation - - -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi - func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` -} # func_dirname_and_basename may be replaced by extended shell implementation - - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname may be replaced by extended shell implementation - - -# These SED scripts presuppose an absolute path with a trailing slash. -pathcar='s,^/\([^/]*\).*$,\1,' -pathcdr='s,^/[^/]*,,' -removedotparts=':dotsl - s@/\./@/@g - t dotsl - s,/\.$,/,' -collapseslashes='s@/\{1,\}@/@g' -finalslash='s,/*$,/,' - -# func_normal_abspath PATH -# Remove doubled-up and trailing slashes, "." path components, -# and cancel out any ".." path components in PATH after making -# it an absolute path. -# value returned in "$func_normal_abspath_result" -func_normal_abspath () -{ - # Start from root dir and reassemble the path. - func_normal_abspath_result= - func_normal_abspath_tpath=$1 - func_normal_abspath_altnamespace= - case $func_normal_abspath_tpath in - "") - # Empty path, that just means $cwd. - func_stripname '' '/' "`pwd`" - func_normal_abspath_result=$func_stripname_result - return - ;; - # The next three entries are used to spot a run of precisely - # two leading slashes without using negated character classes; - # we take advantage of case's first-match behaviour. - ///*) - # Unusual form of absolute path, do nothing. - ;; - //*) - # Not necessarily an ordinary path; POSIX reserves leading '//' - # and for example Cygwin uses it to access remote file shares - # over CIFS/SMB, so we conserve a leading double slash if found. - func_normal_abspath_altnamespace=/ - ;; - /*) - # Absolute path, do nothing. - ;; - *) - # Relative path, prepend $cwd. - func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath - ;; - esac - # Cancel out all the simple stuff to save iterations. We also want - # the path to end with a slash for ease of parsing, so make sure - # there is one (and only one) here. - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` - while :; do - # Processed it all yet? - if test "$func_normal_abspath_tpath" = / ; then - # If we ascended to the root using ".." the result may be empty now. - if test -z "$func_normal_abspath_result" ; then - func_normal_abspath_result=/ - fi - break - fi - func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcar"` - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcdr"` - # Figure out what to do with it - case $func_normal_abspath_tcomponent in - "") - # Trailing empty path component, ignore it. - ;; - ..) - # Parent dir; strip last assembled component from result. - func_dirname "$func_normal_abspath_result" - func_normal_abspath_result=$func_dirname_result - ;; - *) - # Actual path component, append it. - func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent - ;; - esac - done - # Restore leading double-slash if one was found on entry. - func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result -} - -# func_relative_path SRCDIR DSTDIR -# generates a relative path from SRCDIR to DSTDIR, with a trailing -# slash if non-empty, suitable for immediately appending a filename -# without needing to append a separator. -# value returned in "$func_relative_path_result" -func_relative_path () -{ - func_relative_path_result= - func_normal_abspath "$1" - func_relative_path_tlibdir=$func_normal_abspath_result - func_normal_abspath "$2" - func_relative_path_tbindir=$func_normal_abspath_result - - # Ascend the tree starting from libdir - while :; do - # check if we have found a prefix of bindir - case $func_relative_path_tbindir in - $func_relative_path_tlibdir) - # found an exact match - func_relative_path_tcancelled= - break - ;; - $func_relative_path_tlibdir*) - # found a matching prefix - func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" - func_relative_path_tcancelled=$func_stripname_result - if test -z "$func_relative_path_result"; then - func_relative_path_result=. - fi - break - ;; - *) - func_dirname $func_relative_path_tlibdir - func_relative_path_tlibdir=${func_dirname_result} - if test "x$func_relative_path_tlibdir" = x ; then - # Have to descend all the way to the root! - func_relative_path_result=../$func_relative_path_result - func_relative_path_tcancelled=$func_relative_path_tbindir - break - fi - func_relative_path_result=../$func_relative_path_result - ;; - esac - done - - # Now calculate path; take care to avoid doubling-up slashes. - func_stripname '' '/' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - func_stripname '/' '/' "$func_relative_path_tcancelled" - if test "x$func_stripname_result" != x ; then - func_relative_path_result=${func_relative_path_result}/${func_stripname_result} - fi - - # Normalisation. If bindir is libdir, return empty string, - # else relative path ending with a slash; either way, target - # file name can be directly appended. - if test ! -z "$func_relative_path_result"; then - func_stripname './' '' "$func_relative_path_result/" - func_relative_path_result=$func_stripname_result - fi -} - -# The name of this program: -func_dirname_and_basename "$progpath" -progname=$func_basename_result - -# Make sure we have an absolute path for reexecution: -case $progpath in - [\\/]*|[A-Za-z]:\\*) ;; - *[\\/]*) - progdir=$func_dirname_result - progdir=`cd "$progdir" && pwd` - progpath="$progdir/$progname" - ;; - *) - save_IFS="$IFS" - IFS=${PATH_SEPARATOR-:} - for progdir in $PATH; do - IFS="$save_IFS" - test -x "$progdir/$progname" && break - done - IFS="$save_IFS" - test -n "$progdir" || progdir=`pwd` - progpath="$progdir/$progname" - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed="${SED}"' -e 1s/^X//' -sed_quote_subst='s/\([`"$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution that turns a string into a regex matching for the -# string literally. -sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' - -# Sed substitution that converts a w32 file name or path -# which contains forward slashes, into one that contains -# (escaped) backslashes. A very naive implementation. -lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - -# Re-`\' parameter expansions in output of double_quote_subst that were -# `\'-ed in input to the same. If an odd number of `\' preceded a '$' -# in input to double_quote_subst, that '$' was protected from expansion. -# Since each input `\' is now two `\'s, look for any number of runs of -# four `\'s followed by two `\'s and then a '$'. `\' that '$'. -bs='\\' -bs2='\\\\' -bs4='\\\\\\\\' -dollar='\$' -sed_double_backslash="\ - s/$bs4/&\\ -/g - s/^$bs2$dollar/$bs&/ - s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g - s/\n//g" - -# Standard options: -opt_dry_run=false -opt_help=false -opt_quiet=false -opt_verbose=false -opt_warning=: - -# func_echo arg... -# Echo program name prefixed message, along with the current mode -# name if it has been set yet. -func_echo () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }$*" -} - -# func_verbose arg... -# Echo program name prefixed message in verbose mode only. -func_verbose () -{ - $opt_verbose && func_echo ${1+"$@"} - - # A bug in bash halts the script if the last line of a function - # fails when set -e is in force, so we need another command to - # work around that: - : -} - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - -# func_error arg... -# Echo program name prefixed message to standard error. -func_error () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 -} - -# func_warning arg... -# Echo program name prefixed warning message to standard error. -func_warning () -{ - $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 - - # bash bug again: - : -} - -# func_fatal_error arg... -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () -{ - func_error ${1+"$@"} - exit $EXIT_FAILURE -} - -# func_fatal_help arg... -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () -{ - func_error ${1+"$@"} - func_fatal_error "$help" -} -help="Try \`$progname --help' for more information." ## default - - -# func_grep expression filename -# Check whether EXPRESSION matches any line of FILENAME, without output. -func_grep () -{ - $GREP "$1" "$2" >/dev/null 2>&1 -} - - -# func_mkdir_p directory-path -# Make sure the entire path to DIRECTORY-PATH is available. -func_mkdir_p () -{ - my_directory_path="$1" - my_dir_list= - - if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then - - # Protect directory names starting with `-' - case $my_directory_path in - -*) my_directory_path="./$my_directory_path" ;; - esac - - # While some portion of DIR does not yet exist... - while test ! -d "$my_directory_path"; do - # ...make a list in topmost first order. Use a colon delimited - # list incase some portion of path contains whitespace. - my_dir_list="$my_directory_path:$my_dir_list" - - # If the last portion added has no slash in it, the list is done - case $my_directory_path in */*) ;; *) break ;; esac - - # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` - done - my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` - - save_mkdir_p_IFS="$IFS"; IFS=':' - for my_dir in $my_dir_list; do - IFS="$save_mkdir_p_IFS" - # mkdir can fail with a `File exist' error if two processes - # try to create one of the directories concurrently. Don't - # stop in that case! - $MKDIR "$my_dir" 2>/dev/null || : - done - IFS="$save_mkdir_p_IFS" - - # Bail out if we (or some other process) failed to create a directory. - test -d "$my_directory_path" || \ - func_fatal_error "Failed to create \`$1'" - fi -} - - -# func_mktempdir [string] -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, STRING is the basename for that directory. -func_mktempdir () -{ - my_template="${TMPDIR-/tmp}/${1-$progname}" - - if test "$opt_dry_run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else - - # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` - - if test ! -d "$my_tmpdir"; then - # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" - - save_mktempdir_umask=`umask` - umask 0077 - $MKDIR "$my_tmpdir" - umask $save_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure - test -d "$my_tmpdir" || \ - func_fatal_error "cannot create temporary directory \`$my_tmpdir'" - fi - - $ECHO "$my_tmpdir" -} - - -# func_quote_for_eval arg -# Aesthetically quote ARG to be evaled later. -# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT -# is double-quoted, suitable for a subsequent eval, whereas -# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters -# which are still active within double quotes backslashified. -func_quote_for_eval () -{ - case $1 in - *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; - *) - func_quote_for_eval_unquoted_result="$1" ;; - esac - - case $func_quote_for_eval_unquoted_result in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and and variable - # expansion for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" - ;; - *) - func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" - esac -} - - -# func_quote_for_expand arg -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () -{ - case $1 in - *[\\\`\"]*) - my_arg=`$ECHO "$1" | $SED \ - -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) - my_arg="$1" ;; - esac - - case $my_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - my_arg="\"$my_arg\"" - ;; - esac - - func_quote_for_expand_result="$my_arg" -} - - -# func_show_eval cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. -func_show_eval () -{ - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - if ${opt_dry_run-false}; then :; else - eval "$my_cmd" - my_status=$? - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} - - -# func_show_eval_locale cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. Use the saved locale for evaluation. -func_show_eval_locale () -{ - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - if ${opt_dry_run-false}; then :; else - eval "$lt_user_locale - $my_cmd" - my_status=$? - eval "$lt_safe_locale" - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} - -# func_tr_sh -# Turn $1 into a string suitable for a shell variable name. -# Result is stored in $func_tr_sh_result. All characters -# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -# if $1 begins with a digit, a '_' is prepended as well. -func_tr_sh () -{ - case $1 in - [0-9]* | *[!a-zA-Z0-9_]*) - func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` - ;; - * ) - func_tr_sh_result=$1 - ;; - esac -} - - -# func_version -# Echo version message to standard output and exit. -func_version () -{ - $opt_debug - - $SED -n '/(C)/!b go - :more - /\./!{ - N - s/\n# / / - b more - } - :go - /^# '$PROGRAM' (GNU /,/# warranty; / { - s/^# // - s/^# *$// - s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ - p - }' < "$progpath" - exit $? -} - -# func_usage -# Echo short help message to standard output and exit. -func_usage () -{ - $opt_debug - - $SED -n '/^# Usage:/,/^# *.*--help/ { - s/^# // - s/^# *$// - s/\$progname/'$progname'/ - p - }' < "$progpath" - echo - $ECHO "run \`$progname --help | more' for full usage" - exit $? -} - -# func_help [NOEXIT] -# Echo long help message to standard output and exit, -# unless 'noexit' is passed as argument. -func_help () -{ - $opt_debug - - $SED -n '/^# Usage:/,/# Report bugs to/ { - :print - s/^# // - s/^# *$// - s*\$progname*'$progname'* - s*\$host*'"$host"'* - s*\$SHELL*'"$SHELL"'* - s*\$LTCC*'"$LTCC"'* - s*\$LTCFLAGS*'"$LTCFLAGS"'* - s*\$LD*'"$LD"'* - s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ - p - d - } - /^# .* home page:/b print - /^# General help using/b print - ' < "$progpath" - ret=$? - if test -z "$1"; then - exit $ret - fi -} - -# func_missing_arg argname -# Echo program name prefixed message to standard error and set global -# exit_cmd. -func_missing_arg () -{ - $opt_debug - - func_error "missing argument for $1." - exit_cmd=exit -} - - -# func_split_short_opt shortopt -# Set func_split_short_opt_name and func_split_short_opt_arg shell -# variables after splitting SHORTOPT after the 2nd character. -func_split_short_opt () -{ - my_sed_short_opt='1s/^\(..\).*$/\1/;q' - my_sed_short_rest='1s/^..\(.*\)$/\1/;q' - - func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` - func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` -} # func_split_short_opt may be replaced by extended shell implementation - - -# func_split_long_opt longopt -# Set func_split_long_opt_name and func_split_long_opt_arg shell -# variables after splitting LONGOPT at the `=' sign. -func_split_long_opt () -{ - my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' - my_sed_long_arg='1s/^--[^=]*=//' - - func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` - func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` -} # func_split_long_opt may be replaced by extended shell implementation - -exit_cmd=: - - - - - -magic="%%%MAGIC variable%%%" -magic_exe="%%%MAGIC EXE variable%%%" - -# Global variables. -nonopt= -preserve_args= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" -extracted_archives= -extracted_serial=0 - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "${1}=\$${1}\${2}" -} # func_append may be replaced by extended shell implementation - -# func_append_quoted var value -# Quote VALUE and append to the end of shell variable VAR, separated -# by a space. -func_append_quoted () -{ - func_quote_for_eval "${2}" - eval "${1}=\$${1}\\ \$func_quote_for_eval_result" -} # func_append_quoted may be replaced by extended shell implementation - - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "${@}"` -} # func_arith may be replaced by extended shell implementation - - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` -} # func_len may be replaced by extended shell implementation - - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` -} # func_lo2o may be replaced by extended shell implementation - - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` -} # func_xform may be replaced by extended shell implementation - - -# func_fatal_configuration arg... -# Echo program name prefixed message to standard error, followed by -# a configuration failure hint, and exit. -func_fatal_configuration () -{ - func_error ${1+"$@"} - func_error "See the $PACKAGE documentation for more information." - func_fatal_error "Fatal configuration error." -} - - -# func_config -# Display the configuration for all the tags in this script. -func_config () -{ - re_begincf='^# ### BEGIN LIBTOOL' - re_endcf='^# ### END LIBTOOL' - - # Default configuration. - $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" - - # Now print the configurations for the tags. - for tagname in $taglist; do - $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" - done - - exit $? -} - -# func_features -# Display the features supported by this script. -func_features () -{ - echo "host: $host" - if test "$build_libtool_libs" = yes; then - echo "enable shared libraries" - else - echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - echo "enable static libraries" - else - echo "disable static libraries" - fi - - exit $? -} - -# func_enable_tag tagname -# Verify that TAGNAME is valid, and either flag an error and exit, or -# enable the TAGNAME tag. We also add TAGNAME to the global $taglist -# variable here. -func_enable_tag () -{ - # Global variable: - tagname="$1" - - re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" - re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" - sed_extractcf="/$re_begincf/,/$re_endcf/p" - - # Validate tagname. - case $tagname in - *[!-_A-Za-z0-9,/]*) - func_fatal_error "invalid tag name: $tagname" - ;; - esac - - # Don't test for the "default" C tag, as we know it's - # there but not specially marked. - case $tagname in - CC) ;; - *) - if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then - taglist="$taglist $tagname" - - # Evaluate the configuration. Be careful to quote the path - # and the sed script, to avoid splitting on whitespace, but - # also don't use non-portable quotes within backquotes within - # quotes we have to do it in 2 steps: - extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` - eval "$extractedcf" - else - func_error "ignoring unknown tag $tagname" - fi - ;; - esac -} - -# func_check_version_match -# Ensure that we are using m4 macros, and libtool script from the same -# release of libtool. -func_check_version_match () -{ - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from an older release. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - fi - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -$progname: but the definition of this LT_INIT comes from revision $macro_revision. -$progname: You should recreate aclocal.m4 with macros from revision $package_revision -$progname: of $PACKAGE $VERSION and run autoconf again. -_LT_EOF - fi - - exit $EXIT_MISMATCH - fi -} - - -# Shorthand for --mode=foo, only valid as the first argument -case $1 in -clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; -compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; -execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; -finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; -install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; -link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; -uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; -esac - - - -# Option defaults: -opt_debug=: -opt_dry_run=false -opt_config=false -opt_preserve_dup_deps=false -opt_features=false -opt_finish=false -opt_help=false -opt_help_all=false -opt_silent=: -opt_warning=: -opt_verbose=: -opt_silent=false -opt_verbose=false - - -# Parse options once, thoroughly. This comes as soon as possible in the -# script to make things like `--version' happen as quickly as we can. -{ - # this just eases exit handling - while test $# -gt 0; do - opt="$1" - shift - case $opt in - --debug|-x) opt_debug='set -x' - func_echo "enabling shell trace mode" - $opt_debug - ;; - --dry-run|--dryrun|-n) - opt_dry_run=: - ;; - --config) - opt_config=: -func_config - ;; - --dlopen|-dlopen) - optarg="$1" - opt_dlopen="${opt_dlopen+$opt_dlopen -}$optarg" - shift - ;; - --preserve-dup-deps) - opt_preserve_dup_deps=: - ;; - --features) - opt_features=: -func_features - ;; - --finish) - opt_finish=: -set dummy --mode finish ${1+"$@"}; shift - ;; - --help) - opt_help=: - ;; - --help-all) - opt_help_all=: -opt_help=': help-all' - ;; - --mode) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_mode="$optarg" -case $optarg in - # Valid mode arguments: - clean|compile|execute|finish|install|link|relink|uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $opt" - exit_cmd=exit - break - ;; -esac - shift - ;; - --no-silent|--no-quiet) - opt_silent=false -func_append preserve_args " $opt" - ;; - --no-warning|--no-warn) - opt_warning=false -func_append preserve_args " $opt" - ;; - --no-verbose) - opt_verbose=false -func_append preserve_args " $opt" - ;; - --silent|--quiet) - opt_silent=: -func_append preserve_args " $opt" - opt_verbose=false - ;; - --verbose|-v) - opt_verbose=: -func_append preserve_args " $opt" -opt_silent=false - ;; - --tag) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_tag="$optarg" -func_append preserve_args " $opt $optarg" -func_enable_tag "$optarg" - shift - ;; - - -\?|-h) func_usage ;; - --help) func_help ;; - --version) func_version ;; - - # Separate optargs to long options: - --*=*) - func_split_long_opt "$opt" - set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} - shift - ;; - - # Separate non-argument short options: - -\?*|-h*|-n*|-v*) - func_split_short_opt "$opt" - set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - --) break ;; - -*) func_fatal_help "unrecognized option \`$opt'" ;; - *) set dummy "$opt" ${1+"$@"}; shift; break ;; - esac - done - - # Validate options: - - # save first non-option argument - if test "$#" -gt 0; then - nonopt="$opt" - shift - fi - - # preserve --debug - test "$opt_debug" = : || func_append preserve_args " --debug" - - case $host in - *cygwin* | *mingw* | *pw32* | *cegcc*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; - *) - opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - - $opt_help || { - # Sanity checks first: - func_check_version_match - - if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - func_fatal_configuration "not configured to build any kind of library" - fi - - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$opt_dlopen" && test "$opt_mode" != execute; then - func_error "unrecognized option \`-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$opt_mode' for more information." - } - - - # Bail if the options were screwed - $exit_cmd $EXIT_FAILURE -} - - - - -## ----------- ## -## Main. ## -## ----------- ## - -# func_lalib_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_lalib_p () -{ - test -f "$1" && - $SED -e 4q "$1" 2>/dev/null \ - | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 -} - -# func_lalib_unsafe_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. -# This function implements the same check as func_lalib_p without -# resorting to external programs. To this end, it redirects stdin and -# closes it afterwards, without saving the original file descriptor. -# As a safety measure, use it only where a negative result would be -# fatal anyway. Works if `file' does not exist. -func_lalib_unsafe_p () -{ - lalib_p=no - if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then - for lalib_p_l in 1 2 3 4 - do - read lalib_p_line - case "$lalib_p_line" in - \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; - esac - done - exec 0<&5 5<&- - fi - test "$lalib_p" = yes -} - -# func_ltwrapper_script_p file -# True iff FILE is a libtool wrapper script -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_script_p () -{ - func_lalib_p "$1" -} - -# func_ltwrapper_executable_p file -# True iff FILE is a libtool wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_executable_p () -{ - func_ltwrapper_exec_suffix= - case $1 in - *.exe) ;; - *) func_ltwrapper_exec_suffix=.exe ;; - esac - $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 -} - -# func_ltwrapper_scriptname file -# Assumes file is an ltwrapper_executable -# uses $file to determine the appropriate filename for a -# temporary ltwrapper_script. -func_ltwrapper_scriptname () -{ - func_dirname_and_basename "$1" "" "." - func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" -} - -# func_ltwrapper_p file -# True iff FILE is a libtool wrapper script or wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_p () -{ - func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" -} - - -# func_execute_cmds commands fail_cmd -# Execute tilde-delimited COMMANDS. -# If FAIL_CMD is given, eval that upon failure. -# FAIL_CMD may read-access the current command in variable CMD! -func_execute_cmds () -{ - $opt_debug - save_ifs=$IFS; IFS='~' - for cmd in $1; do - IFS=$save_ifs - eval cmd=\"$cmd\" - func_show_eval "$cmd" "${2-:}" - done - IFS=$save_ifs -} - - -# func_source file -# Source FILE, adding directory component if necessary. -# Note that it is not necessary on cygwin/mingw to append a dot to -# FILE even if both FILE and FILE.exe exist: automatic-append-.exe -# behavior happens only for exec(3), not for open(2)! Also, sourcing -# `FILE.' does not work on cygwin managed mounts. -func_source () -{ - $opt_debug - case $1 in - */* | *\\*) . "$1" ;; - *) . "./$1" ;; - esac -} - - -# func_resolve_sysroot PATH -# Replace a leading = in PATH with a sysroot. Store the result into -# func_resolve_sysroot_result -func_resolve_sysroot () -{ - func_resolve_sysroot_result=$1 - case $func_resolve_sysroot_result in - =*) - func_stripname '=' '' "$func_resolve_sysroot_result" - func_resolve_sysroot_result=$lt_sysroot$func_stripname_result - ;; - esac -} - -# func_replace_sysroot PATH -# If PATH begins with the sysroot, replace it with = and -# store the result into func_replace_sysroot_result. -func_replace_sysroot () -{ - case "$lt_sysroot:$1" in - ?*:"$lt_sysroot"*) - func_stripname "$lt_sysroot" '' "$1" - func_replace_sysroot_result="=$func_stripname_result" - ;; - *) - # Including no sysroot. - func_replace_sysroot_result=$1 - ;; - esac -} - -# func_infer_tag arg -# Infer tagged configuration to use if any are available and -# if one wasn't chosen via the "--tag" command line option. -# Only attempt this if the compiler in the base compile -# command doesn't match the default compiler. -# arg is usually of the form 'gcc ...' -func_infer_tag () -{ - $opt_debug - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case $@ in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case "$@ " in - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with \`--tag'" -# else -# func_verbose "using $tagname tagged configuration" - fi - ;; - esac - fi -} - - - -# func_write_libtool_object output_name pic_name nonpic_name -# Create a libtool object file (analogous to a ".la" file), -# but don't create it if we're doing a dry run. -func_write_libtool_object () -{ - write_libobj=${1} - if test "$build_libtool_libs" = yes; then - write_lobj=\'${2}\' - else - write_lobj=none - fi - - if test "$build_old_libs" = yes; then - write_oldobj=\'${3}\' - else - write_oldobj=none - fi - - $opt_dry_run || { - cat >${write_libobj}T </dev/null` - if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then - func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | - $SED -e "$lt_sed_naive_backslashify"` - else - func_convert_core_file_wine_to_w32_result= - fi - fi -} -# end: func_convert_core_file_wine_to_w32 - - -# func_convert_core_path_wine_to_w32 ARG -# Helper function used by path conversion functions when $build is *nix, and -# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly -# configured wine environment available, with the winepath program in $build's -# $PATH. Assumes ARG has no leading or trailing path separator characters. -# -# ARG is path to be converted from $build format to win32. -# Result is available in $func_convert_core_path_wine_to_w32_result. -# Unconvertible file (directory) names in ARG are skipped; if no directory names -# are convertible, then the result may be empty. -func_convert_core_path_wine_to_w32 () -{ - $opt_debug - # unfortunately, winepath doesn't convert paths, only file names - func_convert_core_path_wine_to_w32_result="" - if test -n "$1"; then - oldIFS=$IFS - IFS=: - for func_convert_core_path_wine_to_w32_f in $1; do - IFS=$oldIFS - func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" - if test -n "$func_convert_core_file_wine_to_w32_result" ; then - if test -z "$func_convert_core_path_wine_to_w32_result"; then - func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" - else - func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" - fi - fi - done - IFS=$oldIFS - fi -} -# end: func_convert_core_path_wine_to_w32 - - -# func_cygpath ARGS... -# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when -# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) -# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or -# (2), returns the Cygwin file name or path in func_cygpath_result (input -# file name or path is assumed to be in w32 format, as previously converted -# from $build's *nix or MSYS format). In case (3), returns the w32 file name -# or path in func_cygpath_result (input file name or path is assumed to be in -# Cygwin format). Returns an empty string on error. -# -# ARGS are passed to cygpath, with the last one being the file name or path to -# be converted. -# -# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH -# environment variable; do not put it in $PATH. -func_cygpath () -{ - $opt_debug - if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then - func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` - if test "$?" -ne 0; then - # on failure, ensure result is empty - func_cygpath_result= - fi - else - func_cygpath_result= - func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" - fi -} -#end: func_cygpath - - -# func_convert_core_msys_to_w32 ARG -# Convert file name or path ARG from MSYS format to w32 format. Return -# result in func_convert_core_msys_to_w32_result. -func_convert_core_msys_to_w32 () -{ - $opt_debug - # awkward: cmd appends spaces to result - func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | - $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -} -#end: func_convert_core_msys_to_w32 - - -# func_convert_file_check ARG1 ARG2 -# Verify that ARG1 (a file name in $build format) was converted to $host -# format in ARG2. Otherwise, emit an error message, but continue (resetting -# func_to_host_file_result to ARG1). -func_convert_file_check () -{ - $opt_debug - if test -z "$2" && test -n "$1" ; then - func_error "Could not determine host file name corresponding to" - func_error " \`$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback: - func_to_host_file_result="$1" - fi -} -# end func_convert_file_check - - -# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH -# Verify that FROM_PATH (a path in $build format) was converted to $host -# format in TO_PATH. Otherwise, emit an error message, but continue, resetting -# func_to_host_file_result to a simplistic fallback value (see below). -func_convert_path_check () -{ - $opt_debug - if test -z "$4" && test -n "$3"; then - func_error "Could not determine the host path corresponding to" - func_error " \`$3'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback. This is a deliberately simplistic "conversion" and - # should not be "improved". See libtool.info. - if test "x$1" != "x$2"; then - lt_replace_pathsep_chars="s|$1|$2|g" - func_to_host_path_result=`echo "$3" | - $SED -e "$lt_replace_pathsep_chars"` - else - func_to_host_path_result="$3" - fi - fi -} -# end func_convert_path_check - - -# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG -# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT -# and appending REPL if ORIG matches BACKPAT. -func_convert_path_front_back_pathsep () -{ - $opt_debug - case $4 in - $1 ) func_to_host_path_result="$3$func_to_host_path_result" - ;; - esac - case $4 in - $2 ) func_append func_to_host_path_result "$3" - ;; - esac -} -# end func_convert_path_front_back_pathsep - - -################################################## -# $build to $host FILE NAME CONVERSION FUNCTIONS # -################################################## -# invoked via `$to_host_file_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# Result will be available in $func_to_host_file_result. - - -# func_to_host_file ARG -# Converts the file name ARG from $build format to $host format. Return result -# in func_to_host_file_result. -func_to_host_file () -{ - $opt_debug - $to_host_file_cmd "$1" -} -# end func_to_host_file - - -# func_to_tool_file ARG LAZY -# converts the file name ARG from $build format to toolchain format. Return -# result in func_to_tool_file_result. If the conversion in use is listed -# in (the comma separated) LAZY, no conversion takes place. -func_to_tool_file () -{ - $opt_debug - case ,$2, in - *,"$to_tool_file_cmd",*) - func_to_tool_file_result=$1 - ;; - *) - $to_tool_file_cmd "$1" - func_to_tool_file_result=$func_to_host_file_result - ;; - esac -} -# end func_to_tool_file - - -# func_convert_file_noop ARG -# Copy ARG to func_to_host_file_result. -func_convert_file_noop () -{ - func_to_host_file_result="$1" -} -# end func_convert_file_noop - - -# func_convert_file_msys_to_w32 ARG -# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_file_result. -func_convert_file_msys_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_to_host_file_result="$func_convert_core_msys_to_w32_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_w32 - - -# func_convert_file_cygwin_to_w32 ARG -# Convert file name ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_file_cygwin_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - # because $build is cygwin, we call "the" cygpath in $PATH; no need to use - # LT_CYGPATH in this case. - func_to_host_file_result=`cygpath -m "$1"` - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_cygwin_to_w32 - - -# func_convert_file_nix_to_w32 ARG -# Convert file name ARG from *nix to w32 format. Requires a wine environment -# and a working winepath. Returns result in func_to_host_file_result. -func_convert_file_nix_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_file_wine_to_w32 "$1" - func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_w32 - - -# func_convert_file_msys_to_cygwin ARG -# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_file_msys_to_cygwin () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_cygpath -u "$func_convert_core_msys_to_w32_result" - func_to_host_file_result="$func_cygpath_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_cygwin - - -# func_convert_file_nix_to_cygwin ARG -# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed -# in a wine environment, working winepath, and LT_CYGPATH set. Returns result -# in func_to_host_file_result. -func_convert_file_nix_to_cygwin () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. - func_convert_core_file_wine_to_w32 "$1" - func_cygpath -u "$func_convert_core_file_wine_to_w32_result" - func_to_host_file_result="$func_cygpath_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_cygwin - - -############################################# -# $build to $host PATH CONVERSION FUNCTIONS # -############################################# -# invoked via `$to_host_path_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# The result will be available in $func_to_host_path_result. -# -# Path separators are also converted from $build format to $host format. If -# ARG begins or ends with a path separator character, it is preserved (but -# converted to $host format) on output. -# -# All path conversion functions are named using the following convention: -# file name conversion function : func_convert_file_X_to_Y () -# path conversion function : func_convert_path_X_to_Y () -# where, for any given $build/$host combination the 'X_to_Y' value is the -# same. If conversion functions are added for new $build/$host combinations, -# the two new functions must follow this pattern, or func_init_to_host_path_cmd -# will break. - - -# func_init_to_host_path_cmd -# Ensures that function "pointer" variable $to_host_path_cmd is set to the -# appropriate value, based on the value of $to_host_file_cmd. -to_host_path_cmd= -func_init_to_host_path_cmd () -{ - $opt_debug - if test -z "$to_host_path_cmd"; then - func_stripname 'func_convert_file_' '' "$to_host_file_cmd" - to_host_path_cmd="func_convert_path_${func_stripname_result}" - fi -} - - -# func_to_host_path ARG -# Converts the path ARG from $build format to $host format. Return result -# in func_to_host_path_result. -func_to_host_path () -{ - $opt_debug - func_init_to_host_path_cmd - $to_host_path_cmd "$1" -} -# end func_to_host_path - - -# func_convert_path_noop ARG -# Copy ARG to func_to_host_path_result. -func_convert_path_noop () -{ - func_to_host_path_result="$1" -} -# end func_convert_path_noop - - -# func_convert_path_msys_to_w32 ARG -# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_path_result. -func_convert_path_msys_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # Remove leading and trailing path separator characters from ARG. MSYS - # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; - # and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_msys_to_w32_result" - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_msys_to_w32 - - -# func_convert_path_cygwin_to_w32 ARG -# Convert path ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_path_cygwin_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_cygwin_to_w32 - - -# func_convert_path_nix_to_w32 ARG -# Convert path ARG from *nix to w32 format. Requires a wine environment and -# a working winepath. Returns result in func_to_host_file_result. -func_convert_path_nix_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_nix_to_w32 - - -# func_convert_path_msys_to_cygwin ARG -# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_path_msys_to_cygwin () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_msys_to_w32_result" - func_to_host_path_result="$func_cygpath_result" - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_msys_to_cygwin - - -# func_convert_path_nix_to_cygwin ARG -# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a -# a wine environment, working winepath, and LT_CYGPATH set. Returns result in -# func_to_host_file_result. -func_convert_path_nix_to_cygwin () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # Remove leading and trailing path separator characters from - # ARG. msys behavior is inconsistent here, cygpath turns them - # into '.;' and ';.', and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" - func_to_host_path_result="$func_cygpath_result" - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_nix_to_cygwin - - -# func_mode_compile arg... -func_mode_compile () -{ - $opt_debug - # Get the compilation command and the source file. - base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" - suppress_opt=yes - suppress_output= - arg_mode=normal - libobj= - later= - pie_flag= - - for arg - do - case $arg_mode in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg="$arg" - arg_mode=normal - ;; - - target ) - libobj="$arg" - arg_mode=normal - continue - ;; - - normal ) - # Accept any command-line options. - case $arg in - -o) - test -n "$libobj" && \ - func_fatal_error "you cannot specify \`-o' more than once" - arg_mode=target - continue - ;; - - -pie | -fpie | -fPIE) - func_append pie_flag " $arg" - continue - ;; - - -shared | -static | -prefer-pic | -prefer-non-pic) - func_append later " $arg" - continue - ;; - - -no-suppress) - suppress_opt=no - continue - ;; - - -Xcompiler) - arg_mode=arg # the next one goes into the "base_compile" arg list - continue # The current "srcfile" will either be retained or - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - lastarg= - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" - func_append_quoted lastarg "$arg" - done - IFS="$save_ifs" - func_stripname ' ' '' "$lastarg" - lastarg=$func_stripname_result - - # Add the arguments to base_compile. - func_append base_compile " $lastarg" - continue - ;; - - *) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # - lastarg="$srcfile" - srcfile="$arg" - ;; - esac # case $arg - ;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - func_append_quoted base_compile "$lastarg" - done # for arg - - case $arg_mode in - arg) - func_fatal_error "you must specify an argument for -Xcompile" - ;; - target) - func_fatal_error "you must specify a target with \`-o'" - ;; - *) - # Get the name of the library object. - test -z "$libobj" && { - func_basename "$srcfile" - libobj="$func_basename_result" - } - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - case $libobj in - *.[cCFSifmso] | \ - *.ada | *.adb | *.ads | *.asm | \ - *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) - func_xform "$libobj" - libobj=$func_xform_result - ;; - esac - - case $libobj in - *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; - *) - func_fatal_error "cannot determine name of library object from \`$libobj'" - ;; - esac - - func_infer_tag $base_compile - - for arg in $later; do - case $arg in - -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" - build_old_libs=no - continue - ;; - - -static) - build_libtool_libs=no - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - esac - done - - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ - && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && func_warning "libobj name \`$libobj' may not contain shell special characters." - func_dirname_and_basename "$obj" "/" "" - objname="$func_basename_result" - xdir="$func_dirname_result" - lobj=${xdir}$objdir/$objname - - test -z "$base_compile" && \ - func_fatal_help "you must specify a compilation command" - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2* | cegcc*) - pic_mode=default - ;; - esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then - # non-PIC code in shared libraries is not supported - pic_mode=default - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" - else - output_obj= - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then - $ECHO "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - func_append removelist " $output_obj" - $ECHO "$srcfile" > "$lockfile" - fi - - $opt_dry_run || $RM $removelist - func_append removelist " $lockfile" - trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - - func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 - srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result - - # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - if test "$pic_mode" != no; then - command="$base_compile $qsrcfile $pic_flag" - else - # Don't build PIC code - command="$base_compile $qsrcfile" - fi - - func_mkdir_p "$xdir$objdir" - - if test -z "$output_obj"; then - # Place PIC objects in $objdir - func_append command " -o $lobj" - fi - - func_show_eval_locale "$command" \ - 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then - func_show_eval '$MV "$output_obj" "$lobj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - - # Allow error messages only from the first compilation. - if test "$suppress_opt" = yes; then - suppress_output=' >/dev/null 2>&1' - fi - fi - - # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then - # Don't build PIC code - command="$base_compile $qsrcfile$pie_flag" - else - command="$base_compile $qsrcfile $pic_flag" - fi - if test "$compiler_c_o" = yes; then - func_append command " -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. - func_append command "$suppress_output" - func_show_eval_locale "$command" \ - '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then - func_show_eval '$MV "$output_obj" "$obj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - fi - - $opt_dry_run || { - func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" - - # Unlock the critical section if it was locked - if test "$need_locks" != no; then - removelist=$lockfile - $RM "$lockfile" - fi - } - - exit $EXIT_SUCCESS -} - -$opt_help || { - test "$opt_mode" = compile && func_mode_compile ${1+"$@"} -} - -func_mode_help () -{ - # We need to display help for each of the modes. - case $opt_mode in - "") - # Generic help is extracted from the usage comments - # at the start of this file. - func_help - ;; - - clean) - $ECHO \ -"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - - compile) - $ECHO \ -"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -no-suppress do not suppress compiler output for multiple passes - -prefer-pic try to build PIC objects only - -prefer-non-pic try to build non-PIC objects only - -shared do not build a \`.o' file suitable for static linking - -static only build a \`.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler - -COMPILE-COMMAND is a command to be used in creating a \`standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - - execute) - $ECHO \ -"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to \`-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - - finish) - $ECHO \ -"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." - ;; - - install) - $ECHO \ -"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. - -The following components of INSTALL-COMMAND are treated specially: - - -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - - link) - $ECHO \ -"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -bindir BINDIR specify path to binaries directory (for systems where - libraries must be found in the PATH setting at runtime) - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects - -precious-files-regex REGEX - don't remove output files matching REGEX - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -shared only do dynamic linking of libtool libraries - -shrext SUFFIX override the standard shared library file extension - -static do not do any dynamic linking of uninstalled libtool libraries - -static-libtool-libs - do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -weak LIBNAME declare that the target provides the LIBNAME interface - -Wc,FLAG - -Xcompiler FLAG pass linker-specific FLAG directly to the compiler - -Wl,FLAG - -Xlinker FLAG pass linker-specific FLAG directly to the linker - -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. - -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -is created, otherwise an executable program is created." - ;; - - uninstall) - $ECHO \ -"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - - *) - func_fatal_help "invalid operation mode \`$opt_mode'" - ;; - esac - - echo - $ECHO "Try \`$progname --help' for more information about other modes." -} - -# Now that we've collected a possible --mode arg, show help if necessary -if $opt_help; then - if test "$opt_help" = :; then - func_mode_help - else - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - func_mode_help - done - } | sed -n '1p; 2,$s/^Usage:/ or: /p' - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - echo - func_mode_help - done - } | - sed '1d - /^When reporting/,/^Report/{ - H - d - } - $x - /information about other modes/d - /more detailed .*MODE/d - s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' - fi - exit $? -fi - - -# func_mode_execute arg... -func_mode_execute () -{ - $opt_debug - # The first argument is the command name. - cmd="$nonopt" - test -z "$cmd" && \ - func_fatal_help "you must specify a COMMAND" - - # Handle -dlopen flags immediately. - for file in $opt_dlopen; do - test -f "$file" \ - || func_fatal_help "\`$file' is not a file" - - dir= - case $file in - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$lib' is not a valid libtool archive" - - # Read the libtool library. - dlname= - library_names= - func_source "$file" - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && \ - func_warning "\`$file' was not linked with \`-export-dynamic'" - continue - fi - - func_dirname "$file" "" "." - dir="$func_dirname_result" - - if test -f "$dir/$objdir/$dlname"; then - func_append dir "/$objdir" - else - if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" - fi - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - func_dirname "$file" "" "." - dir="$func_dirname_result" - ;; - - *) - func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic="$magic" - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -* | *.la | *.lo ) ;; - *) - # Do a test to see if this is really a libtool program. - if func_ltwrapper_script_p "$file"; then - func_source "$file" - # Transform arg to wrapped name. - file="$progdir/$program" - elif func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - func_source "$func_ltwrapper_scriptname_result" - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - func_append_quoted args "$file" - done - - if test "X$opt_dry_run" = Xfalse; then - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES - do - eval "if test \"\${save_$lt_var+set}\" = set; then - $lt_var=\$save_$lt_var; export $lt_var - else - $lt_unset $lt_var - fi" - done - - # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - echo "export $shlibpath_var" - fi - $ECHO "$cmd$args" - exit $EXIT_SUCCESS - fi -} - -test "$opt_mode" = execute && func_mode_execute ${1+"$@"} - - -# func_mode_finish arg... -func_mode_finish () -{ - $opt_debug - libs= - libdirs= - admincmds= - - for opt in "$nonopt" ${1+"$@"} - do - if test -d "$opt"; then - func_append libdirs " $opt" - - elif test -f "$opt"; then - if func_lalib_unsafe_p "$opt"; then - func_append libs " $opt" - else - func_warning "\`$opt' is not a valid libtool archive" - fi - - else - func_fatal_error "invalid argument \`$opt'" - fi - done - - if test -n "$libs"; then - if test -n "$lt_sysroot"; then - sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` - sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" - else - sysroot_cmd= - fi - - # Remove sysroot references - if $opt_dry_run; then - for lib in $libs; do - echo "removing references to $lt_sysroot and \`=' prefixes from $lib" - done - else - tmpdir=`func_mktempdir` - for lib in $libs; do - sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ - > $tmpdir/tmp-la - mv -f $tmpdir/tmp-la $lib - done - ${RM}r "$tmpdir" - fi - fi - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - func_execute_cmds "$finish_cmds" 'admincmds="$admincmds -'"$cmd"'"' - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $opt_dry_run || eval "$cmds" || func_append admincmds " - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - $opt_silent && exit $EXIT_SUCCESS - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - echo "----------------------------------------------------------------------" - echo "Libraries have been installed in:" - for libdir in $libdirs; do - $ECHO " $libdir" - done - echo - echo "If you ever happen to want to link against installed libraries" - echo "in a given directory, LIBDIR, you must either use libtool, and" - echo "specify the full pathname of the library, or use the \`-LLIBDIR'" - echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the \`$shlibpath_var' environment variable" - echo " during execution" - fi - if test -n "$runpath_var"; then - echo " - add LIBDIR to the \`$runpath_var' environment variable" - echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - $ECHO " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $ECHO " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - echo - - echo "See any operating system documentation about shared libraries for" - case $host in - solaris2.[6789]|solaris2.1[0-9]) - echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" - echo "pages." - ;; - *) - echo "more information, such as the ld(1) and ld.so(8) manual pages." - ;; - esac - echo "----------------------------------------------------------------------" - fi - exit $EXIT_SUCCESS -} - -test "$opt_mode" = finish && func_mode_finish ${1+"$@"} - - -# func_mode_install arg... -func_mode_install () -{ - $opt_debug - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - case $nonopt in *shtool*) :;; *) false;; esac; then - # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " - arg=$1 - shift - else - install_prog= - arg=$nonopt - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" - install_shared_prog=$install_prog - case " $install_prog " in - *[\\\ /]cp\ *) install_cp=: ;; - *) install_cp=false ;; - esac - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - no_mode=: - for arg - do - arg2= - if test -n "$dest"; then - func_append files " $dest" - dest=$arg - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) - if $install_cp; then :; else - prev=$arg - fi - ;; - -g | -m | -o) - prev=$arg - ;; - -s) - stripme=" -s" - continue - ;; - -*) - ;; - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - if test "x$prev" = x-m && test -n "$install_override_mode"; then - arg2=$install_override_mode - no_mode=false - fi - prev= - else - dest=$arg - continue - fi - ;; - esac - - # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" - if test -n "$arg2"; then - func_quote_for_eval "$arg2" - fi - func_append install_shared_prog " $func_quote_for_eval_result" - done - - test -z "$install_prog" && \ - func_fatal_help "you must specify an install program" - - test -n "$prev" && \ - func_fatal_help "the \`$prev' option requires an argument" - - if test -n "$install_override_mode" && $no_mode; then - if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" - fi - fi - - if test -z "$files"; then - if test -z "$dest"; then - func_fatal_help "no file or destination specified" - else - func_fatal_help "you must specify a destination" - fi - fi - - # Strip any trailing slash from the destination. - func_stripname '' '/' "$dest" - dest=$func_stripname_result - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - func_dirname_and_basename "$dest" "" "." - destdir="$func_dirname_result" - destname="$func_basename_result" - - # Not a directory, so check to see that there is only one file specified. - set dummy $files; shift - test "$#" -gt 1 && \ - func_fatal_help "\`$dest' is not a directory" - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - func_fatal_help "\`$destdir' must be an absolute directory name" - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - func_append staticlibs " $file" - ;; - - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$file' is not a valid libtool archive" - - library_names= - old_library= - relink_command= - func_source "$file" - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) func_append current_libdirs " $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) func_append future_libdirs " $libdir" ;; - esac - fi - - func_dirname "$file" "/" "" - dir="$func_dirname_result" - func_append dir "$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` - else - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` - fi - - func_warning "relinking \`$file'" - func_show_eval "$relink_command" \ - 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' - fi - - # See the names of the shared library. - set dummy $library_names; shift - if test -n "$1"; then - realname="$1" - shift - - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T - - # Install the shared library and build the symlinks. - func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ - 'exit $?' - tstripme="$stripme" - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - case $realname in - *.dll.a) - tstripme="" - ;; - esac - ;; - esac - if test -n "$tstripme" && test -n "$striplib"; then - func_show_eval "$striplib $destdir/$realname" 'exit $?' - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - # Try `ln -sf' first, because the `ln' binary might depend on - # the symlink we replace! Solaris /bin/ln does not understand -f, - # so we also need to try rm && ln -s. - for linkname - do - test "$linkname" != "$realname" \ - && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - func_execute_cmds "$postinstall_cmds" 'exit $?' - fi - - # Install the pseudo-library for information purposes. - func_basename "$file" - name="$func_basename_result" - instname="$dir/$name"i - func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - - # Maybe install the static library, too. - test -n "$old_library" && func_append staticlibs " $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - func_lo2o "$destfile" - staticdest=$func_lo2o_result - ;; - *.$objext) - staticdest="$destfile" - destfile= - ;; - *) - func_fatal_help "cannot copy a libtool object to \`$destfile'" - ;; - esac - - # Install the libtool object if requested. - test -n "$destfile" && \ - func_show_eval "$install_prog $file $destfile" 'exit $?' - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - func_lo2o "$file" - staticobj=$func_lo2o_result - func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' - fi - exit $EXIT_SUCCESS - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" - fi - - # If the file is missing, and there is a .exe on the end, strip it - # because it is most likely a libtool script we actually want to - # install - stripped_ext="" - case $file in - *.exe) - if test ! -f "$file"; then - func_stripname '' '.exe' "$file" - file=$func_stripname_result - stripped_ext=".exe" - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin* | *mingw*) - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - wrapper=$func_ltwrapper_scriptname_result - else - func_stripname '' '.exe' "$file" - wrapper=$func_stripname_result - fi - ;; - *) - wrapper=$file - ;; - esac - if func_ltwrapper_script_p "$wrapper"; then - notinst_deplibs= - relink_command= - - func_source "$wrapper" - - # Check the variables that should have been set. - test -z "$generated_by_libtool_version" && \ - func_fatal_error "invalid libtool wrapper script \`$wrapper'" - - finalize=yes - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - func_source "$lib" - fi - libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - func_warning "\`$lib' has not been installed in \`$libdir'" - finalize=no - fi - done - - relink_command= - func_source "$wrapper" - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - $opt_dry_run || { - if test "$finalize" = yes; then - tmpdir=`func_mktempdir` - func_basename "$file$stripped_ext" - file="$func_basename_result" - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` - - $opt_silent || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" - } - if eval "$relink_command"; then : - else - func_error "error: relink \`$file' with the above command before installing it" - $opt_dry_run || ${RM}r "$tmpdir" - continue - fi - file="$outputname" - else - func_warning "cannot relink \`$file'" - fi - } - else - # Install the binary that we compiled earlier. - file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyway - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - func_stripname '' '.exe' "$destfile" - destfile=$func_stripname_result - ;; - esac - ;; - esac - func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' - $opt_dry_run || if test -n "$outputname"; then - ${RM}r "$tmpdir" - fi - ;; - esac - done - - for file in $staticlibs; do - func_basename "$file" - name="$func_basename_result" - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 - tool_oldlib=$func_to_tool_file_result - - func_show_eval "$install_prog \$file \$oldlib" 'exit $?' - - if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $tool_oldlib" 'exit $?' - fi - - # Do each command in the postinstall commands. - func_execute_cmds "$old_postinstall_cmds" 'exit $?' - done - - test -n "$future_libdirs" && \ - func_warning "remember to run \`$progname --finish$future_libdirs'" - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' - else - exit $EXIT_SUCCESS - fi -} - -test "$opt_mode" = install && func_mode_install ${1+"$@"} - - -# func_generate_dlsyms outputname originator pic_p -# Extract symbols from dlprefiles and create ${outputname}S.o with -# a dlpreopen symbol table. -func_generate_dlsyms () -{ - $opt_debug - my_outputname="$1" - my_originator="$2" - my_pic_p="${3-no}" - my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` - my_dlsyms= - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - my_dlsyms="${my_outputname}S.c" - else - func_error "not configured to extract global symbols from dlpreopened files" - fi - fi - - if test -n "$my_dlsyms"; then - case $my_dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${my_outputname}.nm" - - func_show_eval "$RM $nlist ${nlist}S ${nlist}T" - - # Parse the name list into a source file. - func_verbose "creating $output_objdir/$my_dlsyms" - - $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ -/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) -#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" -#endif - -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; then - func_verbose "generating symbol list for \`$output'" - - $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` - for progfile in $progfiles; do - func_to_tool_file "$progfile" func_convert_file_msys_to_w32 - func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" - $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $opt_dry_run || { - eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - if test -n "$export_symbols_regex"; then - $opt_dry_run || { - eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols="$output_objdir/$outputname.exp" - $opt_dry_run || { - $RM $export_symbols - eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - } - else - $opt_dry_run || { - eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' - eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - } - fi - fi - - for dlprefile in $dlprefiles; do - func_verbose "extracting global C symbols from \`$dlprefile'" - func_basename "$dlprefile" - name="$func_basename_result" - case $host in - *cygwin* | *mingw* | *cegcc* ) - # if an import library, we need to obtain dlname - if func_win32_import_lib_p "$dlprefile"; then - func_tr_sh "$dlprefile" - eval "curr_lafile=\$libfile_$func_tr_sh_result" - dlprefile_dlbasename="" - if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then - # Use subshell, to avoid clobbering current variable values - dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` - if test -n "$dlprefile_dlname" ; then - func_basename "$dlprefile_dlname" - dlprefile_dlbasename="$func_basename_result" - else - # no lafile. user explicitly requested -dlpreopen . - $sharedlib_from_linklib_cmd "$dlprefile" - dlprefile_dlbasename=$sharedlib_from_linklib_result - fi - fi - $opt_dry_run || { - if test -n "$dlprefile_dlbasename" ; then - eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' - else - func_warning "Could not compute DLL name from $name" - eval '$ECHO ": $name " >> "$nlist"' - fi - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | - $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" - } - else # not an import lib - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - fi - ;; - *) - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - ;; - esac - done - - $opt_dry_run || { - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $MV "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if $GREP -v "^: " < "$nlist" | - if sort -k 3 /dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - $GREP -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' - else - echo '/* NONE */' >> "$output_objdir/$my_dlsyms" - fi - - echo >> "$output_objdir/$my_dlsyms" "\ - -/* The mapping between symbol names and symbols. */ -typedef struct { - const char *name; - void *address; -} lt_dlsymlist; -extern LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[]; -LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[] = -{\ - { \"$my_originator\", (void *) 0 }," - - case $need_lib_prefix in - no) - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - *) - eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - esac - echo >> "$output_objdir/$my_dlsyms" "\ - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_${my_prefix}_LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - } # !$opt_dry_run - - pic_flag_for_symtable= - case "$compile_command " in - *" -static "*) ;; - *) - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; - *-*-hpux*) - pic_flag_for_symtable=" $pic_flag" ;; - *) - if test "X$my_pic_p" != Xno; then - pic_flag_for_symtable=" $pic_flag" - fi - ;; - esac - ;; - esac - symtab_cflags= - for arg in $LTCFLAGS; do - case $arg in - -pie | -fpie | -fPIE) ;; - *) func_append symtab_cflags " $arg" ;; - esac - done - - # Now compile the dynamic symbol file. - func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' - - # Clean up the generated files. - func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' - - # Transform the symbol file into the correct name. - symfileobj="$output_objdir/${my_outputname}S.$objext" - case $host in - *cygwin* | *mingw* | *cegcc* ) - if test -f "$output_objdir/$my_outputname.def"; then - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - else - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - fi - ;; - *) - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - ;; - esac - ;; - *) - func_fatal_error "unknown suffix for \`$my_dlsyms'" - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` - fi -} - -# func_win32_libid arg -# return the library type of file 'arg' -# -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -# Despite the name, also deal with 64 bit binaries. -func_win32_libid () -{ - $opt_debug - win32_libid_type="unknown" - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then - func_to_tool_file "$1" func_convert_file_msys_to_w32 - win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' - 1,100{ - / I /{ - s,.*,import, - p - q - } - }'` - case $win32_nmres in - import*) win32_libid_type="x86 archive import";; - *) win32_libid_type="x86 archive static";; - esac - fi - ;; - *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type="x86 DLL" - ;; - esac - ;; - esac - $ECHO "$win32_libid_type" -} - -# func_cygming_dll_for_implib ARG -# -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib () -{ - $opt_debug - sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` -} - -# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs -# -# The is the core of a fallback implementation of a -# platform-specific function to extract the name of the -# DLL associated with the specified import library LIBNAME. -# -# SECTION_NAME is either .idata$6 or .idata$7, depending -# on the platform and compiler that created the implib. -# -# Echos the name of the DLL associated with the -# specified import library. -func_cygming_dll_for_implib_fallback_core () -{ - $opt_debug - match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` - $OBJDUMP -s --section "$1" "$2" 2>/dev/null | - $SED '/^Contents of section '"$match_literal"':/{ - # Place marker at beginning of archive member dllname section - s/.*/====MARK====/ - p - d - } - # These lines can sometimes be longer than 43 characters, but - # are always uninteresting - /:[ ]*file format pe[i]\{,1\}-/d - /^In archive [^:]*:/d - # Ensure marker is printed - /^====MARK====/p - # Remove all lines with less than 43 characters - /^.\{43\}/!d - # From remaining lines, remove first 43 characters - s/^.\{43\}//' | - $SED -n ' - # Join marker and all lines until next marker into a single line - /^====MARK====/ b para - H - $ b para - b - :para - x - s/\n//g - # Remove the marker - s/^====MARK====// - # Remove trailing dots and whitespace - s/[\. \t]*$// - # Print - /./p' | - # we now have a list, one entry per line, of the stringified - # contents of the appropriate section of all members of the - # archive which possess that section. Heuristic: eliminate - # all those which have a first or second character that is - # a '.' (that is, objdump's representation of an unprintable - # character.) This should work for all archives with less than - # 0x302f exports -- but will fail for DLLs whose name actually - # begins with a literal '.' or a single character followed by - # a '.'. - # - # Of those that remain, print the first one. - $SED -e '/^\./d;/^.\./d;q' -} - -# func_cygming_gnu_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is a GNU/binutils-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_gnu_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` - test -n "$func_cygming_gnu_implib_tmp" -} - -# func_cygming_ms_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is an MS-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_ms_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` - test -n "$func_cygming_ms_implib_tmp" -} - -# func_cygming_dll_for_implib_fallback ARG -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# -# This fallback implementation is for use when $DLLTOOL -# does not support the --identify-strict option. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib_fallback () -{ - $opt_debug - if func_cygming_gnu_implib_p "$1" ; then - # binutils import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` - elif func_cygming_ms_implib_p "$1" ; then - # ms-generated import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` - else - # unknown - sharedlib_from_linklib_result="" - fi -} - - -# func_extract_an_archive dir oldlib -func_extract_an_archive () -{ - $opt_debug - f_ex_an_ar_dir="$1"; shift - f_ex_an_ar_oldlib="$1" - if test "$lock_old_archive_extraction" = yes; then - lockfile=$f_ex_an_ar_oldlib.lock - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - fi - func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ - 'stat=$?; rm -f "$lockfile"; exit $stat' - if test "$lock_old_archive_extraction" = yes; then - $opt_dry_run || rm -f "$lockfile" - fi - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then - : - else - func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" - fi -} - - -# func_extract_archives gentop oldlib ... -func_extract_archives () -{ - $opt_debug - my_gentop="$1"; shift - my_oldlibs=${1+"$@"} - my_oldobjs="" - my_xlib="" - my_xabs="" - my_xdir="" - - for my_xlib in $my_oldlibs; do - # Extract the objects. - case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; - *) my_xabs=`pwd`"/$my_xlib" ;; - esac - func_basename "$my_xlib" - my_xlib="$func_basename_result" - my_xlib_u=$my_xlib - while :; do - case " $extracted_archives " in - *" $my_xlib_u "*) - func_arith $extracted_serial + 1 - extracted_serial=$func_arith_result - my_xlib_u=lt$extracted_serial-$my_xlib ;; - *) break ;; - esac - done - extracted_archives="$extracted_archives $my_xlib_u" - my_xdir="$my_gentop/$my_xlib_u" - - func_mkdir_p "$my_xdir" - - case $host in - *-darwin*) - func_verbose "Extracting $my_xabs" - # Do not bother doing anything if just a dry run - $opt_dry_run || { - darwin_orig_dir=`pwd` - cd $my_xdir || exit $? - darwin_archive=$my_xabs - darwin_curdir=`pwd` - darwin_base_archive=`basename "$darwin_archive"` - darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` - if test -n "$darwin_arches"; then - darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` - darwin_arch= - func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches ; do - func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" - $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" - cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" - func_extract_an_archive "`pwd`" "${darwin_base_archive}" - cd "$darwin_curdir" - $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" - done # $darwin_arches - ## Okay now we've a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` - $LIPO -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - $RM -rf unfat-$$ - cd "$darwin_orig_dir" - else - cd $darwin_orig_dir - func_extract_an_archive "$my_xdir" "$my_xabs" - fi # $darwin_arches - } # !$opt_dry_run - ;; - *) - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` - done - - func_extract_archives_result="$my_oldobjs" -} - - -# func_emit_wrapper [arg=no] -# -# Emit a libtool wrapper script on stdout. -# Don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variables -# set therein. -# -# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is -# the $objdir directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () -{ - func_emit_wrapper_arg1=${1-no} - - $ECHO "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='$sed_quote_subst' - -# Be Bourne compatible -if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variables: - generated_by_libtool_version='$macro_version' - notinst_deplibs='$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$ECHO are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - file=\"\$0\"" - - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` - $ECHO "\ - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - ECHO=\"$qECHO\" - fi - -# Very basic option parsing. These options are (a) specific to -# the libtool wrapper, (b) are identical between the wrapper -# /script/ and the wrapper /executable/ which is used only on -# windows platforms, and (c) all begin with the string "--lt-" -# (application programs are unlikely to have options which match -# this pattern). -# -# There are only two supported options: --lt-debug and -# --lt-dump-script. There is, deliberately, no --lt-help. -# -# The first argument to this parsing function should be the -# script's $0 value, followed by "$@". -lt_option_debug= -func_parse_lt_options () -{ - lt_script_arg0=\$0 - shift - for lt_opt - do - case \"\$lt_opt\" in - --lt-debug) lt_option_debug=1 ;; - --lt-dump-script) - lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` - test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. - lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` - cat \"\$lt_dump_D/\$lt_dump_F\" - exit 0 - ;; - --lt-*) - \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 - exit 1 - ;; - esac - done - - # Print the debug banner immediately: - if test -n \"\$lt_option_debug\"; then - echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 - fi -} - -# Used when --lt-debug. Prints its arguments to stdout -# (redirection is the responsibility of the caller) -func_lt_dump_args () -{ - lt_dump_args_N=1; - for lt_arg - do - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" - lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` - done -} - -# Core function for launching the target application -func_exec_program_core () -{ -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $ECHO "\ - \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 - exit 1 -} - -# A function to encapsulate launching the target application -# Strips options in the --lt-* namespace from \$@ and -# launches target application with the remaining arguments. -func_exec_program () -{ - case \" \$* \" in - *\\ --lt-*) - for lt_wr_arg - do - case \$lt_wr_arg in - --lt-*) ;; - *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; - esac - shift - done ;; - esac - func_exec_program_core \${1+\"\$@\"} -} - - # Parse options - func_parse_lt_options \"\$0\" \${1+\"\$@\"} - - # Find the directory that this script lives in. - thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` - done - - # Usually 'no', except on cygwin/mingw when embedded into - # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 - if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then - # special case for '.' - if test \"\$thisdir\" = \".\"; then - thisdir=\`pwd\` - fi - # remove .libs from thisdir - case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; - $objdir ) thisdir=. ;; - esac - fi - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test "$fast_install" = yes; then - $ECHO "\ - program=lt-'$outputname'$exeext - progdir=\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ - test \"X\$file\" != \"X\$progdir/\$program\"; }; then - - file=\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $MKDIR \"\$progdir\" - else - $RM \"\$progdir/\$file\" - fi" - - $ECHO "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - $ECHO \"\$relink_command_output\" >&2 - $RM \"\$progdir/\$file\" - exit 1 - fi - fi - - $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $RM \"\$progdir/\$program\"; - $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $RM \"\$progdir/\$file\" - fi" - else - $ECHO "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $ECHO "\ - - if test -f \"\$progdir/\$program\"; then" - - # fixup the dll searchpath if we need to. - # - # Fix the DLL searchpath if we need to. Do this before prepending - # to shlibpath, because on Windows, both are PATH and uninstalled - # libraries must come first. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $ECHO "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` - - export $shlibpath_var -" - fi - - $ECHO "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. - func_exec_program \${1+\"\$@\"} - fi - else - # The program doesn't exist. - \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 - \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 - \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 - fi -fi\ -" -} - - -# func_emit_cwrapperexe_src -# emit the source code for a wrapper executable on stdout -# Must ONLY be called from within func_mode_link because -# it depends on a number of variable set therein. -func_emit_cwrapperexe_src () -{ - cat < -#include -#ifdef _MSC_VER -# include -# include -# include -#else -# include -# include -# ifdef __CYGWIN__ -# include -# endif -#endif -#include -#include -#include -#include -#include -#include -#include -#include - -/* declarations of non-ANSI functions */ -#if defined(__MINGW32__) -# ifdef __STRICT_ANSI__ -int _putenv (const char *); -# endif -#elif defined(__CYGWIN__) -# ifdef __STRICT_ANSI__ -char *realpath (const char *, char *); -int putenv (char *); -int setenv (const char *, const char *, int); -# endif -/* #elif defined (other platforms) ... */ -#endif - -/* portability defines, excluding path handling macros */ -#if defined(_MSC_VER) -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -# define S_IXUSR _S_IEXEC -# ifndef _INTPTR_T_DEFINED -# define _INTPTR_T_DEFINED -# define intptr_t int -# endif -#elif defined(__MINGW32__) -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -#elif defined(__CYGWIN__) -# define HAVE_SETENV -# define FOPEN_WB "wb" -/* #elif defined (other platforms) ... */ -#endif - -#if defined(PATH_MAX) -# define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef S_IXOTH -# define S_IXOTH 0 -#endif -#ifndef S_IXGRP -# define S_IXGRP 0 -#endif - -/* path handling portability macros */ -#ifndef DIR_SEPARATOR -# define DIR_SEPARATOR '/' -# define PATH_SEPARATOR ':' -#endif - -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) -# define HAVE_DOS_BASED_FILE_SYSTEM -# define FOPEN_WB "wb" -# ifndef DIR_SEPARATOR_2 -# define DIR_SEPARATOR_2 '\\' -# endif -# ifndef PATH_SEPARATOR_2 -# define PATH_SEPARATOR_2 ';' -# endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#ifndef PATH_SEPARATOR_2 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -#else /* PATH_SEPARATOR_2 */ -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -#endif /* PATH_SEPARATOR_2 */ - -#ifndef FOPEN_WB -# define FOPEN_WB "w" -#endif -#ifndef _O_BINARY -# define _O_BINARY 0 -#endif - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ -} while (0) - -#if defined(LT_DEBUGWRAPPER) -static int lt_debug = 1; -#else -static int lt_debug = 0; -#endif - -const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ - -void *xmalloc (size_t num); -char *xstrdup (const char *string); -const char *base_name (const char *name); -char *find_executable (const char *wrapper); -char *chase_symlinks (const char *pathspec); -int make_executable (const char *path); -int check_executable (const char *path); -char *strendzap (char *str, const char *pat); -void lt_debugprintf (const char *file, int line, const char *fmt, ...); -void lt_fatal (const char *file, int line, const char *message, ...); -static const char *nonnull (const char *s); -static const char *nonempty (const char *s); -void lt_setenv (const char *name, const char *value); -char *lt_extend_str (const char *orig_value, const char *add, int to_end); -void lt_update_exe_path (const char *name, const char *value); -void lt_update_lib_path (const char *name, const char *value); -char **prepare_spawn (char **argv); -void lt_dump_script (FILE *f); -EOF - - cat <= 0) - && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) - return 1; - else - return 0; -} - -int -make_executable (const char *path) -{ - int rval = 0; - struct stat st; - - lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", - nonempty (path)); - if ((!path) || (!*path)) - return 0; - - if (stat (path, &st) >= 0) - { - rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); - } - return rval; -} - -/* Searches for the full path of the wrapper. Returns - newly allocated full path name if found, NULL otherwise - Does not chase symlinks, even on platforms that support them. -*/ -char * -find_executable (const char *wrapper) -{ - int has_slash = 0; - const char *p; - const char *p_next; - /* static buffer for getcwd */ - char tmp[LT_PATHMAX + 1]; - int tmp_len; - char *concat_name; - - lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", - nonempty (wrapper)); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; - - /* Absolute path? */ -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - else - { -#endif - if (IS_DIR_SEPARATOR (wrapper[0])) - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - } -#endif - - for (p = wrapper; *p; p++) - if (*p == '/') - { - has_slash = 1; - break; - } - if (!has_slash) - { - /* no slashes; search PATH */ - const char *path = getenv ("PATH"); - if (path != NULL) - { - for (p = path; *p; p = p_next) - { - const char *q; - size_t p_len; - for (q = p; *q; q++) - if (IS_PATH_SEPARATOR (*q)) - break; - p_len = q - p; - p_next = (*q == '\0' ? q : q + 1); - if (p_len == 0) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = - XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - } - else - { - concat_name = - XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, p, p_len); - concat_name[p_len] = '/'; - strcpy (concat_name + p_len + 1, wrapper); - } - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - } - /* not found in PATH; assume curdir */ - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - return NULL; -} - -char * -chase_symlinks (const char *pathspec) -{ -#ifndef S_ISLNK - return xstrdup (pathspec); -#else - char buf[LT_PATHMAX]; - struct stat s; - char *tmp_pathspec = xstrdup (pathspec); - char *p; - int has_symlinks = 0; - while (strlen (tmp_pathspec) && !has_symlinks) - { - lt_debugprintf (__FILE__, __LINE__, - "checking path component for symlinks: %s\n", - tmp_pathspec); - if (lstat (tmp_pathspec, &s) == 0) - { - if (S_ISLNK (s.st_mode) != 0) - { - has_symlinks = 1; - break; - } - - /* search backwards for last DIR_SEPARATOR */ - p = tmp_pathspec + strlen (tmp_pathspec) - 1; - while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - p--; - if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - { - /* no more DIR_SEPARATORS left */ - break; - } - *p = '\0'; - } - else - { - lt_fatal (__FILE__, __LINE__, - "error accessing file \"%s\": %s", - tmp_pathspec, nonnull (strerror (errno))); - } - } - XFREE (tmp_pathspec); - - if (!has_symlinks) - { - return xstrdup (pathspec); - } - - tmp_pathspec = realpath (pathspec, buf); - if (tmp_pathspec == 0) - { - lt_fatal (__FILE__, __LINE__, - "could not follow symlinks for %s", pathspec); - } - return xstrdup (tmp_pathspec); -#endif -} - -char * -strendzap (char *str, const char *pat) -{ - size_t len, patlen; - - assert (str != NULL); - assert (pat != NULL); - - len = strlen (str); - patlen = strlen (pat); - - if (patlen <= len) - { - str += len - patlen; - if (strcmp (str, pat) == 0) - *str = '\0'; - } - return str; -} - -void -lt_debugprintf (const char *file, int line, const char *fmt, ...) -{ - va_list args; - if (lt_debug) - { - (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); - va_start (args, fmt); - (void) vfprintf (stderr, fmt, args); - va_end (args); - } -} - -static void -lt_error_core (int exit_status, const char *file, - int line, const char *mode, - const char *message, va_list ap) -{ - fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *file, int line, const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); - va_end (ap); -} - -static const char * -nonnull (const char *s) -{ - return s ? s : "(null)"; -} - -static const char * -nonempty (const char *s) -{ - return (s && !*s) ? "(empty)" : nonnull (s); -} - -void -lt_setenv (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_setenv) setting '%s' to '%s'\n", - nonnull (name), nonnull (value)); - { -#ifdef HAVE_SETENV - /* always make a copy, for consistency with !HAVE_SETENV */ - char *str = xstrdup (value); - setenv (name, str, 1); -#else - int len = strlen (name) + 1 + strlen (value) + 1; - char *str = XMALLOC (char, len); - sprintf (str, "%s=%s", name, value); - if (putenv (str) != EXIT_SUCCESS) - { - XFREE (str); - } -#endif - } -} - -char * -lt_extend_str (const char *orig_value, const char *add, int to_end) -{ - char *new_value; - if (orig_value && *orig_value) - { - int orig_value_len = strlen (orig_value); - int add_len = strlen (add); - new_value = XMALLOC (char, add_len + orig_value_len + 1); - if (to_end) - { - strcpy (new_value, orig_value); - strcpy (new_value + orig_value_len, add); - } - else - { - strcpy (new_value, add); - strcpy (new_value + add_len, orig_value); - } - } - else - { - new_value = xstrdup (add); - } - return new_value; -} - -void -lt_update_exe_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - /* some systems can't cope with a ':'-terminated path #' */ - int len = strlen (new_value); - while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) - { - new_value[len-1] = '\0'; - } - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -void -lt_update_lib_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -EOF - case $host_os in - mingw*) - cat <<"EOF" - -/* Prepares an argument vector before calling spawn(). - Note that spawn() does not by itself call the command interpreter - (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : - ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&v); - v.dwPlatformId == VER_PLATFORM_WIN32_NT; - }) ? "cmd.exe" : "command.com"). - Instead it simply concatenates the arguments, separated by ' ', and calls - CreateProcess(). We must quote the arguments since Win32 CreateProcess() - interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a - special way: - - Space and tab are interpreted as delimiters. They are not treated as - delimiters if they are surrounded by double quotes: "...". - - Unescaped double quotes are removed from the input. Their only effect is - that within double quotes, space and tab are treated like normal - characters. - - Backslashes not followed by double quotes are not special. - - But 2*n+1 backslashes followed by a double quote become - n backslashes followed by a double quote (n >= 0): - \" -> " - \\\" -> \" - \\\\\" -> \\" - */ -#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -char ** -prepare_spawn (char **argv) -{ - size_t argc; - char **new_argv; - size_t i; - - /* Count number of arguments. */ - for (argc = 0; argv[argc] != NULL; argc++) - ; - - /* Allocate new argument vector. */ - new_argv = XMALLOC (char *, argc + 1); - - /* Put quoted arguments into the new argument vector. */ - for (i = 0; i < argc; i++) - { - const char *string = argv[i]; - - if (string[0] == '\0') - new_argv[i] = xstrdup ("\"\""); - else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) - { - int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); - size_t length; - unsigned int backslashes; - const char *s; - char *quoted_string; - char *p; - - length = 0; - backslashes = 0; - if (quote_around) - length++; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - length += backslashes + 1; - length++; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - length += backslashes + 1; - - quoted_string = XMALLOC (char, length + 1); - - p = quoted_string; - backslashes = 0; - if (quote_around) - *p++ = '"'; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - { - unsigned int j; - for (j = backslashes + 1; j > 0; j--) - *p++ = '\\'; - } - *p++ = c; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - { - unsigned int j; - for (j = backslashes; j > 0; j--) - *p++ = '\\'; - *p++ = '"'; - } - *p = '\0'; - - new_argv[i] = quoted_string; - } - else - new_argv[i] = (char *) string; - } - new_argv[argc] = NULL; - - return new_argv; -} -EOF - ;; - esac - - cat <<"EOF" -void lt_dump_script (FILE* f) -{ -EOF - func_emit_wrapper yes | - $SED -n -e ' -s/^\(.\{79\}\)\(..*\)/\1\ -\2/ -h -s/\([\\"]\)/\\\1/g -s/$/\\n/ -s/\([^\n]*\).*/ fputs ("\1", f);/p -g -D' - cat <<"EOF" -} -EOF -} -# end: func_emit_cwrapperexe_src - -# func_win32_import_lib_p ARG -# True if ARG is an import lib, as indicated by $file_magic_cmd -func_win32_import_lib_p () -{ - $opt_debug - case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in - *import*) : ;; - *) false ;; - esac -} - -# func_mode_link arg... -func_mode_link () -{ - $opt_debug - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - # It is impossible to link a dll without this setting, and - # we shouldn't force the makefile maintainer to figure out - # which system we are compiling for in order to pass an extra - # flag for every libtool invocation. - # allow_undefined=no - - # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll which has undefined symbols, in which case not - # even a static library is built. For now, we need to specify - # -no-undefined on the libtool link line when we can be certain - # that all symbols are satisfied, otherwise we get a static library. - allow_undefined=yes - ;; - *) - allow_undefined=yes - ;; - esac - libtool_args=$nonopt - base_compile="$nonopt $@" - compile_command=$nonopt - finalize_command=$nonopt - - compile_rpath= - finalize_rpath= - compile_shlibpath= - finalize_shlibpath= - convenience= - old_convenience= - deplibs= - old_deplibs= - compiler_flags= - linker_flags= - dllsearchpath= - lib_search_path=`pwd` - inst_prefix_dir= - new_inherited_linker_flags= - - avoid_version=no - bindir= - dlfiles= - dlprefiles= - dlself=no - export_dynamic=no - export_symbols= - export_symbols_regex= - generated= - libobjs= - ltlibs= - module=no - no_install=no - objs= - non_pic_objects= - precious_files_regex= - prefer_static_libs=no - preload=no - prev= - prevarg= - release= - rpath= - xrpath= - perm_rpath= - temp_rpath= - thread_safe=no - vinfo= - vinfo_number=no - weak_libs= - single_module="${wl}-single_module" - func_infer_tag $base_compile - - # We need to know -static, to get the right output filenames. - for arg - do - case $arg in - -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" - build_old_libs=no - break - ;; - -all-static | -static | -static-libtool-libs) - case $arg in - -all-static) - if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - func_warning "complete static linking is impossible in this configuration" - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; - -static-libtool-libs) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - esac - build_libtool_libs=no - build_old_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg="$1" - shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - func_append compile_command " @OUTPUT@" - func_append finalize_command " @OUTPUT@" - ;; - esac - - case $prev in - bindir) - bindir="$arg" - prev= - continue - ;; - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. - func_append compile_command " @SYMFILE@" - func_append finalize_command " @SYMFILE@" - preload=yes - fi - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test "$dlself" = no; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test "$prev" = dlprefiles; then - dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test "$prev" = dlfiles; then - func_append dlfiles " $arg" - else - func_append dlprefiles " $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols="$arg" - test -f "$arg" \ - || func_fatal_error "symbol file \`$arg' does not exist" - prev= - continue - ;; - expsyms_regex) - export_symbols_regex="$arg" - prev= - continue - ;; - framework) - case $host in - *-*-darwin*) - case "$deplibs " in - *" $qarg.ltframework "*) ;; - *) func_append deplibs " $qarg.ltframework" # this is fixed later - ;; - esac - ;; - esac - prev= - continue - ;; - inst_prefix) - inst_prefix_dir="$arg" - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat "$save_arg"` - do -# func_append moreargs " $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "\`$arg' is not a valid libtool object" - fi - fi - done - else - func_fatal_error "link input file \`$arg' does not exist" - fi - arg=$save_arg - prev= - continue - ;; - precious_regex) - precious_files_regex="$arg" - prev= - continue - ;; - release) - release="-$arg" - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; - *) func_append rpath " $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) func_append xrpath " $arg" ;; - esac - fi - prev= - continue - ;; - shrext) - shrext_cmds="$arg" - prev= - continue - ;; - weak) - func_append weak_libs " $arg" - prev= - continue - ;; - xcclinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xcompiler) - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xlinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $wl$qarg" - prev= - func_append compile_command " $wl$qarg" - func_append finalize_command " $wl$qarg" - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi # test -n "$prev" - - prevarg="$arg" - - case $arg in - -all-static) - if test -n "$link_static_flag"; then - # See comment for -static flag below, for more details. - func_append compile_command " $link_static_flag" - func_append finalize_command " $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - func_fatal_error "\`-allow-undefined' must not be used because it is the default" - ;; - - -avoid-version) - avoid_version=yes - continue - ;; - - -bindir) - prev=bindir - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - export_dynamic=yes - continue - ;; - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - func_fatal_error "more than one -exported-symbols argument is not allowed" - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms - else - prev=expsyms_regex - fi - continue - ;; - - -framework) - prev=framework - continue - ;; - - -inst-prefix-dir) - prev=inst_prefix - continue - ;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) - func_append compile_command " $arg" - func_append finalize_command " $arg" - ;; - esac - continue - ;; - - -L*) - func_stripname "-L" '' "$arg" - if test -z "$func_stripname_result"; then - if test "$#" -gt 0; then - func_fatal_error "require no space between \`-L' and \`$1'" - else - func_fatal_error "need path for \`-L' option" - fi - fi - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - test -z "$absdir" && \ - func_fatal_error "cannot determine absolute directory name of \`$dir'" - dir="$absdir" - ;; - esac - case "$deplibs " in - *" -L$dir "* | *" $arg "*) - # Will only happen for absolute or sysroot arguments - ;; - *) - # Preserve sysroot, but never include relative directories - case $dir in - [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; - *) func_append deplibs " -L$dir" ;; - esac - func_append lib_search_path " $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - ::) dllsearchpath=$dir;; - *) func_append dllsearchpath ":$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - func_append deplibs " System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - test "X$arg" = "X-lc" && continue - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue - ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - func_append deplibs " $arg" - continue - ;; - - -module) - module=yes - continue - ;; - - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - # Darwin uses the -arch flag to determine output architecture. - -model|-arch|-isysroot|--sysroot) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - prev=xcompiler - continue - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ - |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case "$new_inherited_linker_flags " in - *" $arg "*) ;; - * ) func_append new_inherited_linker_flags " $arg" ;; - esac - continue - ;; - - -multi_module) - single_module="${wl}-multi_module" - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) - # The PATH hackery in wrapper scripts is required on Windows - # and Darwin in order for the loader to find any dlls it needs. - func_warning "\`-no-install' is ignored for $host" - func_warning "assuming \`-no-fast-install' instead" - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -o) prev=output ;; - - -precious-files-regex) - prev=precious_regex - continue - ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - func_stripname '-R' '' "$arg" - dir=$func_stripname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - =*) - func_stripname '=' '' "$dir" - dir=$lt_sysroot$func_stripname_result - ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - continue - ;; - - -shared) - # The effects of -shared are defined in a previous loop. - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -static | -static-libtool-libs) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that - # didn't have a PIC flag, but the assumption that the effects - # would be equivalent was wrong. It would break on at least - # Digital Unix and AIX. - continue - ;; - - -thread-safe) - thread_safe=yes - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - - -weak) - prev=weak - continue - ;; - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Wl,*) - func_stripname '-Wl,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # -msg_* for osf cc - -msg_*) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - - # Flags to be passed through unchanged, with rationale: - # -64, -mips[0-9] enable 64-bit mode for the SGI compiler - # -r[0-9][0-9]* specify processor for the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler - # +DA*, +DD* enable 64-bit mode for the HP compiler - # -q* compiler args for the IBM compiler - # -m*, -t[45]*, -txscale* architecture-specific flags for GCC - # -F/path path to uninstalled frameworks, gcc on darwin - # -p, -pg, --coverage, -fprofile-* profiling flags for GCC - # @file GCC response files - # -tp=* Portland pgcc target processor selection - # --sysroot=* for sysroot support - # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-flto*|-fwhopr*|-fuse-linker-plugin) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - func_append compile_command " $arg" - func_append finalize_command " $arg" - func_append compiler_flags " $arg" - continue - ;; - - # Some other compiler flag. - -* | +*) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - - *.$objext) - # A standard object. - func_append objs " $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "\`$arg' is not a valid libtool object" - fi - fi - ;; - - *.$libext) - # An archive. - func_append deplibs " $arg" - func_append old_deplibs " $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - func_resolve_sysroot "$arg" - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. - func_append dlfiles " $func_resolve_sysroot_result" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. - func_append dlprefiles " $func_resolve_sysroot_result" - prev= - else - func_append deplibs " $func_resolve_sysroot_result" - fi - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - done # argument parsing loop - - test -n "$prev" && \ - func_fatal_help "the \`$prevarg' option requires an argument" - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - func_basename "$output" - outputname="$func_basename_result" - libobjs_save="$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - func_dirname "$output" "/" "" - output_objdir="$func_dirname_result$objdir" - func_to_tool_file "$output_objdir/" - tool_output_objdir=$func_to_tool_file_result - # Create the object directory. - func_mkdir_p "$output_objdir" - - # Determine the type of output - case $output in - "") - func_fatal_help "you must specify an output file" - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if $opt_preserve_dup_deps ; then - case "$libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append libs " $deplib" - done - - if test "$linkmode" = lib; then - libs="$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= - if $opt_duplicate_compiler_generated_deps; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; - esac - func_append pre_post_deps " $pre_post_dep" - done - fi - pre_post_deps= - fi - - deplibs= - newdependency_libs= - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries - - case $linkmode in - lib) - passes="conv dlpreopen link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=no - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - - for pass in $passes; do - # The preopen pass in lib mode reverses $deplibs; put it back here - # so that -L comes before libs that need it for instance... - if test "$linkmode,$pass" = "lib,link"; then - ## FIXME: Find the place where the list is rebuilt in the wrong - ## order, and fix it there properly - tmp_deplibs= - for deplib in $deplibs; do - tmp_deplibs="$deplib $tmp_deplibs" - done - deplibs="$tmp_deplibs" - fi - - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" - deplibs= - fi - if test "$linkmode" = prog; then - case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; - esac - fi - if test "$linkmode,$pass" = "lib,dlpreopen"; then - # Collect and forward deplibs of preopened libtool libs - for lib in $dlprefiles; do - # Ignore non-libtool-libs - dependency_libs= - func_resolve_sysroot "$lib" - case $lib in - *.la) func_source "$func_resolve_sysroot_result" ;; - esac - - # Collect preopened libtool deplibs, except any this library - # has declared as weak libs - for deplib in $dependency_libs; do - func_basename "$deplib" - deplib_base=$func_basename_result - case " $weak_libs " in - *" $deplib_base "*) ;; - *) func_append deplibs " $deplib" ;; - esac - done - done - libs="$dlprefiles" - fi - if test "$pass" = dlopen; then - # Collect dlpreopened libraries - save_deplibs="$deplibs" - deplibs= - fi - - for deplib in $libs; do - lib= - found=no - case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ - |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append compiler_flags " $deplib" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - func_warning "\`-l' is ignored for archives/objects" - continue - fi - func_stripname '-l' '' "$deplib" - name=$func_stripname_result - if test "$linkmode" = lib; then - searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" - else - searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" - fi - for searchdir in $searchdirs; do - for search_ext in .la $std_shrext .so .a; do - # Search the libtool library - lib="$searchdir/lib${name}${search_ext}" - if test -f "$lib"; then - if test "$search_ext" = ".la"; then - found=yes - else - found=no - fi - break 2 - fi - done - done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # deplib is a libtool library - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, - # We need to do some special things here, and not later. - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $deplib "*) - if func_lalib_p "$lib"; then - library_names= - old_library= - func_source "$lib" - for l in $old_library $library_names; do - ll="$l" - done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no - func_dirname "$lib" "" "." - ladir="$func_dirname_result" - lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - fi - ;; # -l - *.ltframework) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - prog) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - *) - func_warning "\`-L' is ignored for archives/objects" - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test "$pass" = link; then - func_stripname '-R' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) - func_resolve_sysroot "$deplib" - lib=$func_resolve_sysroot_result - ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - # Linking convenience modules into shared libraries is allowed, - # but linking other static libraries is non-portable. - case " $dlpreconveniencelibs " in - *" $deplib "*) ;; - *) - valid_a_lib=no - case $deplibs_check_method in - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=yes - fi - ;; - pass_all) - valid_a_lib=yes - ;; - esac - if test "$valid_a_lib" != yes; then - echo - $ECHO "*** Warning: Trying to link with static lib archive $deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because the file extensions .$libext of this argument makes me believe" - echo "*** that it is just a static archive that I should not use here." - else - echo - $ECHO "*** Warning: Linking the shared library $output against the" - $ECHO "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi - ;; - esac - continue - ;; - prog) - if test "$pass" != link; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - func_append newdlprefiles " $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append newdlfiles " $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=yes - continue - ;; - esac # case $deplib - - if test "$found" = yes || test -f "$lib"; then : - else - func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" - fi - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$lib" \ - || func_fatal_error "\`$lib' is not a valid libtool archive" - - func_dirname "$lib" "" "." - ladir="$func_dirname_result" - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - inherited_linker_flags= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - avoidtemprpath= - - - # Read the .la file - func_source "$lib" - - # Convert "-framework foo" to "foo.ltframework" - if test -n "$inherited_linker_flags"; then - tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` - for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do - case " $new_inherited_linker_flags " in - *" $tmp_inherited_linker_flag "*) ;; - *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; - esac - done - fi - dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && func_append dlfiles " $dlopen" - test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" - fi - - if test "$pass" = conv; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi - # It is a libtool convenience library, so add in its objects. - func_append convenience " $ladir/$objdir/$old_library" - func_append old_convenience " $ladir/$objdir/$old_library" - elif test "$linkmode" != prog && test "$linkmode" != lib; then - func_fatal_error "\`$lib' is not a convenience library" - fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - if test -n "$old_library" && - { test "$prefer_static_libs" = yes || - test "$prefer_static_libs,$installed" = "built,no"; }; then - linklib=$old_library - else - for l in $old_library $library_names; do - linklib="$l" - done - fi - if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi - - # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - func_fatal_error "cannot -dlopen a convenience library: \`$lib'" - fi - if test -z "$dlname" || - test "$dlopen_support" != yes || - test "$build_libtool_libs" = no; then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. - func_append dlprefiles " $lib $dependency_libs" - else - func_append newdlfiles " $lib" - fi - continue - fi # $pass = dlopen - - # We need an absolute path. - case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then - func_warning "cannot determine absolute directory name of \`$ladir'" - func_warning "passing it literally to the linker, although it might fail" - abs_ladir="$ladir" - fi - ;; - esac - func_basename "$lib" - laname="$func_basename_result" - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then - if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else - dir="$lt_sysroot$libdir" - absdir="$lt_sysroot$libdir" - fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else - if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir="$ladir" - absdir="$abs_ladir" - # Remove this search path later - func_append notinst_path " $abs_ladir" - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - func_append notinst_path " $abs_ladir" - fi - fi # $installed = yes - func_stripname 'lib' '.la' "$laname" - name=$func_stripname_result - - # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir" && test "$linkmode" = prog; then - func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" - fi - case "$host" in - # special handling for platforms with PE-DLLs. - *cygwin* | *mingw* | *cegcc* ) - # Linker will automatically link against shared library if both - # static and shared are present. Therefore, ensure we extract - # symbols from the import library if a shared library is present - # (otherwise, the dlopen module name will be incorrect). We do - # this by putting the import library name into $newdlprefiles. - # We recover the dlopen module name by 'saving' the la file - # name in a special purpose variable, and (later) extracting the - # dlname from the la file. - if test -n "$dlname"; then - func_tr_sh "$dir/$linklib" - eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" - func_append newdlprefiles " $dir/$linklib" - else - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - fi - ;; - * ) - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - func_append newdlprefiles " $dir/$dlname" - else - func_append newdlprefiles " $dir/$linklib" - fi - ;; - esac - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test "$linkmode" = lib; then - deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" # used for prog,scan pass - fi - continue - fi - - - if test "$linkmode" = prog && test "$pass" != link; then - func_append newlib_search_path " $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - esac - # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test "$linkmode,$pass" = "prog,link"; then - if test -n "$library_names" && - { { test "$prefer_static_libs" = no || - test "$prefer_static_libs,$installed" = "built,yes"; } || - test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath:" in - *"$absdir:"*) ;; - *) func_append temp_rpath "$absdir:" ;; - esac - fi - - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - fi - - link_static=no # Whether the deplib will be linked statically - use_static_libs=$prefer_static_libs - if test "$use_static_libs" = built && test "$installed" = yes; then - use_static_libs=no - fi - if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then - case $host in - *cygwin* | *mingw* | *cegcc*) - # No point in relinking DLLs because paths are not encoded - func_append notinst_deplibs " $lib" - need_relink=no - ;; - *) - if test "$installed" = no; then - func_append notinst_deplibs " $lib" - need_relink=yes - fi - ;; - esac - # This is a shared library - - # Warn about portability, can't link against -module's on some - # systems (darwin). Don't bleat about dlopened modules though! - dlopenmodule="" - for dlpremoduletest in $dlprefiles; do - if test "X$dlpremoduletest" = "X$lib"; then - dlopenmodule="$dlpremoduletest" - break - fi - done - if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then - echo - if test "$linkmode" = prog; then - $ECHO "*** Warning: Linking the executable $output against the loadable module" - else - $ECHO "*** Warning: Linking the shared library $output against the loadable module" - fi - $ECHO "*** $linklib is not portable!" - fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - shift - realname="$1" - shift - libname=`eval "\\$ECHO \"$libname_spec\""` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" - elif test -n "$soname_spec"; then - # bleh windows - case $host in - *cygwin* | mingw* | *cegcc*) - func_arith $current - $age - major=$func_arith_result - versuffix="-$major" - ;; - esac - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" - func_basename "$soroot" - soname="$func_basename_result" - func_stripname 'lib' '.dll' "$soname" - newlib=libimp-$func_stripname_result.a - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - func_verbose "extracting exported symbol list from \`$soname'" - func_execute_cmds "$extract_expsyms_cmds" 'exit $?' - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - func_verbose "generating import library for \`$soname'" - func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - - if test "$linkmode" = prog || test "$opt_mode" != relink; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" - case $host in - *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; - *-*-sysv4*uw2*) add_dir="-L$dir" ;; - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir="-L$dir" ;; - *-*-darwin* ) - # if the lib is a (non-dlopened) module then we can not - # link against it, someone is ignoring the earlier warnings - if /usr/bin/file -L $add 2> /dev/null | - $GREP ": [^:]* bundle" >/dev/null ; then - if test "X$dlopenmodule" != "X$lib"; then - $ECHO "*** Warning: lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then - echo - echo "*** And there doesn't seem to be a static archive available" - echo "*** The link will probably fail, sorry" - else - add="$dir/$old_library" - fi - elif test -n "$old_library"; then - add="$dir/$old_library" - fi - fi - esac - elif test "$hardcode_minus_L" = no; then - case $host in - *-*-sunos*) add_shlibpath="$dir" ;; - esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - relink) - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$absdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test "$lib_linked" != yes; then - func_fatal_configuration "unsupported hardcode properties" - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) func_append compile_shlibpath "$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; then - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" - test -n "$add" && compile_deplibs="$add $compile_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && - test "$hardcode_minus_L" != yes && - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - fi - fi - fi - - if test "$linkmode" = prog || test "$opt_mode" = relink; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then - if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib" ; then - add="$inst_prefix_dir$libdir/$linklib" - else - add="$libdir/$linklib" - fi - else - # We cannot seem to hardcode it, guess we'll fake it. - add_dir="-L$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - fi - - if test "$linkmode" = prog; then - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - fi - fi - elif test "$linkmode" = prog; then - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" - compile_deplibs="$dir/$linklib $compile_deplibs" - finalize_deplibs="$dir/$linklib $finalize_deplibs" - else - compile_deplibs="-l$name -L$dir $compile_deplibs" - finalize_deplibs="-l$name -L$dir $finalize_deplibs" - fi - elif test "$build_libtool_libs" = yes; then - # Not a shared library - if test "$deplibs_check_method" != pass_all; then - # We're trying link a shared library against a static one - # but the system doesn't support it. - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. - echo - $ECHO "*** Warning: This system can not link to static lib archive $lib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then - echo "*** But as you try to build a module library, libtool will still create " - echo "*** a static module, that should work as long as the dlopening application" - echo "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test "$linkmode" = lib; then - if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) func_stripname '-R' '' "$libdir" - temp_xrpath=$func_stripname_result - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) func_append xrpath " $temp_xrpath";; - esac;; - *) func_append temp_deplibs " $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - - func_append newlib_search_path " $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result";; - *) func_resolve_sysroot "$deplib" ;; - esac - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $func_resolve_sysroot_result "*) - func_append specialdeplibs " $func_resolve_sysroot_result" ;; - esac - fi - func_append tmp_libs " $func_resolve_sysroot_result" - done - - if test "$link_all_deplibs" != no; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - path= - case $deplib in - -L*) path="$deplib" ;; - *.la) - func_resolve_sysroot "$deplib" - deplib=$func_resolve_sysroot_result - func_dirname "$deplib" "" "." - dir=$func_dirname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - func_warning "cannot determine absolute directory name of \`$dir'" - absdir="$dir" - fi - ;; - esac - if $GREP "^installed=no" $deplib > /dev/null; then - case $host in - *-*-darwin*) - depdepl= - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp - done - if test -f "$absdir/$objdir/$depdepl" ; then - depdepl="$absdir/$objdir/$depdepl" - darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - if test -z "$darwin_install_name"; then - darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - fi - func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" - func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" - path= - fi - fi - ;; - *) - path="-L$absdir/$objdir" - ;; - esac - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - test "$absdir" != "$libdir" && \ - func_warning "\`$deplib' seems to be moved" - - path="-L$absdir" - fi - ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$path $deplibs" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - if test "$pass" = link; then - if test "$linkmode" = "prog"; then - compile_deplibs="$new_inherited_linker_flags $compile_deplibs" - finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" - else - compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - fi - fi - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then - # Make sure lib_search_path contains only unique directories. - lib_search_path= - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; - *) func_append lib_search_path " $dir" ;; - esac - done - newlib_search_path= - fi - - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else - vars="compile_deplibs finalize_deplibs" - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so - # that some nasty dependency loop isn't accidentally - # broken: - #new_libs="$deplib $new_libs" - # Pragmatically, this seems to cause very few problems in - # practice: - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - -R*) ;; - *) - # And here is the reason: when a library appears more - # than once as an explicit dependence of a library, or - # is implicitly linked in more than once by the - # compiler, it is considered special, and multiple - # occurrences thereof are not removed. Compare this - # with having the same library being listed as a - # dependency of multiple other libraries: in this case, - # we know (pedantically, we assume) the library does not - # need to be listed more than once, so we keep only the - # last copy. This is not always right, but it is rare - # enough that we require users that really mean to play - # such unportable linking tricks to link the library - # using -Wl,-lname, so that libtool does not consider it - # for duplicate removal. - case " $specialdeplibs " in - *" $deplib "*) new_libs="$deplib $new_libs" ;; - *) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$deplib $new_libs" ;; - esac - ;; - esac - ;; - esac - done - tmp_libs= - for deplib in $new_libs; do - case $deplib in - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; - *) func_append tmp_libs " $deplib" ;; - esac - ;; - *) func_append tmp_libs " $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - # Last step: remove runtime libs from dependency_libs - # (they stay in deplibs) - tmp_libs= - for i in $dependency_libs ; do - case " $predeps $postdeps $compiler_lib_search_path " in - *" $i "*) - i="" - ;; - esac - if test -n "$i" ; then - func_append tmp_libs " $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" - fi - if test "$linkmode" = prog || test "$linkmode" = lib; then - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for archives" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for archives" ;; - esac - - test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for archives" - - test -n "$xrpath" && \ - func_warning "\`-R' is ignored for archives" - - test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for archives" - - test -n "$release" && \ - func_warning "\`-release' is ignored for archives" - - test -n "$export_symbols$export_symbols_regex" && \ - func_warning "\`-export-symbols' is ignored for archives" - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" - func_append objs "$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) - func_stripname 'lib' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) - test "$module" = no && \ - func_fatal_help "libtool library \`$output' must begin with \`lib'" - - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required - func_stripname '' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else - func_stripname '' '.la' "$outputname" - libname=$func_stripname_result - fi - ;; - esac - - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" - else - echo - $ECHO "*** Warning: Linking the shared library $output against the non-libtool" - $ECHO "*** objects $objs is not portable!" - func_append libobjs " $objs" - fi - fi - - test "$dlself" != no && \ - func_warning "\`-dlopen self' is ignored for libtool libraries" - - set dummy $rpath - shift - test "$#" -gt 1 && \ - func_warning "ignoring multiple \`-rpath's for a libtool library" - - install_libdir="$1" - - oldlibs= - if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then - # Building a libtool convenience library. - # Some compilers have problems with a `.al' extension so - # convenience libraries should have the same extension an - # archive normally would. - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for convenience libraries" - - test -n "$release" && \ - func_warning "\`-release' is ignored for convenience libraries" - else - - # Parse the version information argument. - save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 - shift - IFS="$save_ifs" - - test -n "$7" && \ - func_fatal_help "too many parameters to \`-version-info'" - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts - # to make the code below a bit more comprehensible - - case $vinfo_number in - yes) - number_major="$1" - number_minor="$2" - number_revision="$3" - # - # There are really only two kinds -- those that - # use the current revision as the major version - # and those that subtract age and use age as - # a minor version. But, then there is irix - # which has an extra 1 added just for fun - # - case $version_type in - # correct linux to gnu/linux during the next big refactor - darwin|linux|osf|windows|none) - func_arith $number_major + $number_minor - current=$func_arith_result - age="$number_minor" - revision="$number_revision" - ;; - freebsd-aout|freebsd-elf|qnx|sunos) - current="$number_major" - revision="$number_minor" - age="0" - ;; - irix|nonstopux) - func_arith $number_major + $number_minor - current=$func_arith_result - age="$number_minor" - revision="$number_minor" - lt_irix_increment=no - ;; - esac - ;; - no) - current="$1" - revision="$2" - age="$3" - ;; - esac - - # Check that each of the things are valid numbers. - case $current in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "CURRENT \`$current' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - case $revision in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "REVISION \`$revision' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - case $age in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "AGE \`$age' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - if test "$age" -gt "$current"; then - func_error "AGE \`$age' is greater than the current interface number \`$current'" - func_fatal_error "\`$vinfo' is not valid version information" - fi - - # Calculate the version variables. - major= - versuffix= - verstring= - case $version_type in - none) ;; - - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header - func_arith $current - $age - major=.$func_arith_result - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... - func_arith $current + 1 - minor_current=$func_arith_result - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current" - ;; - - irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; then - func_arith $current - $age - else - func_arith $current - $age + 1 - fi - major=$func_arith_result - - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; - esac - verstring="$verstring_prefix$major.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$revision - while test "$loop" -ne 0; do - func_arith $revision - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring="$verstring_prefix$major.$iface:$verstring" - done - - # Before this point, $major must not contain `.'. - major=.$major - versuffix="$major.$revision" - ;; - - linux) # correct to gnu/linux during the next big refactor - func_arith $current - $age - major=.$func_arith_result - versuffix="$major.$age.$revision" - ;; - - osf) - func_arith $current - $age - major=.$func_arith_result - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test "$loop" -ne 0; do - func_arith $current - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring="$verstring:${iface}.0" - done - - # Make executables depend on our current version. - func_append verstring ":${current}.0" - ;; - - qnx) - major=".$current" - versuffix=".$current" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. - func_arith $current - $age - major=$func_arith_result - versuffix="-$major" - ;; - - *) - func_fatal_configuration "unknown library version type \`$version_type'" - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - case $version_type in - darwin) - # we can't check for "0.0" in archive_cmds due to quoting - # problems, so we reset it completely - verstring= - ;; - *) - verstring="0.0" - ;; - esac - if test "$need_version" = no; then - versuffix= - else - versuffix=".0.0" - fi - fi - - # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then - major= - versuffix= - verstring="" - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - func_warning "undefined symbols not allowed in $host shared libraries" - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - - fi - - func_generate_dlsyms "$libname" "$libname" "yes" - func_append libobjs " $symfileobj" - test "X$libobjs" = "X " && libobjs= - - if test "$opt_mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`$ECHO "$output_objdir/*"` - for p in $tempremovelist; do - case $p in - *.$objext | *.gcno) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - if test "X$precious_files_regex" != "X"; then - if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 - then - continue - fi - fi - func_append removelist " $p" - ;; - *) ;; - esac - done - test -n "$removelist" && \ - func_show_eval "${RM}r \$removelist" - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - func_append oldlibs " $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - #for path in $notinst_path; do - # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` - # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` - # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` - #done - - if test -n "$xrpath"; then - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do - func_replace_sysroot "$libdir" - func_append temp_xrpath " -R$func_replace_sysroot_result" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi - - # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles="$dlfiles" - dlfiles= - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; - *) func_append dlfiles " $lib" ;; - esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles="$dlprefiles" - dlprefiles= - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; - *) func_append dlprefiles " $lib" ;; - esac - done - - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - func_append deplibs " System.ltframework" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then - func_append deplibs " -lc" - fi - ;; - esac - fi - - # Transform deplibs into only deplibs that can be linked in shared. - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release="" - versuffix="" - major="" - newdeplibs= - droppeddeps=no - case $deplibs_check_method in - pass_all) - # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behavior. - newdeplibs=$deplibs - ;; - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $opt_dry_run || $RM conftest.c - cat > conftest.c </dev/null` - $nocaseglob - else - potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` - fi - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null | - $GREP " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an - # endless loop below, in case of cyclic links. - # We might still enter an endless loop, since a link - # loop can be closed while we follow links, - # but so what? - potlib="$potent_lib" - while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | - $SED -e 10q | - $EGREP "$file_magic_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $ECHO "*** with $libname but no candidates were found. (...for file magic test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a file magic. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - for a_deplib in $deplibs; do - case $a_deplib in - -l*) - func_stripname -l '' "$a_deplib" - name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) - func_append newdeplibs " $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then - libname=`eval "\\$ECHO \"$libname_spec\""` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test - if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ - $EGREP "$match_pattern_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a regex pattern. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" - tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` - done - fi - case $tmp_deplibs in - *[!\ \ ]*) - echo - if test "X$deplibs_check_method" = "Xnone"; then - echo "*** Warning: inter-library dependencies are not supported in this platform." - else - echo "*** Warning: inter-library dependencies are not known to be supported." - fi - echo "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - ;; - esac - ;; - esac - versuffix=$versuffix_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library with the System framework - newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; then - echo - echo "*** Warning: libtool could not satisfy all declared inter-library" - $ECHO "*** dependencies of module $libname. Therefore, libtool will create" - echo "*** a static module, that should work as long as the dlopening" - echo "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - else - echo "*** The inter-library dependencies that have been dropped here will be" - echo "*** automatically added whenever a program is linked with this library" - echo "*** or is declared to -dlopen it." - - if test "$allow_undefined" = no; then - echo - echo "*** Since this library must not contain undefined symbols," - echo "*** because either the platform does not support them or" - echo "*** it was explicitly requested with -no-undefined," - echo "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - fi - fi - # Done checking deplibs! - deplibs=$newdeplibs - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - case $host in - *-*-darwin*) - newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - deplibs="$new_libs" - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" = yes; then - # Remove ${wl} instances when linking with ld. - # FIXME: should test the right _cmds variable. - case $archive_cmds in - *\$LD\ *) wl= ;; - esac - if test "$hardcode_into_libs" = yes; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" - test "$opt_mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - func_replace_sysroot "$libdir" - libdir=$func_replace_sysroot_result - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append dep_rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath="$finalize_shlibpath" - test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" - if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. - eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - shift - realname="$1" - shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - if test -z "$dlname"; then - dlname=$soname - fi - - lib="$output_objdir/$realname" - linknames= - for link - do - func_append linknames " $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` - test "X$libobjs" = "X " && libobjs= - - delfiles= - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols="$output_objdir/$libname.uexp" - func_append delfiles " $export_symbols" - fi - - orig_export_symbols= - case $host_os in - cygwin* | mingw* | cegcc*) - if test -n "$export_symbols" && test -z "$export_symbols_regex"; then - # exporting using user supplied symfile - if test "x`$SED 1q $export_symbols`" != xEXPORTS; then - # and it's NOT already a .def file. Must figure out - # which of the given symbols are data symbols and tag - # them as such. So, trigger use of export_symbols_cmds. - # export_symbols gets reassigned inside the "prepare - # the list of exported symbols" if statement, so the - # include_expsyms logic still works. - orig_export_symbols="$export_symbols" - export_symbols= - always_export_symbols=yes - fi - fi - ;; - esac - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $opt_dry_run || $RM $export_symbols - cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' - for cmd1 in $cmds; do - IFS="$save_ifs" - # Take the normal branch if the nm_file_list_spec branch - # doesn't work or if tool conversion is not needed. - case $nm_file_list_spec~$to_tool_file_cmd in - *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) - try_normal_branch=yes - eval cmd=\"$cmd1\" - func_len " $cmd" - len=$func_len_result - ;; - *) - try_normal_branch=no - ;; - esac - if test "$try_normal_branch" = yes \ - && { test "$len" -lt "$max_cmd_len" \ - || test "$max_cmd_len" -le -1; } - then - func_show_eval "$cmd" 'exit $?' - skipped_export=false - elif test -n "$nm_file_list_spec"; then - func_basename "$output" - output_la=$func_basename_result - save_libobjs=$libobjs - save_output=$output - output=${output_objdir}/${output_la}.nm - func_to_tool_file "$output" - libobjs=$nm_file_list_spec$func_to_tool_file_result - func_append delfiles " $output" - func_verbose "creating $NM input file list: $output" - for obj in $save_libobjs; do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > "$output" - eval cmd=\"$cmd1\" - func_show_eval "$cmd" 'exit $?' - output=$save_output - libobjs=$save_libobjs - skipped_export=false - else - # The command line is too long to execute in one step. - func_verbose "using reloadable object file for export list..." - skipped_export=: - # Break out early, otherwise skipped_export may be - # set to false by a later but shorter cmd. - break - fi - done - IFS="$save_ifs" - if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - func_append tmp_deplibs " $test_deplib" - ;; - esac - done - deplibs="$tmp_deplibs" - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec" && - test "$compiler_needs_object" = yes && - test -z "$libobjs"; then - # extract the archives, so we have objects to list. - # TODO: could optimize this to just extract one archive. - whole_archive_flag_spec= - fi - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - else - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - func_append linker_flags " $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test "$opt_mode" = relink; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else - eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else - eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi - - if test "X$skipped_export" != "X:" && - func_len " $test_cmds" && - len=$func_len_result && - test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise - # or, if using GNU ld and skipped_export is not :, use a linker - # script. - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we - # want to use save_libobjs as it was before - # whole_archive_flag_spec was expanded, because we can't - # assume the linker understands whole_archive_flag_spec. - # This may have to be revisited, in case too many - # convenience libraries get linked in and end up exceeding - # the spec. - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - fi - save_output=$output - func_basename "$output" - output_la=$func_basename_result - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - last_robj= - k=1 - - if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then - output=${output_objdir}/${output_la}.lnkscript - func_verbose "creating GNU ld script: $output" - echo 'INPUT (' > $output - for obj in $save_libobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - echo ')' >> $output - func_append delfiles " $output" - func_to_tool_file "$output" - output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then - output=${output_objdir}/${output_la}.lnk - func_verbose "creating linker input file list: $output" - : > $output - set x $save_libobjs - shift - firstobj= - if test "$compiler_needs_object" = yes; then - firstobj="$1 " - shift - fi - for obj - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - func_append delfiles " $output" - func_to_tool_file "$output" - output=$firstobj\"$file_list_spec$func_to_tool_file_result\" - else - if test -n "$save_libobjs"; then - func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-${k}.$objext - eval test_cmds=\"$reload_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - if test "X$objlist" = X || - test "$len" -lt "$max_cmd_len"; then - func_append objlist " $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - reload_objs=$objlist - eval concat_cmds=\"$reload_cmds\" - else - # All subsequent reloadable object files will link in - # the last one created. - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" - fi - last_robj=$output_objdir/$output_la-${k}.$objext - func_arith $k + 1 - k=$func_arith_result - output=$output_objdir/$output_la-${k}.$objext - objlist=" $obj" - func_len " $last_robj" - func_arith $len0 + $func_len_result - len=$func_arith_result - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\${concat_cmds}$reload_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" - fi - func_append delfiles " $output" - - else - output= - fi - - if ${skipped_export-false}; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $opt_dry_run || $RM $export_symbols - libobjs=$output - # Append the command to create the export file. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - fi - - test -n "$save_libobjs" && - func_verbose "creating a temporary reloadable object file: $output" - - # Loop through the commands generated above and execute them. - save_ifs="$IFS"; IFS='~' - for cmd in $concat_cmds; do - IFS="$save_ifs" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - - if test -n "$export_symbols_regex" && ${skipped_export-false}; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - - if ${skipped_export-false}; then - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - fi - - libobjs=$output - # Restore the value of output. - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - cmds=$module_expsym_cmds - else - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - cmds=$archive_expsym_cmds - else - cmds=$archive_cmds - fi - fi - fi - - if test -n "$delfiles"; then - # Append the command to remove temporary files to $cmds. - eval cmds=\"\$cmds~\$RM $delfiles\" - fi - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then - func_show_eval '${RM}r "$gentop"' - fi - fi - - exit $EXIT_SUCCESS - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - obj) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for objects" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for objects" ;; - esac - - test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for objects" - - test -n "$xrpath" && \ - func_warning "\`-R' is ignored for objects" - - test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for objects" - - test -n "$release" && \ - func_warning "\`-release' is ignored for objects" - - case $output in - *.lo) - test -n "$objs$old_deplibs" && \ - func_fatal_error "cannot build library object \`$output' from non-libtool objects" - - libobj=$output - func_lo2o "$libobj" - obj=$func_lo2o_result - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $opt_dry_run || $RM $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs= - gentop= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec and hope we can get by with - # turning comma into space.. - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` - else - gentop="$output_objdir/${obj}x" - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - - # If we're not building shared, we need to use non_pic_objs - test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" - - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" - func_execute_cmds "$reload_cmds" 'exit $?' - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - fi - - if test "$build_libtool_libs" != yes; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - fi - - if test -n "$pic_flag" || test "$pic_mode" != default; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output="$libobj" - func_execute_cmds "$reload_cmds" 'exit $?' - fi - - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - ;; - - prog) - case $host in - *cygwin*) func_stripname '' '.exe' "$output" - output=$func_stripname_result.exe;; - esac - test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for programs" - - test -n "$release" && \ - func_warning "\`-release' is ignored for programs" - - test "$preload" = yes \ - && test "$dlopen_support" = unknown \ - && test "$dlopen_self" = unknown \ - && test "$dlopen_self_static" = unknown && \ - func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - case $host in - *-*-darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - # But is supposedly fixed on 10.4 or later (yay!). - if test "$tagname" = CXX ; then - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[0123]) - func_append compile_command " ${wl}-bind_at_load" - func_append finalize_command " ${wl}-bind_at_load" - ;; - esac - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $compile_deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - compile_deplibs="$new_libs" - - - func_append compile_command " $compile_deplibs" - func_append finalize_command " $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath $xrpath; do - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - fi - - # Now hardcode the library paths - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; - ::) dllsearchpath=$libdir;; - *) func_append dllsearchpath ":$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath="$rpath" - - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) func_append finalize_perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath="$rpath" - - if test -n "$libobjs" && test "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - fi - - func_generate_dlsyms "$outputname" "@PROGRAM@" "no" - - # template prelinking step - if test -n "$prelink_cmds"; then - func_execute_cmds "$prelink_cmds" 'exit $?' - fi - - wrappers_required=yes - case $host in - *cegcc* | *mingw32ce*) - # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. - wrappers_required=no - ;; - *cygwin* | *mingw* ) - if test "$build_libtool_libs" != yes; then - wrappers_required=no - fi - ;; - *) - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - wrappers_required=no - fi - ;; - esac - if test "$wrappers_required" = no; then - # Replace the output file specification. - compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. - exit_status=0 - func_show_eval "$link_command" 'exit_status=$?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Delete the generated files. - if test -f "$output_objdir/${outputname}S.${objext}"; then - func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' - fi - - exit $exit_status - fi - - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - compile_var= - finalize_var= - if test -n "$runpath_var"; then - if test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - if test -n "$finalize_perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do - func_append rpath "$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test "$no_install" = yes; then - # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $opt_dry_run || $RM $output - # Link the executable and exit - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - exit $EXIT_SUCCESS - fi - - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - func_warning "this platform does not like uninstalled shared libraries" - func_warning "\`$output' will be relinked during installation" - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi - - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname - - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output_objdir/$outputname" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Now create the wrapper script. - func_verbose "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - fi - - # Only actually do things if not in dry run mode. - $opt_dry_run || { - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) func_stripname '' '.exe' "$output" - output=$func_stripname_result ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - func_stripname '' '.exe' "$outputname" - outputname=$func_stripname_result ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - func_dirname_and_basename "$output" "" "." - output_name=$func_basename_result - output_path=$func_dirname_result - cwrappersource="$output_path/$objdir/lt-$output_name.c" - cwrapper="$output_path/$output_name.exe" - $RM $cwrappersource $cwrapper - trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - - func_emit_cwrapperexe_src > $cwrappersource - - # The wrapper executable is built using the $host compiler, - # because it contains $host paths and files. If cross- - # compiling, it, like the target executable, must be - # executed on the $host or under an emulation environment. - $opt_dry_run || { - $LTCC $LTCFLAGS -o $cwrapper $cwrappersource - $STRIP $cwrapper - } - - # Now, create the wrapper script for func_source use: - func_ltwrapper_scriptname $cwrapper - $RM $func_ltwrapper_scriptname_result - trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 - $opt_dry_run || { - # note: this script will not be executed, so do not chmod. - if test "x$build" = "x$host" ; then - $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result - else - func_emit_wrapper no > $func_ltwrapper_scriptname_result - fi - } - ;; - * ) - $RM $output - trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 - - func_emit_wrapper no > $output - chmod +x $output - ;; - esac - } - exit $EXIT_SUCCESS - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save $symfileobj" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" - build_libtool_libs=no - else - oldobjs="$old_deplibs $non_pic_objects" - if test "$preload" = yes && test -f "$symfileobj"; then - func_append oldobjs " $symfileobj" - fi - fi - addlibs="$old_convenience" - fi - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $addlibs - func_append oldobjs " $func_extract_archives_result" - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - cmds=$old_archive_from_new_cmds - else - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append oldobjs " $func_extract_archives_result" - fi - - # POSIX demands no paths to be encoded in archives. We have - # to avoid creating archives with duplicate basenames if we - # might have to extract them afterwards, e.g., when creating a - # static archive out of a convenience library, or when linking - # the entirety of a libtool archive into another (currently - # not supported by libtool). - if (for obj in $oldobjs - do - func_basename "$obj" - $ECHO "$func_basename_result" - done | sort | sort -uc >/dev/null 2>&1); then - : - else - echo "copying selected object files to avoid basename conflicts..." - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - func_mkdir_p "$gentop" - save_oldobjs=$oldobjs - oldobjs= - counter=1 - for obj in $save_oldobjs - do - func_basename "$obj" - objbase="$func_basename_result" - case " $oldobjs " in - " ") oldobjs=$obj ;; - *[\ /]"$objbase "*) - while :; do - # Make sure we don't pick an alternate name that also - # overlaps. - newobj=lt$counter-$objbase - func_arith $counter + 1 - counter=$func_arith_result - case " $oldobjs " in - *[\ /]"$newobj "*) ;; - *) if test ! -f "$gentop/$newobj"; then break; fi ;; - esac - done - func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - func_append oldobjs " $gentop/$newobj" - ;; - *) func_append oldobjs " $obj" ;; - esac - done - fi - func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 - tool_oldlib=$func_to_tool_file_result - eval cmds=\"$old_archive_cmds\" - - func_len " $cmds" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds - elif test -n "$archiver_list_spec"; then - func_verbose "using command file archive linking..." - for obj in $oldobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > $output_objdir/$libname.libcmd - func_to_tool_file "$output_objdir/$libname.libcmd" - oldobjs=" $archiver_list_spec$func_to_tool_file_result" - cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - func_verbose "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - oldobjs= - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - eval test_cmds=\"$old_archive_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - for obj in $save_oldobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - func_append objlist " $obj" - if test "$len" -lt "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - len=$len0 - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi - func_execute_cmds "$cmds" 'exit $?' - done - - test -n "$generated" && \ - func_show_eval "${RM}r$generated" - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" - func_verbose "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then - relink_command= - fi - - # Only create the output if not a dry run. - $opt_dry_run || { - for installed in no yes; do - if test "$installed" = yes; then - if test -z "$install_libdir"; then - break - fi - output="$output_objdir/$outputname"i - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do - case $deplib in - *.la) - func_basename "$deplib" - name="$func_basename_result" - func_resolve_sysroot "$deplib" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" - ;; - -L*) - func_stripname -L '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -L$func_replace_sysroot_result" - ;; - -R*) - func_stripname -R '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -R$func_replace_sysroot_result" - ;; - *) func_append newdependency_libs " $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" - newdlfiles= - - for lib in $dlfiles; do - case $lib in - *.la) - func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" - func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" - ;; - *) func_append newdlfiles " $lib" ;; - esac - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - *.la) - # Only pass preopened files to the pseudo-archive (for - # eventual linking with the app. that links it) if we - # didn't already link the preopened objects directly into - # the library: - func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" - func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" - ;; - esac - done - dlprefiles="$newdlprefiles" - else - newdlfiles= - for lib in $dlfiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlfiles " $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlprefiles " $abs" - done - dlprefiles="$newdlprefiles" - fi - $RM $output - # place dlname in correct position for cygwin - # In fact, it would be nice if we could use this code for all target - # systems that can't hard-code library paths into their executables - # and that have no shared library path variable independent of PATH, - # but it turns out we can't easily determine that from inspecting - # libtool variables, so we have to hard-code the OSs to which it - # applies here; at the moment, that means platforms that use the PE - # object format with DLL files. See the long comment at the top of - # tests/bindir.at for full details. - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) - # If a -bindir argument was supplied, place the dll there. - if test "x$bindir" != x ; - then - func_relative_path "$install_libdir" "$bindir" - tdlname=$func_relative_path_result$dlname - else - # Otherwise fall back on heuristic. - tdlname=../bin/$dlname - fi - ;; - esac - $ECHO > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='$tdlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Linker flags that can not go in dependency_libs. -inherited_linker_flags='$new_inherited_linker_flags' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Names of additional weak libraries provided by this library -weak_library_names='$weak_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=$module - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes; then - $ECHO >> $output "\ -relink_command=\"$relink_command\"" - fi - done - } - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' - ;; - esac - exit $EXIT_SUCCESS -} - -{ test "$opt_mode" = link || test "$opt_mode" = relink; } && - func_mode_link ${1+"$@"} - - -# func_mode_uninstall arg... -func_mode_uninstall () -{ - $opt_debug - RM="$nonopt" - files= - rmforce= - exit_status=0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - for arg - do - case $arg in - -f) func_append RM " $arg"; rmforce=yes ;; - -*) func_append RM " $arg" ;; - *) func_append files " $arg" ;; - esac - done - - test -z "$RM" && \ - func_fatal_help "you must specify an RM program" - - rmdirs= - - for file in $files; do - func_dirname "$file" "" "." - dir="$func_dirname_result" - if test "X$dir" = X.; then - odir="$objdir" - else - odir="$dir/$objdir" - fi - func_basename "$file" - name="$func_basename_result" - test "$opt_mode" = uninstall && odir="$dir" - - # Remember odir for removal later, being careful to avoid duplicates - if test "$opt_mode" = clean; then - case " $rmdirs " in - *" $odir "*) ;; - *) func_append rmdirs " $odir" ;; - esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if { test -L "$file"; } >/dev/null 2>&1 || - { test -h "$file"; } >/dev/null 2>&1 || - test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 - continue - elif test "$rmforce" = yes; then - continue - fi - - rmfiles="$file" - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if func_lalib_p "$file"; then - func_source $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - func_append rmfiles " $odir/$n" - done - test -n "$old_library" && func_append rmfiles " $odir/$old_library" - - case "$opt_mode" in - clean) - case " $library_names " in - *" $dlname "*) ;; - *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; - esac - test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - # FIXME: should reinstall the best remaining shared library. - ;; - esac - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if func_lalib_p "$file"; then - - # Read the .lo file - func_source $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" && - test "$pic_object" != none; then - func_append rmfiles " $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && - test "$non_pic_object" != none; then - func_append rmfiles " $dir/$non_pic_object" - fi - fi - ;; - - *) - if test "$opt_mode" = clean ; then - noexename=$name - case $file in - *.exe) - func_stripname '' '.exe' "$file" - file=$func_stripname_result - func_stripname '' '.exe' "$name" - noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe - func_append rmfiles " $file" - ;; - esac - # Do a test to see if this is a libtool program. - if func_ltwrapper_p "$file"; then - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - relink_command= - func_source $func_ltwrapper_scriptname_result - func_append rmfiles " $func_ltwrapper_scriptname_result" - else - relink_command= - func_source $dir/$noexename - fi - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - func_append rmfiles " $odir/$name $odir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - func_append rmfiles " $odir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then - func_append rmfiles " $odir/lt-${noexename}.c" - fi - fi - fi - ;; - esac - func_show_eval "$RM $rmfiles" 'exit_status=1' - done - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - func_show_eval "rmdir $dir >/dev/null 2>&1" - fi - done - - exit $exit_status -} - -{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && - func_mode_uninstall ${1+"$@"} - -test -z "$opt_mode" && { - help="$generic_help" - func_fatal_help "you must specify a MODE" -} - -test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$opt_mode'" - -if test -n "$exec_cmd"; then - eval exec "$exec_cmd" - exit $EXIT_FAILURE -fi - -exit $exit_status - - -# The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -build_libtool_libs=no -build_old_libs=yes -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: -# vi:sw=2 - diff -Nru libdrm-2.4.52/build-aux/missing libdrm-2.4.52+really2.4.21/build-aux/missing --- libdrm-2.4.52/build-aux/missing 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/build-aux/missing 1970-01-01 00:00:00.000000000 +0000 @@ -1,215 +0,0 @@ -#! /bin/sh -# Common wrapper for a few potentially missing GNU programs. - -scriptversion=2012-06-26.16; # UTC - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# Originally written by Fran,cois Pinard , 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try '$0 --help' for more information" - exit 1 -fi - -case $1 in - - --is-lightweight) - # Used by our autoconf macros to check whether the available missing - # script is modern enough. - exit 0 - ;; - - --run) - # Back-compat with the calling convention used by older automake. - shift - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due -to PROGRAM being missing or too old. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - -Supported PROGRAM values: - aclocal autoconf autoheader autom4te automake makeinfo - bison yacc flex lex help2man - -Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and -'g' are ignored when checking the name. - -Send bug reports to ." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: unknown '$1' option" - echo 1>&2 "Try '$0 --help' for more information" - exit 1 - ;; - -esac - -# Run the given program, remember its exit status. -"$@"; st=$? - -# If it succeeded, we are done. -test $st -eq 0 && exit 0 - -# Also exit now if we it failed (or wasn't found), and '--version' was -# passed; such an option is passed most likely to detect whether the -# program is present and works. -case $2 in --version|--help) exit $st;; esac - -# Exit code 63 means version mismatch. This often happens when the user -# tries to use an ancient version of a tool on a file that requires a -# minimum version. -if test $st -eq 63; then - msg="probably too old" -elif test $st -eq 127; then - # Program was missing. - msg="missing on your system" -else - # Program was found and executed, but failed. Give up. - exit $st -fi - -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software - -program_details () -{ - case $1 in - aclocal|automake) - echo "The '$1' program is part of the GNU Automake package:" - echo "<$gnu_software_URL/automake>" - echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/autoconf>" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - autoconf|autom4te|autoheader) - echo "The '$1' program is part of the GNU Autoconf package:" - echo "<$gnu_software_URL/autoconf/>" - echo "It also requires GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - esac -} - -give_advice () -{ - # Normalize program name to check for. - normalized_program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - - printf '%s\n' "'$1' is $msg." - - configure_deps="'configure.ac' or m4 files included by 'configure.ac'" - case $normalized_program in - autoconf*) - echo "You should only need it if you modified 'configure.ac'," - echo "or m4 files included by it." - program_details 'autoconf' - ;; - autoheader*) - echo "You should only need it if you modified 'acconfig.h' or" - echo "$configure_deps." - program_details 'autoheader' - ;; - automake*) - echo "You should only need it if you modified 'Makefile.am' or" - echo "$configure_deps." - program_details 'automake' - ;; - aclocal*) - echo "You should only need it if you modified 'acinclude.m4' or" - echo "$configure_deps." - program_details 'aclocal' - ;; - autom4te*) - echo "You might have modified some maintainer files that require" - echo "the 'automa4te' program to be rebuilt." - program_details 'autom4te' - ;; - bison*|yacc*) - echo "You should only need it if you modified a '.y' file." - echo "You may want to install the GNU Bison package:" - echo "<$gnu_software_URL/bison/>" - ;; - lex*|flex*) - echo "You should only need it if you modified a '.l' file." - echo "You may want to install the Fast Lexical Analyzer package:" - echo "<$flex_URL>" - ;; - help2man*) - echo "You should only need it if you modified a dependency" \ - "of a man page." - echo "You may want to install the GNU Help2man package:" - echo "<$gnu_software_URL/help2man/>" - ;; - makeinfo*) - echo "You should only need it if you modified a '.texi' file, or" - echo "any other file indirectly affecting the aspect of the manual." - echo "You might want to install the Texinfo package:" - echo "<$gnu_software_URL/texinfo/>" - echo "The spurious makeinfo call might also be the consequence of" - echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" - echo "want to install GNU make:" - echo "<$gnu_software_URL/make/>" - ;; - *) - echo "You might have modified some files without having the proper" - echo "tools for further handling them. Check the 'README' file, it" - echo "often tells you about the needed prerequisites for installing" - echo "this package. You may also peek at any GNU archive site, in" - echo "case some other package contains this missing '$1' program." - ;; - esac -} - -give_advice "$1" | sed -e '1s/^/WARNING: /' \ - -e '2,$s/^/ /' >&2 - -# Propagate the correct exit status (expected to be 127 for a program -# not found, 63 for a program that failed due to version mismatch). -exit $st - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff -Nru libdrm-2.4.52/build-aux/test-driver libdrm-2.4.52+really2.4.21/build-aux/test-driver --- libdrm-2.4.52/build-aux/test-driver 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/build-aux/test-driver 1970-01-01 00:00:00.000000000 +0000 @@ -1,127 +0,0 @@ -#! /bin/sh -# test-driver - basic testsuite driver script. - -scriptversion=2012-06-27.10; # UTC - -# Copyright (C) 2011-2013 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -# Make unconditional expansion of undefined variables an error. This -# helps a lot in preventing typo-related bugs. -set -u - -usage_error () -{ - echo "$0: $*" >&2 - print_usage >&2 - exit 2 -} - -print_usage () -{ - cat <$log_file 2>&1 -estatus=$? -if test $enable_hard_errors = no && test $estatus -eq 99; then - estatus=1 -fi - -case $estatus:$expect_failure in - 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; - 0:*) col=$grn res=PASS recheck=no gcopy=no;; - 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; - 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; - *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; - *:*) col=$red res=FAIL recheck=yes gcopy=yes;; -esac - -# Report outcome to console. -echo "${col}${res}${std}: $test_name" - -# Register the test result, and other relevant metadata. -echo ":test-result: $res" > $trs_file -echo ":global-test-result: $res" >> $trs_file -echo ":recheck: $recheck" >> $trs_file -echo ":copy-in-global-log: $gcopy" >> $trs_file - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff -Nru libdrm-2.4.52/ChangeLog libdrm-2.4.52+really2.4.21/ChangeLog --- libdrm-2.4.52/ChangeLog 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/ChangeLog 2014-05-11 23:32:00.000000000 +0000 @@ -0,0 +1,35161 @@ +commit 65ec8d7699267cc59777d531f545a82a14341480 +Author: Eric Anholt +Date: Thu Jun 10 08:59:05 2010 -0700 + + Bump version to 2.4.21 for release. + +commit b8c4e5836cf1eff3e8c666f24567bd4c2fa31140 +Author: Eric Anholt +Date: Thu Jun 10 09:03:41 2010 -0700 + + Fix radeon distcheck. + +commit 4f7704aea76b3d93d997d2ff815541d0ac373535 +Author: Eric Anholt +Date: Thu Jun 10 08:58:08 2010 -0700 + + intel: Fix several other paths for buffers pointing at themselves. + +commit 0ec768e67aec8b1ded9bcf575ad1c0beb28cc0ca +Author: Eric Anholt +Date: Fri Jun 4 17:09:11 2010 -0700 + + intel: Add more intermediate sizes of cache buckets between powers of 2. + + We had two cases recently where the rounding to powers of two hurt + badly: 4:2:0 YUV HD video frames would round up from 2.2MB to 4MB, and + Urban Terror was hitting aperture size limitations. For UT, this is + because mipmap trees for power of two texture sizes will land right in + the middle between two cache buckets. + + By giving a few more sizes between powers of two, Urban Terror on my + 945 ends up consuming 207MB of GEM objects instead of 272MB, and HD + video decode on Ironlake goes from 99MB to 75MB. + + cairo-perf-diff of the benchmarks for gl and xlib shows a 1.09x and + 1.06x speedup and a 1.07x, 1.08x, and 1.11x slowdown. From this, I + think this patch was really a no-op in terms of performance for these + CPU-bound workloads. + +commit e65caeba9ed0e6c53830d944248aaae2228351ab +Author: Chris Wilson +Date: Wed Jun 9 10:08:41 2010 +0100 + + intel: Convert to untiled pitches if surface is too large for tiling. + + If the pitch is too large for the hardware to tile, recompute the + required surface size based on the untiled pitch and alignments. For the + older hardware, which has smaller limits and greater restrictions, this + may be a considerable saving in allocation size. + + Signed-off-by: Chris Wilson + +commit f179137f8f5bf272b79266575121c7a04038290c +Author: Eric Anholt +Date: Mon Jun 7 14:22:36 2010 -0700 + + Allow a buffer to point at itself and still get relocs. + + I'm using this in experiments with the i965 Mesa driver. + +commit 66375fd6e8d3e95df5d124883a1426460c1b8ed8 +Author: Zou Nan hai +Date: Wed Jun 2 10:07:37 2010 +0800 + + intel: Add support for kernel multi-ringbuffer API. + + This introduces a new API to exec on BSD ring buffer, for H.264 VLD + decoding. + + Signed-off-by: Xiang Hai hao + Signed-off-by: Zou Nan hai + +commit 73a42a645201a85ce2fe4fc77754df67e5097fc9 +Author: Jesse Barnes +Date: Wed Jun 2 18:27:24 2010 -0700 + + add vbltest to .gitignore + +commit ae57dcf6e063860200b7949d5e2365e80ac4aea7 +Author: Daniel Stone +Date: Tue Jun 1 19:23:42 2010 +0100 + + libkms: Fix include paths + + Otherwise xf86drm.h isn't found, or the wrong one. + +commit 607e228c263d5d171bd0615d5d93202dda371e5f +Author: Eric Anholt +Date: Tue May 25 20:13:37 2010 -0700 + + Enable silent automake rules. + +commit 58e54f62c91aff4f4be96c6d8771ca9110969f49 +Author: Eric Anholt +Date: Tue May 25 20:11:23 2010 -0700 + + intel_bufmgr_fake: fix compile warning. + +commit fcf3e616eeeb289f96af1436d809f0a1a42bebb7 +Author: Chris Wilson +Date: Mon May 24 18:35:41 2010 +0100 + + intel: Don't change tiling mode unless the kernel reports success. + + Fixes: + + Bug 26686 - Some textures are distorted with libdrm 2.4.18 in GTAVC>A3 + http://bugs.freedesktop.org/show_bug.cgi?id=26686 + + This bug continues to haunt me. The kernel SET_TILING ioctl is + inconsistent in its return values when reporting an error. If one of its + sanity checks fail, then the input values are left unchanged. If the + kernel later fails to change the tiling mode, then the input values are + modified to match the current tiling on the object. In short, userspace + cannot trust the return values upon error and so we must assume that + upon error our current tiling mode matches reality and not update. + +commit a3305b076c005e0d3bd55da0214e91413cf65b48 +Author: Chris Wilson +Date: Thu May 13 08:24:28 2010 +0100 + + Revert "intel: We don't need to take the bufmgr lock whilst mapping." + + This reverts commit 7ca558494dd3f68f29bb6ca981de9b8f49620b60. + + This was pushed ahead of an essential review of bo level locking in + mesa, without which we cannot know whether removing this lock is safe. + +commit 52a3e9df629952e58bd019b8cd4cda1dd254a543 +Author: Jonathan Callen +Date: Wed May 12 13:55:34 2010 -0400 + + Only build tests in make check + + Currently, all the tests for libdrm are built during 'make all', even + if you do not wish to run tests. Attached is a patch, based on + version 2.4.15, to make the tests build in 'make check'. + +commit 62731b84114e5dd3310b465921955db14278c256 +Author: Kristian Høgsberg +Date: Wed May 12 13:34:25 2010 -0400 + + Pull in new kernel headers + + Changes struct drm_mode_crtc_page_flip to use __u32 instead of uint32_t, + fixes + + https://bugs.freedesktop.org/show_bug.cgi?id=26994 + +commit 07e7589d86624e9c1ca4c38d00cf6886e1445ae2 +Author: Chris Wilson +Date: Tue May 11 08:54:06 2010 +0100 + + intel: query whether a buffer is reusable. + + Signed-off-by: Chris Wilson + +commit 7ca558494dd3f68f29bb6ca981de9b8f49620b60 +Author: Chris Wilson +Date: Thu Apr 1 17:15:39 2010 +0100 + + intel: We don't need to take the bufmgr lock whilst mapping. + +commit 6293152eb065016a2e5e4fcd047c2db5c2fb0f36 +Author: Michel Dänzer +Date: Wed Apr 28 08:25:30 2010 +0200 + + vbltest: Doesn't need intel stuff. + + Fixes build without libdrm_intel. + +commit c42d1a10e37cc2ff378511a058b89a6f8eddf1c0 +Author: Jesse Barnes +Date: Tue Apr 27 15:43:20 2010 -0400 + + tests: add new vblank test + + Simple test for event frequency. + +commit af98ccf4dd5dcb1b904ec32b9bd1521e6bf7dda5 +Author: Marek Olšák +Date: Mon Apr 26 20:06:53 2010 +0200 + + radeon: use the const qualifier in radeon_cs_write_table + + Signed-off-by: Marek Olšák + +commit c9065c5963db1b8196d278c47b8da2c33a3c49d1 +Author: Alan Coopersmith +Date: Fri Apr 16 17:34:11 2010 -0700 + + Correct the Solaris definitions of atomic_add & atomic_dec + + The #defines added in 966c9907c040b4fe4b288b4a9d82598797aee743 were + mapping these to functions that don't exist. + + Signed-off-by: Alan Coopersmith + +commit 3c7ae8abe1eee1b1231f7c81e9898485940901c7 +Author: Alan Coopersmith +Date: Fri Apr 16 10:12:37 2010 -0700 + + Make libkms build default OS-dependent + + Signed-off-by: Alan Coopersmith + +commit 3506173ba7e726a9d0a17ec42734a925a885b01e +Author: Chris Wilson +Date: Sun Apr 11 18:40:38 2010 +0100 + + intel: Use the correct size when allocating reloc_target_info array + + Thomas tracked down this error with kdm and commit b509640: + + ==4320== Invalid write of size 8 + ==4320== at 0x9A97998: do_bo_emit_reloc (in /usr/lib/libdrm_intel.so.1.0.0) + ==4320== by 0x9A97B9C: drm_intel_gem_bo_emit_reloc (in /usr/lib/libdrm_intel.so.1.0.0) + ==4320== by 0xAED3234: intel_batchbuffer_emit_reloc (in /usr/lib/xorg/modules/dri/i965_dri.so) + ==4320== by 0xAF13827: brw_emit_vertices (in /usr/lib/xorg/modules/dri/i965_dri.so) + ==4320== by 0xAF1F14D: brw_upload_state (in /usr/lib/xorg/modules/dri/i965_dri.so) + ==4320== by 0xAF12122: brw_draw_prims (in /usr/lib/xorg/modules/dri/i965_dri.so) + ==4320== by 0xB256824: vbo_exec_vtx_flush (in /usr/lib/xorg/modules/dri/libdricore.so) + ==4320== by 0xB2523BB: vbo_exec_FlushVertices_internal (in /usr/lib/xorg/modules/dri/libdricore.so) + ==4320== by 0xB252411: vbo_exec_FlushVertices (in /usr/lib/xorg/modules/dri/libdricore.so) + ==4320== by 0xB195A3D: _mesa_PopAttrib (in /usr/lib/xorg/modules/dri/libdricore.so) + ==4320== by 0x8DF0F02: __glXDisp_Render (in /usr/lib/xorg/modules/extensions/libglx.xorg) + ==4320== by 0x8DF517F: __glXDispatch (in /usr/lib/xorg/modules/extensions/libglx.xorg) + ==4320== Address 0x126a8b80 is 0 bytes after a block of size 16,368 alloc'd + ==4320== at 0x4C23E03: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) + ==4320== by 0x9A97A64: do_bo_emit_reloc (in /usr/lib/libdrm_intel.so.1.0.0) + ==4320== by 0x9A97B9C: drm_intel_gem_bo_emit_reloc (in /usr/lib/libdrm_intel.so.1.0.0) + ==4320== by 0xAED3234: intel_batchbuffer_emit_reloc (in /usr/lib/xorg/modules/dri/i965_dri.so) + ==4320== by 0xAF191DB: upload_binding_table_pointers (in /usr/lib/xorg/modules/dri/i965_dri.so) + ==4320== by 0xAF1F14D: brw_upload_state (in /usr/lib/xorg/modules/dri/i965_dri.so) + ==4320== by 0xAF12122: brw_draw_prims (in /usr/lib/xorg/modules/dri/i965_dri.so) + ==4320== by 0xB255EF6: vbo_exec_DrawArrays (in /usr/lib/xorg/modules/dri/libdricore.so) + ==4320== by 0x8DF67A3: __glXDisp_DrawArrays (in /usr/lib/xorg/modules/extensions/libglx.xorg) + ==4320== by 0x8DF0F02: __glXDisp_Render (in /usr/lib/xorg/modules/extensions/libglx.xorg) + ==4320== by 0x8DF517F: __glXDispatch (in /usr/lib/xorg/modules/extensions/libglx.xorg) + ==4320== by 0x446293: ??? (in /usr/bin/Xorg) + + which is simply due to only allocating space for the pointers and not + the structs themselves. D'oh. + + Reported-by: Thomas Bächler + Signed-off-by: Chris Wilson + +commit 894c86e8400f13f1ee0dfe23ca4b5f98c32d9223 +Author: Kristian Høgsberg +Date: Fri Apr 9 16:33:38 2010 -0400 + + Revert "Fix pkgconfig includes for /usr/include/drm" + + This reverts commit 245d6957794648d7fd83279c680fed6e4c262147. + + libdrm now install headers in ${includedir}/libdrm and /usr/include/drm + is reserved for the kernel headers. We should only ever add one of these + to the CFLAGS. + +commit 204c76c4d62c06eceacd9d603f2bc3e2f8e84270 +Author: Ben Skeggs +Date: Fri Apr 9 20:38:34 2010 +1000 + + nouveau: stop shipping nouveau_class.h + + The motivation behind this is that by shipping it here, it's essentially + an API which causes issues while bisecting across changes to the header + files. + +commit 78de69713d742645c1c4347a06afca5b38f97184 +Author: Jerome Glisse +Date: Thu Apr 8 17:50:34 2010 +0200 + + drm/radeon: add new cs command stream dumping facilities + + Dump command stream + associated bo into a binary file + which follow a similar design as json file. It allows + to intercept a command stream and replay it in a standalone + program (see radeondb tools). + +commit c7650003c52ee29b7fa5ebf20dd134079f0b8488 +Author: Jesse Barnes +Date: Fri Apr 2 13:46:41 2010 -0700 + + libdrm: bump version number to 2.4.20 for release + + A few good fixes landed, get them out there. + +commit cc20ed8100834b7a5129ed403dee6c0e15d82cd1 +Author: Jerome Glisse +Date: Mon Mar 29 16:39:08 2010 +0200 + + drm/radeon: tab/whitespace cleanup + +commit e6b3f906cef26e1efb8625f5dd4e460b4c79a771 +Author: Jesse Barnes +Date: Fri Mar 26 13:13:57 2010 -0700 + + modetest: add optional select codepath + + For misc. testing. + +commit 245d6957794648d7fd83279c680fed6e4c262147 +Author: Ben Skeggs +Date: Thu Mar 25 13:34:51 2010 +1000 + + Fix pkgconfig includes for /usr/include/drm + +commit c1c8bbf80b1f734e23996bf805dc78f32ebaf56f +Author: Ben Skeggs +Date: Fri Mar 19 10:20:09 2010 +1000 + + nouveau: fix annoying compiler warning + +commit df32c307e8f81b46ee8aa4dd7222fc18f175bbb3 +Author: Ben Skeggs +Date: Fri Mar 19 10:17:19 2010 +1000 + + nouveau: fix segfault in nouveau_bo_new_tile() failure path + +commit a247fca8ba5759979607a514dbda4e4a63676889 +Author: Ben Skeggs +Date: Mon Feb 22 16:22:51 2010 +1000 + + nouveau: remove unused field from nouveau_bo + +commit 567128211511fcf3d20ccb22e65bc48508514e7a +Author: Francisco Jerez +Date: Wed Mar 17 21:40:33 2010 +0100 + + nouveau: Regenerate nouveau_class.h. + + Signed-off-by: Francisco Jerez + +commit df9737094ee821289fbf8a0297d34b77587878a4 +Author: Pauli Nieminen +Date: Wed Mar 17 22:41:08 2010 +0200 + + Check HAVE_RADEON only after checking for atomic operations. + + Fixes problem that libdrm_radeon was disabled in Makefile even when configure + claimed that radeon was enabled. + + Signed-off-by: Pauli Nieminen + +commit ef36c9a3b2828f5a11feda9e4d2708bf3a4a7a52 +Author: Eric Anholt +Date: Wed Mar 17 12:46:21 2010 -0700 + + intel: Install the header file in the libdrm/ directory. + + Suggested-by: Rémi Cardona + Signed-off-by: Eric Anholt + +commit 976e779f9cd0571dd2c218580485b39d37bd18a0 +Author: Julien Cristau +Date: Fri Feb 26 19:07:24 2010 +0100 + + Install headers to $(includedir)/libdrm + + Avoids conflicts with kernel headers. + + Signed-off-by: Julien Cristau + Reviewed-by: Rémi Cardona + Signed-off-by: Eric Anholt + +commit e73af7f560c95ba9c665bead7fc8eb1471db9975 +Author: Julien Cristau +Date: Fri Feb 26 19:07:23 2010 +0100 + + libdrm_nouveau requires libdrm + + nouveau_drmif.h includes xf86drm.h. + + Signed-off-by: Julien Cristau + Signed-off-by: Eric Anholt + +commit d271336925eee55057b6665e193b578da534a903 +Author: Julien Cristau +Date: Fri Feb 26 19:07:22 2010 +0100 + + libdrm_intel.pc: don't include ${includedir}/drm + + intel_bufmgr.h is installed in ${includedir} directly, and the other + headers are taken care of by libdrm.pc's Cflags. + + Signed-off-by: Julien Cristau + Signed-off-by: Eric Anholt + +commit 7c697b1670fe34b54a7b82d8ff0732845caa05a3 +Author: Eric Anholt +Date: Wed Mar 17 10:05:55 2010 -0700 + + intel: Align untiled buffer pitch to 64B. + + This is the largest untiled pitch requirement from gen2 through gen4. + It's only the case for gen3 rendering to color regions with depth, but + it's rare for this to be a significant factor in memory usage -- for + example, gen4 requires 1 or 2 times the element size, or up to 64 + bytes depending on the size of the elements. This is easier than + encoding all the various little quirks for untiled pitch alignment, + since we rarely do untiled now. + +commit 30ce1fd1522ef266f172321438626813b78ed14c +Author: Pauli Nieminen +Date: Wed Mar 17 14:34:53 2010 +0200 + + libdrm: Fix error message if libdrm_intel|radeon is disabled and there is no atomic ops. + +commit 966c9907c040b4fe4b288b4a9d82598797aee743 +Author: Pauli Nieminen +Date: Sat Aug 29 12:08:57 2009 +0300 + + libdrm_radeon: Optimize cs_gem_reloc to do less looping. + + bo->referenced_in_cs is checked if bo is already in cs. Adding and removing + reference in bo is done with atomic operations to allow parallel access to a + bo from multiple contexts. + + cs->id generation code quarentees there is not duplicated ids which limits + number of cs->ids to 32. If there is more cs objects rest will get id 0. + + V2: + - Fix configure to check for atomics operations if libdrm_radeon is only selected. + - Make atomic operations private to libdrm. + + This optimization decreases cs_write_reloc share of torcs profiling from 4.3% + to 2.6%. + + Tested-by: Michel Dänzer + Signed-off-by: Pauli Nieminen + +commit 21105bc186d188f0bfc2f41c52b4b0ceb6742cf5 +Author: Pauli Nieminen +Date: Wed Mar 10 13:35:59 2010 +0200 + + libdrm: Move intel_atomic.h to libdrm core for sharing. + + intel_atomic.h includes very usefull atomic operations for + lock free parrallel access of variables. Moving these to + core libdrm for code sharing with radeon. + + Signed-off-by: Pauli Nieminen + +commit df7157fe2e28796ae1f6d938b850e08c8e1d382d +Author: Francisco Jerez +Date: Sat Mar 13 18:55:09 2010 +0100 + + nouveau: Fix up the stride of NV20TCL_LIGHT_BACK_*. + + Signed-off-by: Francisco Jerez + +commit 04fd3872ee8bd8d5e2c27740508c67c2d51dbc11 +Author: Francisco Jerez +Date: Sun Mar 7 18:56:42 2010 +0100 + + nouveau: Small lighting related addition to nouveau_class.h. + + Signed-off-by: Francisco Jerez + +commit a4041e096ce0faea3dd39b4d78014d45a8cacec0 +Author: Chris Wilson +Date: Sun Mar 7 14:15:40 2010 +0000 + + intel: Repeat execbuffer if interrupted by signal + + Repeat while EINTR, not EAGAIN! One more source of corruption + erradicated, hurray! + + Signed-off-by: Chris Wilson + +commit 581cafbc2493ad97ada41f03c8dd70f9ec4bf19d +Author: Francisco Jerez +Date: Sat Mar 6 21:07:31 2010 +0100 + + nouveau: Update nouveau_class.h. + + Signed-off-by: Francisco Jerez + +commit 1d4d1e6b138aac8bd734c4c20617a43fb3337c63 +Author: Eric Anholt +Date: Thu Mar 4 16:09:40 2010 -0800 + + intel: Only align Y-tiling pitch to the Y tile width. + + Fixes piglit depth-tex-modes on gen4. + +commit 3e21e3ba0090c4dbe976269409b336dc82fe3d36 +Author: Chris Wilson +Date: Thu Mar 4 21:17:48 2010 +0000 + + intel: Propagate some more error returns + + Ensure that errors from the kernel are propagated back to the caller, + and not masked with return 0; + + Signed-off-by: Chris Wilson + +commit b5495527f4c7087d430c0d1c2b83357c40b9c16c +Author: Eric Anholt +Date: Wed Mar 3 11:10:54 2010 -0800 + + Increment version to 2.4.19 for release. + + The primary motivation of this release is to expose the new execbuf2 + Intel API. + +commit 47102863eddee2fa6e28a922c072d0243ece6afd +Author: Eric Anholt +Date: Wed Mar 3 10:07:27 2010 -0800 + + intel: Update the needs_fence flag of buffers on the validate list. + + Fixes fbo-copyteximage on i915 with texture tiling and execbuf2 fenced + relocs. + +commit 766fa7909f3a1af27e60f3529a6a3318cc406f67 +Author: Eric Anholt +Date: Tue Mar 2 16:04:14 2010 -0800 + + intel: Don't enable execbuf2 fenced relocs unless we have execbuf2. + +commit 292a5d73a244cec8f4d1042c6fec6618333c1e0e +Author: Eric Anholt +Date: Tue Mar 2 15:25:42 2010 -0800 + + intel: Don't tile-align pitch for untiled buffers. + + This allows Mesa to use drm_intel_bo_alloc_tiled() for its tiled + buffers, since it makes its decision about pitch before telling + libdrm. They happen to be the same choices for the tiled case. + +commit acbaff24e071dce0d23c057c9890f3aec732b8ec +Author: Eric Anholt +Date: Tue Mar 2 15:24:50 2010 -0800 + + intel: Fix typo in conversion from IS_GEN to bufmgr_gem->gen. + + Luckily I caught the bug with the first consumer of the interface. + +commit a0abb1b14ef60abfd1d5aacd83f06d6f94dc13a4 +Author: Eric Anholt +Date: Tue Mar 2 15:05:30 2010 -0800 + + intel: add a comment about tiled buffer alloc height alignment from Mesa. + +commit cdc788d6456645072a1610aa9217e4ebae5cfc6b +Author: Maarten Maathuis +Date: Wed Feb 24 23:10:34 2010 +0100 + + nouveau: make sure initial kalloc for user bo ends up in the right place + + - Currently reloc'ing a user bo to gart will first cause an allocation in vram, + which is then written to by cpu, then the bo gets moved to gart. + + Acked-by: Francisco Jerez + Signed-off-by: Maarten Maathuis + +commit a1f9ea765ddc5cad45e36c4931663b21992727ee +Author: Eric Anholt +Date: Tue Mar 2 08:49:36 2010 -0800 + + intel: Use an integer for chipset generation instead of many conditionals. + + Saves a bunch of comparisons in hot paths. + +commit b50964027bef249a0cc3d511de05c2464e0a1e22 +Author: Jesse Barnes +Date: Tue Sep 15 11:02:58 2009 -0700 + + libdrm/intel: execbuf2 support + + This patch to libdrm adds support for the new execbuf2 ioctl. If + detected, it will be used instead of the old ioctl. By using the new + drm_intel_bufmgr_gem_enable_fenced_relocs(), you can indicate that any + time a fence register is actually required for a relocation target you + will call drm_intel_bo_emit_reloc_fence instead of + drm_intel_bo_emit_reloc, which will reduce fence register pressure. + + Signed-off-by: Eric Anholt + +commit 9a37455b35d746d694760cfe8850a8bf856d73c9 +Author: Marcin KoÅ›cielnicki +Date: Sat Feb 27 15:04:40 2010 +0000 + + tests/modetest: Don't get_props on a connector after freeing it. + +commit 694ef59532253727176ed0ce9077ae3ec41dd457 +Author: Marcin KoÅ›cielnicki +Date: Sat Feb 27 15:04:42 2010 +0000 + + tests: vrefresh is actually not * 1000. + +commit ecb668e1efd30512d27f5bfc331e8e754b6e15ca +Author: Marcin KoÅ›cielnicki +Date: Sat Feb 27 15:04:41 2010 +0000 + + tests: Add nouveau to list of supported modules. + +commit d5a2e776826f7a849f1cf654fde8611f687eb12c +Author: Marcin KoÅ›cielnicki +Date: Sat Feb 27 16:02:25 2010 +0000 + + libkms/nouveau: Add support + +commit 23f62721b707672816ad3461e11c7453ff75810f +Author: Marcin KoÅ›cielnicki +Date: Sat Feb 27 15:04:38 2010 +0000 + + libkms/intel: Throw out unused intel_bo fields. + + Acked-by: Jakob Bornecrantz + +commit afd74ec555a61d7006db90f0c038ff026e76d303 +Author: Marcin KoÅ›cielnicki +Date: Sat Feb 27 15:04:37 2010 +0000 + + Add config.h macro HAVE_NOUVEAU + +commit f6dc964e1d4d43e4053b84b31e76d974af128276 +Author: Eric Anholt +Date: Thu Oct 22 16:37:56 2009 -0700 + + intel: Add initial support for Sandybridge, and clean up the #defines. + +commit c27ce8674deb11697e33f464dd38d24b6a117200 +Author: Francisco Jerez +Date: Thu Feb 25 18:28:18 2010 +0100 + + nouveau: Update nouveau_class.h. + + Signed-off-by: Francisco Jerez + +commit 3130f94c6ee32668cb9f0b96b6c8e308a7bb3b11 +Author: Patrice Mandin +Date: Sat Feb 20 11:57:29 2010 +0100 + + nv30: update for 8 texture units + +commit bdcd12980b5560b32a006534a7451ed6e3502c33 +Author: Patrice Mandin +Date: Sat Feb 20 11:50:37 2010 +0100 + + nv30: update for front/back stencil inversion + + Signed-off-by: Patrice Mandin + +commit a5c8f55397377994ceeb76ed0ff148ff89eb3a1b +Author: Jakob Bornecrantz +Date: Thu Feb 18 16:29:36 2010 +0100 + + libkms: Use a standard version number + +commit 97003c53f9d9ce8b13f6bde28eeb255c35f0c3bc +Author: Jakob Bornecrantz +Date: Thu Feb 18 13:27:29 2010 +0100 + + libkms: Enable by default + +commit 25c0c638c417ec0d7130b06b39af89c264b89983 +Author: Jakob Bornecrantz +Date: Thu Feb 18 13:14:07 2010 +0100 + + libkms: Add missing include file to libkms source + +commit c9cfe749f7c0a83f3ca00ab2a9aeb4afeee400db +Author: Jakob Bornecrantz +Date: Thu Feb 18 13:27:59 2010 +0100 + + vmwgfx: Update kernel header + +commit 4b6f70f20cbaccb18f122e87ac0d471356b01a59 +Author: Marek Olšák +Date: Sun Feb 14 17:57:19 2010 +0100 + + radeon: add square-tiling flag + +commit 2d9990c7e8020d28fec4f581493696087def904f +Author: Carl Worth +Date: Tue Feb 16 12:12:41 2010 -0800 + + Increment version to 2.4.18 for release. + + The primary motivation of the release is the bug fix in commit + 4f0f871730b76730ca58209181d16725b0c40184 + +commit 88e8a8bbaf026aa10225880001ab7ca1c392168a +Author: Ben Skeggs +Date: Tue Feb 16 15:42:00 2010 +1000 + + nouveau: bump MAX_PUSH to 512 + +commit b496c63143e9a4ca02011582329bce2df99d9b7c +Author: Luca Barbieri +Date: Fri Jan 29 09:53:24 2010 +0100 + + nouveau: interface changes for 0.0.16 DRM + + This commit encompasses the changes necessary to run on top of the 0.0.16 + nouveau interface, additional APIs to support the new features of the + interface, as well as code from Luca Barbieri to improve the pushbuf + interface, which just happens to break nouveau's libdrm ABI so was delayed + until now. + + API changes as a result of 0.0.16 DRM interface: + + 1. No more bo_pin()/bo_unpin(), these were only there for UMS and we no + longer support it. + + 2. Any random nouveau_bo can be submitted to the GPU as a push buffer. + + 3. Relocations can be applied on any nouveau_bo + + This patch changes the pushbuffer ABI to: + + 1. No longer use/expose nouveau_pushbuffer. Everything is directly + in nouveau_channel. This saves the extra "pushbuf" pointer dereference. + + 2. Use cur/end pointers instead of tracking the remaining size. + Pushing data now only needs to alter cur and not both cur and remaining. + + The goal is to make the *_RING macros faster and make the interface simpler + and cleaner in the process. + + The *_RING APIs are unchanged, but those are inlined and the ABI is changed. + + Also, anything accessing pushbuf->remaining instead of using AVAIL_RING + will need to be fixed. + +commit 4a17be4a86cde1065908576e44f3710f6d9d68af +Author: Alex Deucher +Date: Wed Feb 10 19:39:46 2010 -0500 + + drm: a some new connector types from the kernel + + Add eDP (embedded displayport) and generic TV + + Signed-off-by: Alex Deucher + +commit 4f0f871730b76730ca58209181d16725b0c40184 +Author: Chris Wilson +Date: Wed Feb 10 09:45:13 2010 +0000 + + intel: Handle resetting of input params after EINTR during SET_TILING + + The SET_TILING is pernicious in that it overwrites the input arguments + following an error in order to report the current tiling state of the + buffer. This caught us by surprise as we then fed those arguments back + into to the ioctl unmodified following an EINTR and so the kernel then + reported success for the no-op. We interpreted this success as meaning + that the tiling on the buffer had changed so updated our state and + started using the buffer incorrectly in the new tiled/untiled manner. + This lead to all sorts of random corruption and GPU hangs, even though + the batch buffers would look sane (when the GPU had not wandered off + into forbidden territory). + + References: + + Bug 25475 - [i915] Xorg crash / Execbuf while wedged + http://bugs.freedesktop.org/show_bug.cgi?id=25475 + + Bug 25554 - i830_uxa_prepare_access: gtt bo map failed: Input/output error + http://bugs.freedesktop.org/show_bug.cgi?id=25554 + + (And probably every other weird bug in the last few months.) + + Signed-off-by: Chris Wilson + +commit fdcde592c2c48e143251672cf2e82debb07606bd +Author: Chris Wilson +Date: Tue Feb 9 08:32:54 2010 +0000 + + intel: Account for potential pinned buffers hogging fences + + As the kernel reports the total number of fences, we must guess how many + fences are likely to be pinned. In the typical system these will be only + used by the scanout buffers, of which there may be one per pipe, and any + number of manually pinned fenced buffers. So take a conservative guess + and reserve two fences for use by the system. + + Note this reduces the number of fences to 3 for i915 and prior. + + Reference: + http://bugs.freedesktop.org/show_bug.cgi?id=25911 + The latest intel driver 2.10.0 causes kernel oops and system hangs + + Signed-off-by: Chris Wilson + +commit e4a519635f75bde38aeb5b09f2ff4efbf73453e9 +Author: Matthew W. S. Bell +Date: Sat Jan 30 02:14:44 2010 +0000 + + Tidy up compile warnings by cleaning up types. + +commit 1802e1a4e747b5906d3af10c4a53fd457eddcbb4 +Author: Pauli Nieminen +Date: Mon Feb 1 20:19:33 2010 +0200 + + libdrm/radeon: Fix section size mismatch to reset the section. + + If there is section size mismatch reusing the section object + makes section start fail. + Reseting the object before doing error checking prevents the + possible flood of errors. + +commit 520c658706aa896d64f374cc74065394111f6122 +Author: Dave Airlie +Date: Tue Feb 2 10:58:50 2010 +1000 + + radeon: enable by default now that kms is out of staging + +commit 973d8d6bd04230da801a8bc19af41dbc60e1918d +Author: Dave Airlie +Date: Tue Feb 2 10:57:12 2010 +1000 + + intel: check return value for calloc + +commit 53e261c01db9beae3648ec675513b7ed662735f5 +Author: Francisco Jerez +Date: Sun Jan 31 17:47:50 2010 +0100 + + nouveau: Regenerate nouveau_class.h. + + Signed-off-by: Francisco Jerez + +commit 55ba98fadfb8909d23d6f810285504abd173f0ad +Author: Marcin Slusarz +Date: Tue Jan 12 15:31:28 2010 +0100 + + nouveau: add nouveau_resource_destroy + + Signed-off-by: Francisco Jerez + +commit 44a0e0a099eeeb6501359f08449dcaa5e9899398 +Author: Jakob Bornecrantz +Date: Sat Jan 23 01:41:49 2010 +0000 + + libkms: Rework interface to not duplicate fields from kms and make formats explicit + + List of changes: + Fixes the cursor size to 64x64, you still need ti supply width and height + Explicitly make the cursor format A8R8G8B8 + Explicitly make the scanout format X8R8G8B8 + +commit f2730574f2d204eee62d6f37aa56567bd2d94a26 +Author: Marcin KoÅ›cielnicki +Date: Tue Jan 26 18:39:21 2010 +0000 + + nouveau: Update nouveau_drm.h + +commit dfa72978609d923ab6dfb76083c56b25e8a049df +Author: Jakob Bornecrantz +Date: Sat Jan 23 01:38:18 2010 +0000 + + libkms: Fix return value in vmwgfx_bo_create + +commit 7b328122981a23f874105f333a5ec14ce887b0a8 +Author: Ben Skeggs +Date: Thu Jan 21 15:17:26 2010 +1000 + + nouveau: fail channel creation if pushbuf init fails + +commit 9de34e2dbf5a4b3df6773460071944248cf4d571 +Author: Chris Wilson +Date: Wed Jan 20 10:42:46 2010 +0000 + + intel: Add pkg-config dependency on libdrm.so using 'Requires' + +commit dc1ed9952e639f3d5fb41401598d28c4a97f5a1c +Author: Alan Coopersmith +Date: Sat Jan 16 19:34:13 2010 -0800 + + Support gcc's __FUNCTION__ for people using other compilers + + Signed-off-by: Alan Coopersmith + +commit b1ce1e6bfbb65cca3230762cf99d4c0775561781 +Author: Alan Coopersmith +Date: Sat Jan 16 19:28:50 2010 -0800 + + Add support for Solaris libc atomic operations + + Signed-off-by: Alan Coopersmith + +commit fe7b93fb493b76ade13ad74438acbc4d34d2f3bd +Author: Alan Coopersmith +Date: Wed Dec 16 15:03:58 2009 -0800 + + Include alloca.h in tests/drmstat.c when configure detects it + + Signed-off-by: Alan Coopersmith + +commit 3d3d87f3a70089f645facb2bff5a0b93ec0a0efd +Author: Marcin Slusarz +Date: Tue Jan 12 15:38:29 2010 +0100 + + nouveau: disable flush_notify on channel_free + + We don't want do call flush_notify when we will FIRE the RING + a couple of lines later, because grobj bound to this channel + might be already freed. + +commit a03dcc21040775e660afcfc3dc37a324d2dd2ed3 +Author: Marcin Slusarz +Date: Tue Jan 12 15:32:39 2010 +0100 + + nouveau: fix memory leak in nouveau_channel_free + +commit 2959266188dd564975503d74e24b55013f58f861 +Author: Jakob Bornecrantz +Date: Fri Jan 15 20:13:20 2010 +0000 + + libkms: Fix multiple map unmap in vmwgfx and add comment in intel + +commit 320811b282d7f57b364f8414e2e7b714f89b0503 +Author: Jerome Glisse +Date: Thu Jan 14 20:01:55 2010 +0100 + + radeon: get device id from the kernel, use it in cs_print + + This allow external tools to know for which asics a cs + is destinated to. + +commit 2612371a626337452e598a3339355bf980f5be38 +Author: Jerome Glisse +Date: Thu Jan 14 12:28:20 2010 +0100 + + radeon: simpler cs print function + + We don't intend libdrm-radeon to become clever enough to + decode cs for all GPU we support. Better to let an external + tool do the job. This will print raw cs in an easy to parse + way. + +commit 74937cda177363ff4ede9e2b4ea2bec04cda892e +Author: Jerome Glisse +Date: Thu Jan 14 11:28:25 2010 +0100 + + radeon: indentation + trailing space cleanup + +commit 6bf1ed2979ca56d3e8dd8938fc08e3810887ae8a +Author: Jerome Glisse +Date: Thu Jan 14 11:24:16 2010 +0100 + + radeon: indentation & trailing space cleanup + +commit b06cb754a1eee0746c40f62c51d4f0544c39c843 +Author: Jerome Glisse +Date: Thu Jan 14 11:08:43 2010 +0100 + + radeon: indentation + trailing space cleanup + +commit 06a2d6567e5aadc2e109942f71afae76a8398969 +Author: Jakob Bornecrantz +Date: Tue Jan 12 22:35:28 2010 +0100 + + tests: Update kmstest a bit + +commit d920fa9d0b54873d53f03a006d0fe3df11136b74 +Author: Jakob Bornecrantz +Date: Tue Jan 12 17:53:49 2010 +0000 + + libkms: Use sysfs instead of udev to find driver + + Udev code is still there just commented out. + +commit d207a38701d664ac818829249d4d2566349bb359 +Author: Jakob Bornecrantz +Date: Fri Jan 8 15:34:44 2010 +0000 + + tests: Add a very small libkms test + +commit 8838bb1d63bdb8ffa808cd41b7e0ffd2e62ff7bc +Author: Jakob Bornecrantz +Date: Fri Jan 8 15:19:44 2010 +0000 + + libkms/intel: Don't fail to create bo if we fail to tile + +commit 5963c023b84daaacb91ae0aa4cf841acff63fd1f +Author: Francisco Jerez +Date: Fri Jan 8 04:34:39 2010 +0100 + + nouveau: Update nouveau_class.h. + + Signed-off-by: Francisco Jerez + +commit bfa44bb8610f51d84b8d23f8c5ce903689d239c6 +Author: Jakob Bornecrantz +Date: Fri Jan 8 03:00:56 2010 +0000 + + libkms: Add intel backend + +commit 9042d72109d8ae448b8e0f23b93067cc37deff23 +Author: Jakob Bornecrantz +Date: Fri Jan 8 02:51:04 2010 +0000 + + libkms: Pick driver backend via pci id that we get from udev + +commit 04f90a44709a48fb932ea954011cb551659bf246 +Author: Peter Clifton +Date: Wed Jan 6 20:44:11 2010 +0000 + + modes: Retry GETCONNECTOR if a hotplug event occurs between the two ioctls + + If the available modes changes between the two GETCONNECTOR ioctls, that + caused the kernel to skip filling one array and led to a crash (as the size + of the allocated and initialised block of memory differed from the reported + size, and might be NULL if no modes were present at first). + + This bug manifest its self on my machine due to spurious false positive + detections of a connected TV-out. + + Fixes: http://bugs.freedesktop.org/show_bug.cgi?id=25912 + Crash whilst probing modes + + Based upon the similar fixes for the GETRESOURCES ioctls by Chris Wilson, + in the following commits: + + commit e6c136ca7a4c54457b48be1aec2be024b3e4a28d + commit 85fb3e55fdb7af9b5f59c1ec0f15d1950e601b05 + commit d1308f4fe7f94aae51ca9f70947aea8e09597f37 + + Signed-off-by: Peter Clifton + Signed-off-by: Chris Wilson + +commit e6c136ca7a4c54457b48be1aec2be024b3e4a28d +Author: Chris Wilson +Date: Wed Jan 6 16:53:33 2010 +0000 + + modes: Fix previous commit for potential legal NULLs + + If the count is 0, then the malloc is permitted to return NULL, so don't + throw an error in that case. + + Signed-off-by: Chris Wilson + +commit 85fb3e55fdb7af9b5f59c1ec0f15d1950e601b05 +Author: Chris Wilson +Date: Wed Jan 6 15:39:49 2010 +0000 + + modes: Free local resources after allocation failure in GETRESOURCES + + Signed-off-by: Chris Wilson + +commit d1308f4fe7f94aae51ca9f70947aea8e09597f37 +Author: Chris Wilson +Date: Wed Jan 6 15:19:25 2010 +0000 + + modes: Retry GETRESOURCES if a hotplug event occurs between the two ioctls + + Peter Clifton hit an issue whereby he had a spurious TV hotplug event + that occurred between the two GETRESOURCES ioctls that caused the kernel + to skip filling one array and led to a crash (as the size of the + allocated and initialised block of memory differed from the reported + size). + + Fixes: http://bugs.freedesktop.org/show_bug.cgi?id=25912 + Crash whilst probing modes + + Signed-off-by: Chris Wilson + Reported-by: Peter Clifton + +commit 5dbc1b333b85695735dc5b484372758b9979b693 +Author: Jakob Bornecrantz +Date: Tue Jan 5 20:55:02 2010 +0100 + + libkms: Make vmwgfx optional + +commit dfbaffea07ba785d5a2d5493282f416488e217cc +Author: Jakob Bornecrantz +Date: Tue Jan 5 21:04:57 2010 +0100 + + libkms: Remove duped vmwgfx_drm.h header + +commit 2f7f7ceccab4176217c399502b3ff95df1517627 +Merge: d6059c3 6d3b8bb +Author: Jakob Bornecrantz +Date: Tue Jan 5 20:59:24 2010 +0100 + + Merge branch 'master' into libkms-master + + Conflicts: + configure.ac + +commit d6059c3dd1300662e941ccd5e55649534fbb9a63 +Author: Jakob Bornecrantz +Date: Tue Jan 5 20:58:37 2010 +0100 + + libkms: Disable by default + +commit 6d3b8bbddd44b42d89adb1aafb7645e7f802673a +Author: Jakob Bornecrantz +Date: Tue Jan 5 19:53:10 2010 +0100 + + vmwgfx: Add experimental vmwgfx kernel header + +commit c5c503b519777fb9ebbaa22681a1ed81717c1d71 +Author: Marcin Slusarz +Date: Wed Dec 30 21:32:40 2009 +0100 + + nouveau: add BEGIN_RING_NI + +commit cd2e4ba9aac65d10cf790990a8b86feed1cdd774 +Author: Younes Manton +Date: Mon Dec 28 18:00:09 2009 -0500 + + nouveau: Unreference pushbuf objects on channel destruction. + + - unreference pushbuf objects on channel destruction + + Based on Krzysztof Smiechowicz's patch. + +commit cb1caaaa05ba96b98bf9af1190f6830d8b0608bc +Author: Francisco Jerez +Date: Mon Dec 28 18:01:42 2009 +0100 + + nouveau: Update some object definitions from renouveau.xml. + + Signed-off-by: Francisco Jerez + +commit 5fd00ddc9f35ac99c93a40d34a5d5019b91e8750 +Author: Marcin KoÅ›cielnicki +Date: Tue Nov 24 17:23:54 2009 +0000 + + nouveau: Update nouveau_class.h with new renouveau.xml definitions. + + Signed-off-by: Francisco Jerez + +commit fdb33d56de3edf27f24c6db0e6beaed823f7bc38 +Author: Dave Airlie +Date: Mon Dec 21 15:03:31 2009 +1000 + + libdrm 2.4.17 + +commit 6de39fc73050a386a39c53e522098a0a784e7ff8 +Author: Dave Airlie +Date: Mon Dec 21 14:59:48 2009 +1000 + + radeon: fix BO null check, should be in higher level fn + +commit 125994ab30d4f0f126c62fa741ec62a52d69d7a8 +Author: Dave Airlie +Date: Thu Dec 17 14:11:55 2009 +1000 + + radeon: straighten out the API insanity. + + as Michel pointed out we are exposing too much info for these object + for this to be maintainable going forward. + + This patch set minimises the exposed parts of the radeon_bo and + radeon_cs objects to the piece necessary for ddx/mesa to operate + at a decent speed. + + The major problem is mesa contains a legacy BO/CS managers which we still + need to expose functionality to, and we really cannot change the API + until we can drop the non-KMS codepaths. + + Signed-off-by: Dave Airlie + +commit f1660c249198b5cc14ebbb75107da7bcb6972033 +Author: Ben Skeggs +Date: Thu Dec 17 13:07:18 2009 +1000 + + nouveau: remove delayed kernel bo creation + + Signed-off-by: Ben Skeggs + +commit fbc8b2d95f5da096ee771a3e2ef6f89306679e89 +Author: Kristian Høgsberg +Date: Wed Dec 9 10:37:40 2009 -0500 + + Be less chatty in drmSetMaster/drmDropMaster + +commit 59d97e7d6807d9cd076d4e8374aca1d9e8027a6b +Author: Kristian Høgsberg +Date: Wed Dec 9 10:36:53 2009 -0500 + + modetest: Error out if pageflipping is requested but not available + +commit 77ddc785660c4ff73706758124744f80e1734812 +Author: Jakob Bornecrantz +Date: Mon Dec 14 22:53:10 2009 +0100 + + vmwgfx: Fetch the latest header + +commit edc77dd291594e017ca0ee96a785412107ebff74 +Author: Ben Skeggs +Date: Wed Dec 9 14:50:15 2009 +1000 + + nouveau: Use drmIoctl so we restart ioctl on EINTR or EAGAIN + + Signed-off-by: Ben Skeggs + +commit 7c82527b4fd4ec1642be20d8bba2d10f045c87ef +Author: Ben Skeggs +Date: Wed Dec 9 13:15:07 2009 +1000 + + nouveau: move reloc code down, nothing to see here + + Signed-off-by: Ben Skeggs + +commit 08371bc29013370558728dcbeeed6a23ad2f5a70 +Author: Chris Wilson +Date: Tue Dec 8 22:35:24 2009 +0000 + + intel: Clear virtual after failing to mmap_gtt. + + Don't store the error return in bo_gem->gtt_virtual or else we will + attempt to use that as a valid pointer in future mappings. + + Signed-off-by: Chris Wilson + +commit 201f5795a26ae7b5580a35b24f4e89e5cd3455b1 +Author: Jakob Bornecrantz +Date: Fri Dec 4 16:06:42 2009 +0100 + + libkms: Change destroy api a bit + +commit 8c0571a73399c372644c8d92a136a474f3e05d48 +Author: Jakob Bornecrantz +Date: Tue Nov 24 17:54:10 2009 +0100 + + libkms: Add libkms + +commit 28eae30689610faa0fe043ab869587e7699e82bf +Author: Jakob Bornecrantz +Date: Fri Dec 4 16:07:51 2009 +0100 + + Ignore config.h.in + +commit b84314a86ea4ad30e0f57a71b4ef0fa138fb24c6 +Author: Jerome Glisse +Date: Mon Dec 7 18:30:52 2009 +0100 + + radeon: Use drmIoctl so we restart ioctl on EINTR or EAGAIN + + This is needed as change in kernel will lead to ioctl returning + EINTR if they are interrupted. + + Signed-off-by: Jerome Glisse + +commit 9707733a130098a7d9959e72ebd782d8119a23d3 +Author: Chris Wilson +Date: Tue Dec 1 23:01:34 2009 +0000 + + intel: Expect caller to guarantee thread-safety of bo during reloc + + This removes the foremost prolific user of mutexes in libdrm_intel.so. + The other uses of the bufmgr_gem->mutex to serial access to individual + bos are currently required by Mesa, and are far less frequent. + + Signed-off-by: Chris Wilson + [anholt: This chunk looks good...] + Acked-by: Eric Anholt + +commit 6f1eba0548cd6a96e91a4e8be7b91ba6a936eb98 +Author: Jesse Barnes +Date: Fri Dec 4 09:09:19 2009 -0800 + + modetest: fix build error due to page_flip_handler name change + + Forgot to update this when pushing the pageflip bits. + +commit 3bd834a2178ee1273fd84628e87210a500f8fc84 +Merge: be957cc ac5595a +Author: Jakob Bornecrantz +Date: Wed Dec 2 19:40:58 2009 +0100 + + Merge branch 'modesetting-dirty-libdrm' + + Conflicts: + include/drm/drm.h + +commit be957cc219d0811e2d1ed2a56549a03cb64a0f4b +Author: Kristian Høgsberg +Date: Thu Dec 3 17:49:31 2009 -0500 + + Add RELEASING to document the release process + +commit 14f5958f7fd9ebe8a772ea931feb044d2d5d967b +Author: Jesse Barnes +Date: Thu Dec 3 14:20:51 2009 -0800 + + Bump event context structure version for page flipping + +commit 53addc5d6ef7406d9fab5ea481cf68fa011870f1 +Merge: db50f51 ee746a8 +Author: Jesse Barnes +Date: Thu Dec 3 14:17:26 2009 -0800 + + Merge branch 'pageflip' of git://people.freedesktop.org/~jbarnes/drm + + Conflicts: + include/drm/drm.h - RMFB had its signature changed to avoid uint32_t + +commit db50f5127421ac8f4e3ce4eb7c27d27475781488 +Author: Kristian Høgsberg +Date: Thu Dec 3 11:31:27 2009 -0500 + + Bump to 2.4.16 for release + +commit bef7f88de9a1f40ec82cfd4d80c73802c640e5ed +Author: Kristian Høgsberg +Date: Thu Dec 3 11:27:16 2009 -0500 + + Enable experimental APIs for distcheck + +commit ac5595abc1c28b2c10a1463143e83d17415736f1 +Author: Jakob Bornecrantz +Date: Wed Dec 2 19:39:16 2009 +0100 + + Change the number on the dirty ioctl to match upstream + +commit 57473c7f523f476ffa54c34e0c6312ffa66dcc5c +Author: Chris Wilson +Date: Wed Dec 2 13:36:22 2009 +0000 + + intel: Free memory before inserting bo into cache. + + This has the unfortunate behaviour of releasing our malloc cache, but + the alternative is for X to consume a couple of gigabytes of ram and + die during testing. Fortunately the extra mallocs have little impact on + performance whereas avoiding swap and death, lots. + + Signed-off-by: Chris Wilson + +commit 792fed1e2460f96459141b5a628dd5ab4fbb87db +Author: Chris Wilson +Date: Wed Dec 2 13:12:39 2009 +0000 + + intel: Check and propagate errors from building reloc-tree + + Instead of forcing the caller to check after every emit_reloc(), we can + flag the object as being in error, propagating that error upwards through + the relocation tree, and failing the eventual batch buffer execution. + + Signed-off-by: Chris Wilson + +commit b73612e4fd69565aa2c5c2e9677f3e0af1945f7d +Author: Chris Wilson +Date: Wed Dec 2 12:58:00 2009 +0000 + + intel: Repeat execbuffer after EINTR + + EAGAIN cannot be raised by the current code, but the system call maybe + interrupted and so return EINTR. + + Signed-off-by: Chris Wilson + +commit acb4aa671507aa181b3ff50ccf26a1c0d705a309 +Author: Chris Wilson +Date: Wed Dec 2 12:40:26 2009 +0000 + + intel: Review use of errno. + + Hitting this error lead to a segfault: + + intel_bufmgr_gem.c:919: Error mapping buffer 48607 (pixmap): + Cannot allocate memory. + + because the errno was reused as the function return value after being + reset by the fprintf(), so caller thought the mapping had succeeded. The + convention established by libdrm is that the return value is the + negative errno and that uses of libdrm cannot trust the value of errno + afterwards, but must use the return code. + + Signed-off-by: Chris Wilson + +commit 9fec2a8cb28d814da4fdd97b25e9cc5c10768c87 +Author: Chris Wilson +Date: Wed Dec 2 10:42:51 2009 +0000 + + intel: Make bo_reference() inline for internal use. + + Signed-off-by: Chris Wilson + +commit 9c8ad05e8bb1c954b804e40f2f975fed23c24550 +Author: Chris Wilson +Date: Wed Dec 2 10:41:39 2009 +0000 + + intel: Remove the extra reference while validating the reloc tree + + Buffers on the relocation tree are guarded by the reference to the batch + object and so do not need an extra reference whilst constructing the + list of execution buffer objects. + + Signed-off-by: Chris Wilson + +commit 8ffd2e142e38d19326a40ff66dc99d052ce22100 +Author: Chris Wilson +Date: Tue Dec 1 13:08:04 2009 +0000 + + intel: Wrap a few more syscalls with EINTR protection + + Having been bitten by a missing EINTR check during mmap_gtt(), I thought + it prudent to add some more protection around the ioctls. + + Signed-off-by: Chris Wilson + +commit b666f4151ab934d3083fa8b5f14ce19bbf999b15 +Author: Chris Wilson +Date: Mon Nov 30 23:07:19 2009 +0000 + + intel: Clear bo->used_as_reloc_target flag on destroy + + This allows us to keep the assert added in the previous commit that we do + not modify the tree_reloc_size after inserting the buffer into a relocation + tree, which was being hit here: + + #0 0xb78c2424 in __kernel_vsyscall () + #1 0xb74f6401 in raise () from /lib/libc.so.6 + #2 0xb74f7b42 in abort () from /lib/libc.so.6 + #3 0xb74ef5a8 in __assert_fail () from /lib/libc.so.6 + #4 0xb737e78b in drm_intel_bo_gem_set_in_aperture_size (bufmgr_gem=, bo_gem=0x6) at intel_bufmgr_gem.c:373 + #5 0xb737f519 in drm_intel_gem_bo_set_tiling (bo=0xa1030a0, tiling_mode=0xbff6c85c, stride=0) at intel_bufmgr_gem.c:1386 + #6 0xb737f67f in drm_intel_gem_bo_unreference_final (bo=0xa1030a0, time=) at intel_bufmgr_gem.c:768 + #7 0xb737f5e3 in drm_intel_gem_bo_unreference_locked_timed (bo=0xa1e50d0, time=) at intel_bufmgr_gem.c:805 + #8 drm_intel_gem_bo_unreference_final (bo=0xa1e50d0, time=) at intel_bufmgr_gem.c:756 + #9 0xb737fcbb in drm_intel_gem_bo_unreference (bo=0xa1e50d0) at intel_bufmgr_gem.c:821 + #10 0xb737b4e6 in drm_intel_bo_unreference (bo=0x0) at intel_bufmgr.c:80 + #11 0xb7325625 in intel_batch_flush (scrn=0x9d91f78, flush=1) at i830_batchbuffer.c:200 + + Signed-off-by: Chris Wilson + +commit e22fb797728c07fd05b195bd345fdf91bab47855 +Author: Chris Wilson +Date: Mon Nov 30 22:14:30 2009 +0000 + + intel: Apply pessimistic alignment to in-aperture buffer size + + For the older chipsets, i.e. pre-i965, which have severe alignment + restrictions for tiled buffers we need to pessimistically assume that we + will waste the size of buffer to meet those alignment constraints. + + Signed-off-by: Chris Wilson + +commit 60aa803dc76bbdfac72da4de4cdc3018717b0884 +Author: Chris Wilson +Date: Mon Nov 30 20:02:05 2009 +0000 + + intel: Only store a buffer in the cache if it is retained. + + If the kernel immediately frees the backing store for a buffer when + marking it purgeable, then there is not point adding to the cache. Free + it immediately, instead. + + Signed-off-by: Chris Wilson + +commit 019a408a69896497ca728b703c349306efd1a225 +Author: Jakob Bornecrantz +Date: Mon Nov 30 00:40:51 2009 +0000 + + Change the dirty ioctl a bit and comment it + +commit 3e48613b482a8ca01ea5719e9cc342a9d4b28db0 +Author: Jakob Bornecrantz +Date: Tue Nov 24 18:00:12 2009 +0100 + + Bring dirty code from old branch + +commit 6f66de982ad6ee6967ec61a7399e600bdd9e5887 +Author: Robert Noland +Date: Wed Nov 25 15:09:24 2009 -0600 + + Correctly set DRM_MAX_MINOR for all platforms. + + DRM_MAJOR is platform specific, but not used outside of xf86drm.c + that I can find. + +commit 9558f6377ffee680d6bec0808bc113b3139b0d5f +Author: Alex Deucher +Date: Tue Nov 24 15:03:32 2009 -0500 + + Add missing DRM_MAX_MINOR define + + lost in 500f5b524000ed5930301f4303744cb4c0a19b75 + + Signed-off-by: Alex Deucher + +commit 82bf52fbcdf1e71840c2024bb2bc05a8daeaafad +Author: Robert Noland +Date: Tue Nov 24 10:31:41 2009 -0600 + + More fixups to allow mesa to build + +commit 170674a606f6d7869b5fa4457c07e10dd27f2771 +Author: Robert Noland +Date: Tue Nov 24 09:27:29 2009 -0600 + + Finish fixing the build on FreeBSD + +commit 22d46669043d38fcd16efca773f5ed5693c0fb58 +Author: Kristian Høgsberg +Date: Mon Nov 23 20:51:34 2009 -0500 + + Add drmGetDeviceNameFromFd function + + Determines the /dev filename of the drm fd argument. + +commit 500f5b524000ed5930301f4303744cb4c0a19b75 +Author: Kristian Høgsberg +Date: Mon Nov 23 18:25:08 2009 -0500 + + Fix build on *BSD + + This adds a minimal #ifdef clause to drm.h that we'll push upstream. + Once that goes in we can share drm.h between linux, libdrm, and + the bsd's. + +commit 863e39b56eea0ef95f9bde648fe4868d0b8e3f11 +Author: Kristian Høgsberg +Date: Mon Nov 23 12:38:40 2009 -0500 + + Don't hardcore 'yes', use in configure.ac output + + Oops, I assumed intel was always enable, but it just defaults to on. + +commit 696fdb11f447b1e77803c4a15ad7062bfb79f0f0 +Author: Kristian Høgsberg +Date: Mon Nov 23 11:41:15 2009 -0500 + + Output summary of enabled features at the end of configure.ac + +commit dd6cbe7acb1708a1aa8e101c6ddb80205bd1f63b +Author: Kristian Høgsberg +Date: Mon Nov 23 11:25:46 2009 -0500 + + Drop duplicated radeon_*.h files in include/drm + + These files are userspace headers and live in radeon/ + +commit 6b3cbe7655ee7746c4418e1fb8af136774420dbd +Author: Kristian Høgsberg +Date: Fri Nov 20 20:17:26 2009 -0500 + + Put mach64_drm.h back in to avoid breaking mesa build + + We may want to drop mach64 from mesa instead, but that's a different + discussion. + +commit 4f070d593cfc60b18c6ccb85af785b00ffb51db4 +Author: Kristian Høgsberg +Date: Fri Nov 20 19:42:59 2009 -0500 + + Install kernel headers in ${includedir}/drm + +commit 3a87b1f497cc201a6c37fcd779019560ab7746ae +Author: Pekka Paalanen +Date: Sat Nov 21 01:00:36 2009 +0200 + + nouveau: fix DRM headers + + The nouveau_drmif.h is not the Nouveau DRM kernel ABI file, but purely + user space stuff. Remove it, it does not belong in include/drm/. + + Copy the right header from Nouveau kernel v2.6.31-rc9-757-gaca551c. + + Signed-off-by: Pekka Paalanen + +commit ee746a83cecd99d4c380fbc5d391399a6d9fde9e +Author: Jesse Barnes +Date: Tue Nov 17 21:39:17 2009 +0000 + + Bump libdrm version to 2.4.16 for page flipping + +commit 1e1b3c0a93281ce8df42bbdddfe3e51dccc4d5ea +Author: Kristian Høgsberg +Date: Tue Nov 17 15:32:23 2009 -0500 + + modetest: add pageflip test case to modetest + +commit b80bcffba6175c53ebe1f1bd02730de0338cc039 +Author: Kristian Høgsberg +Date: Thu Nov 12 14:06:45 2009 -0500 + + libdrm: add libdrm support for page flip ioctl + +commit 10ce0ec18806ae32a5d615c693626a085b0dd7b8 +Merge: 1b064cc b4312b6 +Author: Kristian Høgsberg +Date: Fri Nov 20 17:09:03 2009 -0500 + + Merge remote branch 'origin/master' into libdrm + +commit 1b064cc428f03f753699d4d9fbe60453891a8529 +Author: Kristian Høgsberg +Date: Fri Nov 20 17:08:28 2009 -0500 + + Update README + +commit b4312b639d56a6cad78953af0fd4f863182007e3 +Author: Maciej Cencora +Date: Wed Nov 18 16:07:13 2009 -0500 + + libdrm_radeon: add radeon_bo_is_referenced_by_cs function + + Signed-off-by: Alex Deucher + +commit 2577764a5069ca9276e90154915797bcf873adab +Author: Jesse Barnes +Date: Tue Nov 17 20:07:48 2009 +0000 + + drm/i915: add GETPARAM request for page flipping + +commit e8523e087fc5dfe15b0e1af9b30d1ddac5d0314c +Author: Kristian Høgsberg +Date: Tue Nov 17 11:15:56 2009 -0500 + + Drop stale TODO and unused ChangeLog + +commit 4f57abfe66091281c9f59c14e6ea27b524b55d5b +Author: Kristian Høgsberg +Date: Tue Nov 17 11:14:54 2009 -0500 + + Move libdrm/ up one level + +commit 9dd3613073aa2491cef440725fdfa0cf1e8f1a42 +Author: Kristian Høgsberg +Date: Tue Nov 17 09:46:56 2009 -0500 + + Drop shared-core, bsd-core, linux-core and scripts subdirs + +commit a66cf9ce68bdf9bd887f91a38ced4b59c129b3c7 +Author: Kristian Høgsberg +Date: Tue Nov 17 09:46:39 2009 -0500 + + Use headers copied from kernel instead of shared-core + +commit ba79b1a8c2ea354c89371b5e34e0077f6ecaaa63 +Author: Kristian Høgsberg +Date: Tue Nov 17 09:39:23 2009 -0500 + + Fix typo in i915 pipe_from_crtc_id ioctl struct name + +commit 2b42af9a2fd8e35e920d61a212ce6b9c85354289 +Author: Kristian Høgsberg +Date: Tue Nov 17 09:23:59 2009 -0500 + + Copy headers from kernel v2.6.32-rc6-130-g5b8f0be + +commit a99680384ad3daaceee05b3b40dc492cf0e52a0f +Author: Kristian Høgsberg +Date: Tue Nov 17 09:23:52 2009 -0500 + + Add makefile rule to copy headers from kernel tree + +commit c20706ffe56cc658a4814f89e391c14f6065ec57 +Author: Francisco Jerez +Date: Sun Nov 15 04:10:02 2009 +0100 + + nouveau: Update some nouveau_class.h definitions from renouveau.xml. + + Signed-off-by: Francisco Jerez + Signed-off-by: Pekka Paalanen + +commit 83a35b68f45cebc70152e55ed3f99db485c9a7cd +Author: Chris Wilson +Date: Wed Nov 11 13:04:38 2009 +0000 + + intel: Export madvise + + Wrap the madvise ioctl for use in APPLE_object_purgeable. + + Signed-off-by: Chris Wilson + Acked-by: Jesse Barnes + +commit 89cc98c0d5c1b43a883f13210c472339dde1a4cf +Author: Julien Cristau +Date: Sat Oct 31 02:25:44 2009 +0100 + + Only install libdrm_intel.pc if we build libdrm_intel + +commit b7ed162d2912d53d03d94f9ceaebf7d96d570c04 +Author: Ben Skeggs +Date: Wed Nov 4 17:31:18 2009 +1000 + + nouveau: turn another assertion into an error + + Signed-off-by: Ben Skeggs + +commit f4c50630269df4201b89a538cbf8e11646f17d82 +Author: Ben Skeggs +Date: Wed Nov 4 15:23:53 2009 +1000 + + nouveau: modify api slightly to allow caller to handle reloc failures + + Signed-off-by: Ben Skeggs + +commit a8bdf0e00c0653fd343fd7fd64b5f2e8437bb130 +Author: Ben Skeggs +Date: Tue Oct 27 14:32:40 2009 +1000 + + nouveau: add reloc refcnt to pending bo list + + Signed-off-by: Ben Skeggs + +commit 63910f8aa624be5f2eaa78e08a318d388a22f829 +Author: Ben Skeggs +Date: Tue Nov 3 13:14:32 2009 +1000 + + nouveau: drop rendering on the floor rather than asserting if flush fails + + Signed-off-by: Ben Skeggs + +commit 68c2ac9640a59881d18e2d55f666c2cd4c21e00b +Author: Ben Skeggs +Date: Mon Nov 2 18:49:40 2009 +1000 + + nouveau: update view of available aperture space after each flush + + Signed-off-by: Ben Skeggs + +commit 6eafd1cf386d93bb9e34660227ca6f26aadfeb32 +Author: Mathias Fröhlich +Date: Tue Nov 3 11:41:26 2009 -0500 + + radeon: fix allocation + + The old code increments the command stream size by another kbyte, but does + not make sure that the requested packet size fits into the stream. The patch + ensures that the whole next packet fits there and rounds the allocated size to + a power of two. + + Signed-off-by: Alex Deucher + +commit b0b96636dbf93445dd532b09b21fa4fc5ce6bdc7 +Author: Kristian Høgsberg +Date: Fri Sep 11 13:27:35 2009 -0400 + + Add support for vblank events + + The kernel will now write data to the DRM fd for various event types if + requested. Currently, the only supported event is a vblank event: it contains + the vblank count for the event as well as a timestamp from when the event + ocurred. Since the DRM fd is now pollable, it's easy to integrate into + existing event loops. + +commit 0d7ad7e43ca212b1e9f16cd18f36493cab455e61 +Author: Eric Anholt +Date: Tue Oct 20 14:19:38 2009 -0700 + + intel: Only call clock_gettime once per unreference_final. + + Notably when freeing a batchbuffer, we often end up freeing many of the + buffers it points at as well. Avoiding repeated calls brings us a 9% CPU + win for cairo-gl. + + [ # ] backend test min(s) median(s) stddev. count + before: + [ 0] gl firefox-talos-gfx 58.941 58.966 0.75% 3/3 + after: + [ 0] gl firefox-talos-gfx 54.186 54.195 0.49% 3/3 + +commit 66d2714f5435944a26685be4210e0e0d7138f3db +Author: Eric Anholt +Date: Tue Oct 20 13:20:55 2009 -0700 + + intel: Improve bo_references performance by skipping the tree walk. + + If the target we're asking about hasn't ever been used as a relocation + target, then it obviously hasn't been used as a target by the batch's reloc + tree. This is the common case for good GL programming where you only map + fresh buffers, and gives us a 5% win in cairo-gl. + + [ # ] backend test min(s) median(s) stddev. count + before: + [ 0] gl firefox-talos-gfx 64.680 64.756 0.06% 3/3 + after: + [ 0] gl firefox-talos-gfx 60.816 60.970 0.29% 3/3 + +commit 67628aa39dd74807989492af5451a3a5c0232e39 +Author: Ben Skeggs +Date: Tue Oct 20 12:57:46 2009 +1000 + + nouveau: retry if pushbuf ioctl interrupted by signal + + Signed-off-by: Ben Skeggs + +commit fdd960a95cca00b19d912a437a2ca3e69fee017e +Author: Ben Skeggs +Date: Mon Oct 19 09:04:37 2009 +1000 + + nouveau: function to return status of bo being referenced in pushbuf + + Will be used to implement gallium's is_{texture,buffer}_referenced() + callbacks properly. + + Signed-off-by: Ben Skeggs + +commit 3a387a983ec40cd443e22c1f8d9a6b5b5a8fa0d1 +Author: Patrice Mandin +Date: Tue Oct 13 22:50:46 2009 +0200 + + nouveau: nv30: add render target logbase2 width,height + +commit a221e4fd929f77e1851fb0089338f1cd5001ddde +Author: Eric Anholt +Date: Tue Oct 13 11:35:05 2009 -0700 + + intel: Add the defines for the kernel overlay support landing in 2.6.33. + +commit 901bacd29cb5b242f68302b8384de6e193413a49 +Author: Chris Wilson +Date: Tue Oct 13 15:13:00 2009 +0100 + + intel: Fallback to atomic-ops.h [libatomic-ops-dev] + + Use the external implementation for atomic operations across a wide + range of architectures. + + Signed-off-by: Chris Wilson + +commit 24c905f84120a7b0bcd7c5e86c58e908b9e850f9 +Author: Chris Wilson +Date: Tue Oct 13 14:25:54 2009 +0100 + + configure: Typo in error message. + + Signed-off-by: Chris Wilson + +commit fc8f6be5a9bd84e10149770b76ff9353d25ce2a7 +Author: Chris Wilson +Date: Mon Oct 12 23:58:47 2009 +0100 + + configure: Conditionally build libdrm_intel + + Only build libdrm_intel automatically if we have support for atomic + operations. To force configure to build drm pass --enable-intel, which + will cause the configure to error if no support is found. Or pass + --disable-intel to explicitly prevent libdrm_intel from being built. + + Signed-off-by: Chris Wilson + +commit a107e5b12960f64722bff424502a4fc0ad33dc8f +Author: Eric Anholt +Date: Thu Oct 8 16:59:17 2009 -0700 + + Bump to 2.4.15 for release. + +commit 9764061ab1b02e4b7bde1494b121604c5c4d4df8 +Author: Eric Anholt +Date: Thu Oct 8 15:39:27 2009 -0700 + + intel: Remove the asserts about the ignored alignment parameter. + + I slipped it in with the alloc_tiled changes, since we were explicitly + throwing the parameter away. It caught some bogus released code, which + we've now fixed, so remove the asserts to keep old drivers working. + +commit 3a7dfcdfafdd6ac83a4d3e7b4c1c52fd901b93ae +Author: Jesse Barnes +Date: Tue Oct 6 14:34:06 2009 -0700 + + intel: Add a bo_alloc function for tiled BOs. + + This simplifies driver code in handling object allocation, and also gives us + an opportunity to possibly cache tiled buffers if it turns out to be a win. + + [anholt: This is chopped out of the execbuf2 patch, as it seems to be useful + separately and cleans up the execbuf2 changes to be more obvious] + +commit 02c775fc750b48ae25b6a4af51afbfe090ebada4 +Author: Eric Anholt +Date: Tue Oct 6 15:25:21 2009 -0700 + + intel: Fix up some stale doxygen comments. + +commit d70d60529f77ec73322be7b887fd6a3faf133bce +Author: Eric Anholt +Date: Tue Oct 6 12:40:42 2009 -0700 + + intel: Reformat to the kernel coding style. Welcome to the 8-space future. + + This is done with: + Lindent *.[ch] + perl -pi -e 's|drm_intel_bo \* |drm_intel_bo *|g' *.[ch] + perl -pi -e 's|drm_intel_bufmgr \* |drm_intel_bufmgr *|g' *.[ch] + perl -pi -e 's|drm_intel_bo_gem \* |drm_intel_bo_gem *|g' *.[ch] + perl -pi -e 's|drm_intel_bufmgr_gem \* |drm_intel_bufmgr_gem *|g' *.[ch] + perl -pi -e 's|_fake \* |_fake *|g' *.[ch] + hand-editing to whack indented comments into line and other touchups. + +commit 3c9bd068e0aa8069f71e8193b82b231d6513ce35 +Author: Eric Anholt +Date: Mon Oct 5 16:35:32 2009 -0700 + + intel: Don't allocate more relocation entries than the BO could support. + + This saves 32k of relocation entry storage for many 965 state buffers. No + noticeable impact on performance for cairo-gl firefox. + +commit ac34f599eabcfc414d4d3300063988d4749813f4 +Author: Chris Wilson +Date: Sat Oct 3 23:17:57 2009 +0100 + + tests: Disable intel-specific tests with --disable-intel + + Signed-off-by: Chris Wilson + +commit ab3300c5816ee26e2d74ac99e2d84c3dfd7cdf82 +Author: Chris Wilson +Date: Sat Oct 3 22:56:04 2009 +0100 + + intel: Add a configure option to *disable* building libdrm-intel + + In conjunction with the atomic operation patch, it may be more + convenient for some people to disable building libdrm-intel and its + dependencies upon the atomic intrinsics then it is for them to use a + supported compiler. + + Signed-off-by: Chris Wilson + +commit 61bddf8504461fad3e45fbf0d32956a76e0dd343 +Author: Chris Wilson +Date: Sun Sep 20 03:11:59 2009 +0100 + + intel: report errno + + Signed-off-by: Chris Wilson + +commit 11f0e450dd7d711eb69aa9c27ed4aa72d913d697 +Author: Michel Dänzer +Date: Sat Oct 3 17:37:07 2009 +0200 + + libdrm_radeon: Update RADEON_TILING_* flags to what's in current kernels. + +commit a5fb264257651d50afe84be7e20f91df41242aa8 +Author: Nicolai Hähnle +Date: Sat Oct 3 13:43:42 2009 +0200 + + libdrm_radeon: Zero-initialize structures to silence valgrind warnings + + Signed-off-by: Nicolai Hähnle + +commit 04495eeec2f053be17a10cc82e646a1e23ed3830 +Author: Chris Wilson +Date: Fri Oct 2 04:39:22 2009 +0100 + + intel: Use atomic refcounters + + As the target architecture for Intel GPUs is the x86, we can presume to + have reasonable compiler support for Intel atomic intrinsics, i.e. gcc, + and so use those in preference to pulling in a complicated mess of + fragile assembly. + + Signed-off-by: Chris Wilson + [anholt: hand-resolved against my previous commit. This brings cairo-gl + firefox-talos-gfx time from 65 seconds back down to 62 seconds.] + Signed-off-by: Eric Anholt + +commit 0fb215ae3199b5be0c9a9474e5941f8d8998c11a +Author: Chris Wilson +Date: Fri Oct 2 04:31:34 2009 +0100 + + intel: Mark cached bo as purgeable + + Set the DONTNEED flag on cached buffers so that the kernel is free to + discard those when under memory pressure. + + [anholt: This takes firefox-talos-gfx time from ~62 seconds to ~65 seconds + on my GM965, but it seems like a hit worth taking for the improved + functionality from saving memory] + + Signed-off-by: Chris Wilson + Signed-off-by: Eric Anholt + +commit 12d9b7cc8550c1999e5c39a38b1b14e654f49065 +Author: Eric Anholt +Date: Fri Oct 2 11:11:31 2009 -0700 + + intel: Don't free the reloc list when putting a freed BO in the cache. + + This takes firefox-talos-gfx from 74 seconds to 70 seconds on my GM965. + +commit 769b10578083aa7bbee0052246d8ea6000435ae8 +Author: Eric Anholt +Date: Thu Oct 1 19:09:26 2009 -0700 + + intel: Add a new function to check if a BO's reloc tree references some BO. + + There are a bunch of places in GL where if we can't do this we have to + flush the batchbuffer, and the cost of lookups here is outweighed by flush + savings. + +commit ac71f0849928f4b2fbb69c01304ac6f9df8916a1 +Author: Eric Anholt +Date: Mon Sep 21 15:29:58 2009 -0700 + + Bump to 2.4.14 for release. + +commit 51b89733c53458b6827f0db99eb46a20fa1c7020 +Author: Eric Anholt +Date: Sun Sep 6 23:17:14 2009 -0700 + + intel: Remove the max_entries stuff that complicated bo reuse. + + I thought I was going to do all sorts of crazy experiments with it. I never + did, and it turned out the free-after-a-few-seconds plan is working out fine. + +commit 456a358b9ade5c90ff86b2322a79648c69cddcdc +Author: Eric Anholt +Date: Sun Sep 6 23:02:21 2009 -0700 + + intel: Remove the old swrast flag for reducing cache flushing. + + It hasn't been doing anything effective since + 52e5d24fae4af6f2f4a5304a516c8c5ab347a11b, and we pretty much don't bo_map + pinned buffers any more anyway. + +commit 0a24654129847cf5cd61b5e8fb54c8f9c7441c55 +Author: Keith Packard +Date: Thu Sep 17 17:28:08 2009 -0700 + + drmModeFreeConnector: free encoders and properties + + These were leaking. + + Signed-off-by: Keith Packard + +commit cdd325b59a17a614b90fc2f8b388175e6d79e3cf +Author: Dave Airlie +Date: Tue Sep 15 07:29:02 2009 +1000 + + radeon: fix 32/64 bit issue with sign extension + + Not sure what intptr_t was up to here. + + Reported and tested by: Kevin DeKorte + Signed-off-by: Dave Airlie + +commit 67e4172394a88d4922fb8d9c7c3d96ce7e02c5a6 +Author: Zhenyu Wang +Date: Mon Sep 7 16:17:04 2009 +0800 + + libdrm_intel: include B43 chipset check + + Signed-off-by: Zhenyu Wang + +commit 121b9648f846d900e67818869974ee82046e9b25 +Author: Zhenyu Wang +Date: Fri Sep 4 09:24:23 2009 +0800 + + libdrm_intel: add new pci ids + + New ids for G41, Clarkdale and Arrandale. + Make sure we don't need to count fence also on new chips. + + Signed-off-by: Zhenyu Wang + +commit 73b59c894380995a2889b98e79acadd2da0bb237 +Author: Eric Anholt +Date: Fri Aug 28 15:20:22 2009 -0700 + + Bump to version 2.4.13 for release. + +commit 8214a65ad1f4ccd4966e0def0d43f0c4289e4bc6 +Author: Eric Anholt +Date: Thu Aug 27 18:32:07 2009 -0700 + + Add drm_intel_bo_busy to query whether mapping a BO would block. + +commit 19d6fadfa29993b261ebac2869b2289f6d3091c3 +Author: Michel Dänzer +Date: Fri Aug 28 11:42:07 2009 +0200 + + Revert "libdrm_radeon: Always wait for BO idle in bo_map." + + This reverts commit 0a732983f059c353b267b6bf877e1f0eea4e033f. + + Paul Nieminen and Dave Airlie pointed out on IRC that this shouldn't be + necessary. I was seeing visual corruption in X before I made this change, but + I can't reproduce that anymore so it was probably an unrelated issue. + +commit 0a732983f059c353b267b6bf877e1f0eea4e033f +Author: Michel Dänzer +Date: Thu Aug 27 08:36:58 2009 +0200 + + libdrm_radeon: Always wait for BO idle in bo_map. + + This allows users to eliminate explicit bo_wait calls before bo_map calls. + +commit ce6c68dc8a893ed8673f49d381a8500c2ee3c29f +Author: Jakob Bornecrantz +Date: Fri Aug 21 14:06:51 2009 +0200 + + Kill last remnant of replacefb ioctl + + Kenrels doesn't expose this ioctl + +commit 02a4d22e95de863fe3e01a9f5658ef81417c28cd +Author: Alex Deucher +Date: Mon Aug 24 18:15:03 2009 -0400 + + radeon: pull in z pipe changes from kernel + +commit caad8d85559709301c00760b9e8707d57f8c6c67 +Author: Pauli Nieminen +Date: Sat Aug 22 13:16:18 2009 +1000 + + radeon: add support for busy/domain check interface. + + airlied: modified the interface to drop busy return value, just return + it normally, also fixed int->uint32_t for domain + + Signed-off-by: Pauli Nieminen + +commit cbb3ae3dab9dc82d95524726135b8d6ef86bcf27 +Author: Ben Skeggs +Date: Wed Aug 19 15:55:05 2009 +1000 + + nouveau: fix a thinko in copyless pushbuf ioctl + + No idea why G80 doesn't hit this, but, this fixes at least one NV40 card. + +commit 8c43b79b21929e9e54e13e892f7787e222e73f39 +Author: Pauli Nieminen +Date: Tue Aug 18 18:51:38 2009 +0300 + + libdrm_radeon: Optimize copy of table to cs buffer with specialized call. + + Using this call in OUT_BATCH_TABLE reduces radeonEmitState cpu usage from + 9% to 5% and emit_vpu goes from 7% to 1.5%. I did use calgrind to profile + gears for cpu hotspots with r500 card. + + Signed-off-by: Pauli Nieminen + +commit a474fd978c0dedbed21b5dff24126acb1c7effef +Author: Pauli Nieminen +Date: Tue Aug 18 18:51:37 2009 +0300 + + libdrm_radeon: Fix loops so that compiler can optimize them. + + GCC did war about optimization not possible because possible forever loop. + + Signed-off-by: Pauli Nieminen + +commit 64cef1e46554fbf82388acfcfc8051ce956a3dc2 +Author: Pauli Nieminen +Date: Fri Aug 7 20:03:26 2009 +0300 + + libdrm/radeon: Update head of linked list not to point freed memory. + + Signed-off-by: Pauli Nieminen + +commit 28f4bfa04b8ad4dfcc55027f4b2385f4dd6c23c5 +Author: Ben Skeggs +Date: Wed Aug 12 14:21:00 2009 +1000 + + nouveau: support for copy-less pushbuf ioctl + +commit 250ab3a38eb6ef18d747717cabd0195ad04a82e0 +Author: Ben Skeggs +Date: Tue Aug 18 14:25:50 2009 +1000 + + nouveau: for the moment, assert if we exceed some reloc limits + + Nasty, but nicer than silently not writing into the pushbuf + +commit 1978f6d8d1215a9501882eb074901bcd0dfc0775 +Author: Dave Airlie +Date: Mon Aug 17 21:21:02 2009 +1000 + + radeon: fix bo wait at map time. + +commit f7996165fffe0a835752e8b9bb6b4d81bba5c91d +Author: Christoph Brill +Date: Sun Aug 16 08:26:25 2009 +0200 + + Filter radeon pkgconfig file as do intel and nouveau + +commit 1d465178fbab77a9c0e830ea8c47bf61735def71 +Author: Dave Airlie +Date: Sat Aug 15 21:32:35 2009 +1000 + + radeon: fix GTT writing space check + + Noticed by vehemens on irc. + + Signed-off-by: Dave Airlie + +commit d74c67fb13d8c3e8c2e5968d827285d147a5dfc0 +Author: Anssi Hannula +Date: Fri Jul 24 21:58:43 2009 +0300 + + link libdrm_intel with -lrt for new use of clock_gettime(). + + Signed-off-by: Eric Anholt + +commit 4507863058a10d00c982975daf396f83caee0fe2 +Author: Dave Airlie +Date: Sat Aug 1 17:19:43 2009 +1000 + + libdrm_radeon: add tiling support + +commit 322cf6cf736b22b62656ac0431936b3cdb784038 +Author: Dave Airlie +Date: Sat Aug 1 16:47:24 2009 +1000 + + radeon: don't map/unmap explicitly. + + This caches the mapping and just use mapping as a sync point + +commit 5a73f066ba149816cc0fc2de4b97ec4714cf8ebc +Author: Ben Skeggs +Date: Tue Jul 28 08:12:21 2009 +1000 + + nouveau: don't overwrite user-specified bo size needlessly + +commit 0bf8fb3bce6b4d9b4820d38d37e1ac1e73e22d23 +Author: Ben Skeggs +Date: Tue Jul 28 07:46:20 2009 +1000 + + nouveau: user buffers need to be mappable + +commit 001331f4f1f094ef02497aa618ae5eeb2febedfb +Author: Ben Skeggs +Date: Mon Jul 27 07:23:09 2009 +1000 + + nouveau: drm api 0.0.15, update object header, remove fake bo support + +commit 30449829c0347dc7dbe29acb13e49e2f2cb72ae9 +Author: Maarten Maathuis +Date: Mon Jul 27 19:24:13 2009 +0200 + + libdrm/nouveau: unmap before ufree means nvbo->sysmem != NULL, which inbalances cpu_prep/cpu_finish + + - The bo was mapped with sysmem == NULL, so this means cpu prep is called. + - The bo was unmapped with sysmem != NULL, so this means cpu finish is not called. + - This can lead to a non-zero "cpu writers" count in ttm_bo. + +commit 9aed44beeac4f250a58c792d64a4dee1dde3d086 +Author: Alex Deucher +Date: Wed Jul 15 14:51:38 2009 -0400 + + Add RADEON_INIT_R600_CP too + + this rounds out the r6xx/r7xx stuff in radeon_drm.h + +commit 0411c37409102c71e8ba980f9afb2d4a8c64189d +Author: Alex Deucher +Date: Wed Jul 15 14:40:41 2009 -0400 + + Add R600_SCRATCH_REG_OFFSET to radeon_drm.h + + This lets us libdrm from master for r6xx/r7xx 3d + +commit eea95ed8af24300e5a5d2489dfe0d73c24300651 +Author: Eric Anholt +Date: Wed Jul 15 10:04:44 2009 -0700 + + Bump to version 2.4.12 for release. + +commit 3f3c5be6f908272199ccf53f108b1124bfe0a00e +Author: Eric Anholt +Date: Thu Jul 9 17:49:46 2009 -0700 + + intel: Free buffers in the BO cache that haven't been reused in a while. + + The goal of the BO cache is to keep buffers on hand for fast continuous use, + as in every frame of a game or every batchbuffer of the X Server. Keeping + older buffers on hand not only doesn't serve this purpose, it may hurt + performance by resulting in disk cache getting kicked out, or even driving + the system to swap. + + Bug #20766. + +commit 80179df5f85a2fd39b2544f1b7aae61102800f0f +Author: Dave Airlie +Date: Fri Jul 10 02:38:13 2009 +1000 + + configure: move AC_USE_SYSTEM_EXTENSIONS up higher + + this was giving me a warning on automake 1.11 + +commit f257201c11fd1aff9319aaf47556b184141ac7cb +Author: Ben Skeggs +Date: Thu Jul 9 11:41:47 2009 +1000 + + nouveau: fix pin for buffers created with bo_wrap + +commit 4179c5f0a69b452cf94a507c13021e4918a3e02d +Author: Ian Romanick +Date: Mon Jul 6 15:36:20 2009 -0700 + + s/AC_USE_SYSTEM_MACROS/AC_USE_SYSTEM_EXTENSIONS/ + + Not sure what I was thinking. + +commit c5a5bbbe899400642795c1d95aef78deade9241f +Author: Pauli Nieminen +Date: Mon Jul 6 23:37:20 2009 +0300 + + libdrm: Make chown check for return value + + If call was interrupted by signal we have to make call again. + + Reviewed-by: Ian Romanick + +commit a953b3270cef52dd2de70cc6aa08687af9d57815 +Author: Ian Romanick +Date: Mon Jul 6 13:23:46 2009 -0700 + + libdrm: Set _XOPEN_SOURCE and _GNU_SOURCE + + Several POSIX extensions are used in the libdrm code (e.g., mknod and ffs). + Set _XOPEN_SOURCE and _GNU_SOURCE to something reasonable to ensure that + prototypes for these functions are available. This is done in configure.ac + using AC_USE_SYSTEM_MACROS. This requires autoconf 2.60 or later. Eventually + the code should check for the existance of these defines and do something + reasonable if they are not available. + + Inspired by a patch by Pauli Nieminen and suggestions from Julien Cristau. + Thanks. + + Signed-off-by: Ian Romanick + +commit 78fa590a1d297f2e2fea98bd3f0cbf4cdb1e3a08 +Author: Eric Anholt +Date: Mon Jul 6 11:55:28 2009 -0700 + + intel: Fix up math errors when allocating very large BOs. + + The logbase2 would overflow and wrap the size around to 0, making the code + allocate a 4kb object instead. By simplifying the code to just walk the + 14-entry bucket array comparing sizes instead of indexing on + ffs(1 << logbase2(size)), we avoid silly math errors and have code of + approximately the same speed. + + Many thanks to Simon Farnsworth for debugging and providing a working patch. + Bug #27365. + +commit cea2d29ee49f23d560f0088a1a3dd01932a1eaf4 +Author: Edward O'Callaghan +Date: Thu Jul 2 11:03:48 2009 -0700 + + intel: fix compiler warning about returning a void value. + + bug #21999 + +commit 90ae0f2bb8d53500f5c9d06e2dc1a18d5a5d0cf5 +Author: Pauli Nieminen +Date: Sat Jul 4 02:18:51 2009 +0300 + + libdrm: Fix pci id numbers to unsigned so code won't mix signed/unsigned integers. + +commit 015efd1bfa72ab8b80cc45f11eb22d7f1a1085f7 +Author: Ian Romanick +Date: Mon Jul 6 09:23:59 2009 -0700 + + strcasecmp is in strings.h. + + Based on patch by Pauli Nieminen. Thanks. + +commit 3dda0050f16ddb4a64e66c80aebecea5383c72f1 +Author: Pauli Nieminen +Date: Sat Jul 4 02:18:49 2009 +0300 + + libdrm: Remove typedef for non-existing enum + +commit 39970c67b77014caac9a4c3a33765ac7a312b54e +Author: Dave Airlie +Date: Mon Jul 6 13:34:24 2009 +1000 + + radeon: move cs space checking code to libdrm_radeon. + + This ports a lot of the space checking code into a the common + library, so that the DDX and mesa can use it. + +commit 72a29340ea3225550db6b009f4e50c77c7b1f394 +Author: Jerome Glisse +Date: Fri Jul 3 15:03:03 2009 +0200 + + radeon: fix cs buffer realloc padding + + We always realloc at least 0x1000 dwords (page on most system) + when growing the cs buffer this is to avoid having to realloc + at each cs_begin. + +commit af90222c4570ca07c6983f60ebe46c35bc980495 +Author: Dave Airlie +Date: Fri Jul 3 21:13:22 2009 +1000 + + radeon: fix realloc of packets. + + This should use ndw not cdw, using cdw leads to realloc alignment going wrong + +commit fbac5891b91c795de61f4d7cbc1a6799474364ad +Author: Dave Airlie +Date: Thu Jul 2 15:42:01 2009 +1000 + + radeon: add buffer naming function + +commit de1ed01214874dcdd6116ff2587c8710d6ed4d2d +Author: Dave Airlie +Date: Tue Jun 30 12:19:28 2009 +1000 + + radeon: add support for write followed by read relocs. + + the DDX does this and used to handle it internally + +commit 790097c51330090b2b7b90429b9ab8ddf259fd8e +Author: Dave Airlie +Date: Tue Jun 23 09:51:05 2009 +1000 + + remove some old ttm bits + +commit 9a33f62be1c478334572ea9384af60c37d1644a0 +Author: Thomas Hellstrom +Date: Mon Jun 22 23:07:26 2009 +0200 + + drm: Strip old ttm. + + Signed-off-by: Thomas Hellstrom + +commit 81644198aeced288d26e17fadd8e5eb19798352f +Author: Jesse Barnes +Date: Mon Jun 22 12:27:49 2009 -0700 + + modetest: use gtt unmap for object + + Match gtt map/unmap for correctness. + +commit 2fa2db138ba989bfa1a8cd9ab66d83fb7369249e +Author: Dave Airlie +Date: Wed Jun 17 17:47:42 2009 +1000 + + libdrm/radeon: add initial libdrm_radeon + + requires --enable-radeon-experimental-api for now + +commit 3d4bfe8c893d016ef43d1ebf28e4607aa1f540a4 +Author: Ben Skeggs +Date: Wed Jun 3 13:54:43 2009 +1000 + + nouveau: 0.0.14 + extend bo interface to support subrange mapping + + Normal map() should operate as before, and map_range()/map_flush() should + give correct results but lacking any performance difference from map(). + + Nothing exiting being done here yet, but the interface is a good start. + +commit 2cb4c64d7310904b354365c2cbc263211e9eb4a1 +Author: Ben Skeggs +Date: Thu Jun 4 08:59:53 2009 +1000 + + nouveau: fix bo mapping issue + +commit d7c42ff4c445ed2cb23f4eb3a45858c110184773 +Author: Pekka Paalanen +Date: Wed Jun 3 22:26:43 2009 +0300 + + Fix build on kernels < 2.6.26 + + The commit 651e3dc6dd58a79c90db7513ee2fb28360a4560d, "drm: Fix + compilation on 2.6.30" broke all builds on kernels before 2.6.26. + Variadic functions cannot be inlined. + + The variadic inline function is replaced with a variadic macro. + + Also, the function dev_name() added by that same commit is never used, + so it is removed. + + Signed-off-by: Pekka Paalanen + +commit 00fae87f96e1fc5198311feec81866bf9c53d0e1 +Author: Ben Skeggs +Date: Wed Jun 3 10:24:30 2009 +1000 + + nouveau: fill in bo->tiled field for referenced buffers + + Fixes the dri1 gallium driver if the front buffer happens to be non-linear. + +commit dbffeadcfca7cb4e3905ec0b8573d10e0418295e +Author: Ben Skeggs +Date: Tue Jun 2 17:06:34 2009 +1000 + + nv50: magic fix for "3d busted without the binary driver first" issue + + No idea what this reg does.. NVIDIA put 0x802 into it on some chips, the + criteria aren't too clear on when they do that however. Hopefully 0x800 + will work everywhere... + +commit 651e3dc6dd58a79c90db7513ee2fb28360a4560d +Author: Michael Buesch +Date: Mon May 11 00:21:14 2009 +0200 + + drm: Fix compilation on 2.6.30 + + This fixes DRM compilation of nouveau.ko on kernel 2.6.30. + + Signed-off-by: Michael Buesch + +commit c65a343ed29c24f812ca919f40dfeee948b6f14a +Author: Ben Skeggs +Date: Tue May 26 14:14:04 2009 +1000 + + nouveau: bump for 0.0.13 + +commit 85b9f737db0d2a845e4d7e2bbf9ad12ff9e2227c +Author: Danny Tholen +Date: Thu May 7 00:11:34 2009 +0100 + + nouveau: backlight support for ppc laptops + + Patch allows the backlight to be manipulated under gnome on apple powerpc + based NV30 machines. It works fine on my powerbook, and should also work + for older NV17/NV18 machines. + + Note that older powerpc specific tools (pbbuttonsd) have some problems with + this implementation (because the device is not yet there at the start time + of the daemon, and the code makes incorrect assumptions about the max + brightness values). However, IMHO these things can and should be addressed + in the daemon. + + Some style/warning fixes applied by Stuart Bennett + +commit f355ad89431c49355e626613e6fc29ef2e183dab +Author: Eric Anholt +Date: Tue May 19 10:07:16 2009 -0700 + + intel: quiet a warning. + +commit 469655fab7a56eb32ff8cdefb33992813342353a +Author: Eric Anholt +Date: Mon May 18 16:07:45 2009 -0700 + + intel: Only do BO caching up to 64MB objects. + + This avoids making objects significantly bigger than they would be + otherwise, which would result in some failing at binding to the GTT. + Found from firefox hanging on: + http://upload.wikimedia.org/wikipedia/commons/b/b7/Singapore_port_panorama.jpg + due to a software fallback trying to do a GTT-mapped copy between two 73MB + BOs that were instead each 128MB, and failing because both couldn't fit + simultaneously. + + The cost here is that we get no opportunity to cache these objects and + avoid the mapping. But since the objects are a significant percentage + of the aperture size, each mapped access is likely having to fault and rebind + the object most of the time anyway. + + Bug #20152 (2/3) + +commit f57d7f4b0b14972f92a83f155ae8033478aa7729 +Author: Keith Packard +Date: Thu May 14 16:58:14 2009 -0700 + + libdrm/intel: Make get_pipe_from_crtc_id per-bufmgr. Return -1 on failure. + + The convention is that all APIs are per-bufmgr, so make this one the same. + Then, have it return -1 on failure so that the application can know what's + going on and do something sensible. + + Signed-off-by: Keith Packard + +commit afd245dd7fd85cf3ffd3e6d5fe9711252aa2ed7f +Author: Carl Worth +Date: Wed Apr 29 14:43:55 2009 -0700 + + Add new drm_intel_get_pipe_from_crtc_id function. + + This wraps the new DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID ioctl, + allowing applications to discover the pipe number corresponding + to a given CRTC ID. This is necessary for doing pipe-specific + operations such as waiting for vblank on a given CRTC. + +commit 8b8e20e0f9900fae23baee55a91533a739c1a3ec +Author: Keith Packard +Date: Tue May 12 15:33:28 2009 -0700 + + Bump to version 2.4.10 to mark addition of drm_intel_bo_disable_reuse + + New API, new version. + + Signed-off-by: Keith Packard + Reviewed-by: Eric Anholt + +commit 5b5ce301287fb8ef74b45fad3c10b2d4ac3a9cc6 +Author: Keith Packard +Date: Mon May 11 13:42:12 2009 -0700 + + libdrm/intel: add drm_intel_bo_disable_reuse api + + Scanout buffers need to be freed through the kernel as it holds a reference + to them; exposing this API allows applications allocating scanout buffers to + flag them as not reusable. + + Signed-off-by: Keith Packard + Reviewed-by: Eric Anholt + +commit 628dc48a16ec6796ec5a81428e695837c51463d0 +Author: Alan Coopersmith +Date: Mon Jun 9 17:03:28 2008 -0700 + + Use C99 versions of __FUNCTION__ & __volatile__ when not building with gcc + +commit 1bae8844cafd70f6196116f6e84b0f36c069e976 +Author: Alan Coopersmith +Date: Sat May 9 17:21:29 2009 -0700 + + Delete extra libdrm_lists.h line after libdrm_la_SOURCES in libdrm/Makefile.am + + Signed-off-by: Alan Coopersmith + +commit 94d48d038502097ebfa2e33e4a75b9e0e675231d +Author: Stuart Bennett +Date: Wed May 6 23:56:51 2009 +0100 + + nouveau: backlight compat fix + + Avoid failure to build on old kernels with CONFIG_BACKLIGHT_CLASS_DEVICE set + +commit e2b5fde7f6ff412cadd9cad35ad051a028cf7fae +Author: Danny Tholen +Date: Wed May 6 23:41:09 2009 +0100 + + nouveau: fix ppc for swab changes in Linux 2.6.29 + +commit 68103b2758029b3c1fbfcf995baa758bfd2676de +Author: Keith Packard +Date: Fri May 1 18:47:04 2009 -0700 + + libdrm/intel: assert that clients are using bo refcounting correctly + + Add assertions to drm_intel_gem_bo_reference, + drm_intel_gem_bo_reference_locked and drm_intel_gem_bo_unreference_locked + that the object has not been freed (refcount > 0). Mistakes in refcounting + lead to attempts to insert a bo into a free list more than once which causes + application failure as empty free lists are dereferenced as buffer objects. + + Signed-off-by: Keith Packard + +commit 11b60973bca1bc9bbda44be4c695e22d28d8ca4a +Author: Jesse Barnes +Date: Tue Apr 21 17:13:16 2009 -0700 + + intel: NULL fake bo block when freeing in evict_all + + Fixes assertion failures on later use of the object. + +commit 412d370b9ae4b2882691863a1c5e13a507574e92 +Author: Dave Airlie +Date: Wed Apr 22 20:25:40 2009 +1000 + + libdrm/mode: align subpixel results + +commit a1e3ab9e55047c08a4006ec389c1a99b72bc672c +Author: Ben Skeggs +Date: Fri Apr 17 09:29:19 2009 +1000 + + nouveau: write posting got lost somewhere, bring it back + +commit 78e753d03314e3aa92af8ec601e9dbb869a938d5 +Author: Ben Skeggs +Date: Wed Apr 15 12:44:21 2009 +1000 + + nouveau: store bo handle in public struct in bo_ref_handle + +commit 07646002c6835537c6ae44ef9b3f8480762279b8 +Author: Jesse Barnes +Date: Fri Apr 10 15:34:24 2009 -0700 + + Bump version to 2.4.9 + + Who needs 2.4.8 anyway? + +commit 4d5e82e7d3cf9f94c1c74bd5067e3ea1fb9d0981 +Author: Jesse Barnes +Date: Fri Apr 10 15:24:41 2009 -0700 + + Bump version to 2.4.8 + +commit 3637dcc66d707aa9ababf0b12cd4a299559522f5 +Author: Jesse Barnes +Date: Fri Apr 10 15:24:10 2009 -0700 + + Revert "libdrm: speed up connector & mode fetching" + + This reverts commit cd5c66c659168cbe2e3229ebf8be79f764ed0ee1. It broke too + many kernel assumptions about the double ioctl (connector status, mode + fetching, etc.) + +commit fef29358bb407f35b90e8c6ee913e4979786cfd5 +Author: Kristian Høgsberg +Date: Thu Apr 9 15:19:10 2009 -0400 + + Bump version to 2.4.7 + +commit ec9b7b320a724e49d61375b4ad53e2c88fa30f66 +Author: Kristian Høgsberg +Date: Thu Apr 9 15:17:51 2009 -0400 + + test: Avoid recursive dependency in makefile + +commit a85e07b9031c819f3cdf54b66c90ac0c450e3e75 +Author: Kristian Høgsberg +Date: Thu Apr 9 15:02:40 2009 -0400 + + test: Makefile.am grammar nazi + +commit 1faab66cfd1a854925da6ff7109aa614292dea90 +Author: Dave Airlie +Date: Tue Apr 7 09:26:32 2009 +1000 + + drm: fix test makefile + + no idea if this is correct but it works so meh + +commit 751db3fe27d5e51925c28ceecadb828784d46028 +Author: Kristian Høgsberg +Date: Mon Apr 6 17:22:10 2009 -0400 + + Skip tests that require root + + This lets us do make distcheck as non-root. + +commit 8a5c4d567fafffbda57cbe5e4ed8c419193cada5 +Author: Kristian Høgsberg +Date: Mon Apr 6 17:18:17 2009 -0400 + + XFAIL auth and lock test cases + + They're writing to the read end of a pipe and failing. + +commit e9d6116e5bd30639d6333ef95462fe300f47ccd5 +Author: Kristian Høgsberg +Date: Mon Apr 6 17:13:01 2009 -0400 + + Use libudev in test case to only run gem tests for intel devices. + +commit 51d6346f9f3c425f49e57d185530c6bcaeb94f5e +Author: Robert Noland +Date: Tue Mar 31 13:33:18 2009 -0500 + + Move drm_vblank_cleanup() after lastclose. + + This may prevent a possible panic on shutdown. + +commit cd5c66c659168cbe2e3229ebf8be79f764ed0ee1 +Author: Jesse Barnes +Date: Mon Mar 30 14:35:30 2009 -0700 + + libdrm: speed up connector & mode fetching + + This patch speeds up drmModeGetConnector by pre-allocating mode & + property info space before calling into the kernel.  In many cases this + pre-allocation will be sufficient to hold the returned values (it's easy + enough to tweak if the common case becomes larger), which means we don't + have to make the second call, which saves a lot of time. + + Acked-by: Jakob Bornecrantz + Signed-off-by: Jesse Barnes + +commit 93e65271601e6a1c7c90453f2f13157ae24b35c2 +Author: Stuart Bennett +Date: Mon Mar 30 20:38:49 2009 +0100 + + nouveau: nForce 1/2 IGP memory sanity check from DDX + +commit 2ada85502242a3d5328b8f392d7843ef58a78780 +Author: Jesse Barnes +Date: Mon Mar 30 11:25:09 2009 -0700 + + libdrm: bump version to 2.4.6 + + This version includes GTT unmap support for the Intel bufmgr. + +commit e2d7dfb61ad7a97367f050150160c205614d152e +Author: Jesse Barnes +Date: Thu Mar 26 16:43:00 2009 -0700 + + libdrm/intel: support GTT maps correctly + + libdrm has some support for GTT mapping already, but there are bugs + with it (no surprise since it hasn't been used much). + + In fixing 20803, I found that sharing bo_gem->virtual was a bad idea, + since a previously mapped object might not end up getting GTT mapped, + leading to corruption. So this patch splits the fields according to + use, taking care to unmap both at free time (but preserving the map + caching). + + There's still a risk we might run out of mappings (there's a sysctl + tunable for max number of mappings per process, defaulted to 64k or so + it looks like) but at least GTT maps will work with these changes (and + some others for fixing PAT breakage in the kernel). + + Reviewed-by: Eric Anholt + Signed-off-by: Jesse Barnes + +commit c9cfeaa5542e08381a8144d0a5bd96036a19082f +Author: Stuart Bennett +Date: Tue Mar 24 23:39:41 2009 +0000 + + nouveau: plug drm fifo ioremap leak (#14941) + +commit 03ca202fa56ad7711ad0f7527a1e537154093e8a +Author: Stuart Bennett +Date: Tue Mar 24 23:26:30 2009 +0000 + + nouveau: add linux compat defines for PCI config access, use them for nvidia IGPs + +commit b71f3f114e6f0e94e15958c0aa12e804392f9df2 +Author: Stuart Bennett +Date: Tue Mar 24 16:42:36 2009 +0000 + + nouveau: use PFB_CSTATUS naming from ddx (reg introduced with nv10) + + NV04 had a PFB_FIFO_DATA at the same address, which we don't use, so + remove it to reduce confusion + +commit d6ad0dba01a8246b9e7c96388f747c8ed9631ce4 +Author: Ben Skeggs +Date: Wed Mar 25 08:10:12 2009 +1000 + + libdrm/nouveau: fix typo in nouveau_device_close() + +commit 98b0df3953f229fd5fb7484d2f566aeb0443c12f +Author: Ben Skeggs +Date: Fri Mar 20 10:35:55 2009 +1000 + + libdrm/nouveau: ask the kernel for vram/gart aperture sizes + +commit bad16a6b22e06b0adf7663543e26caae9916444c +Author: Ben Skeggs +Date: Fri Mar 20 10:32:47 2009 +1000 + + libdrm/nouveau: remove unneccesary null ptr checks + +commit c37fca4ef678667bcba9c45c6e0a59c8d174c7c5 +Author: Ben Skeggs +Date: Fri Mar 20 10:24:40 2009 +1000 + + libdrm/nouveau: incr refcount on ref fence before decr on old fence + +commit 00d8e960ca665b7f0528438331f4d0ae77fbb4cc +Author: Maarten Maathuis +Date: Thu Mar 19 23:59:42 2009 +0100 + + libdrm/nouveau: unref fences when deleting bo + + - This was causing a significant memory leak. + +commit 6169e3a6012d55522fc8028a5674891a5a99d935 +Author: Ben Skeggs +Date: Wed Mar 18 10:25:22 2009 +1000 + + libdrm/nouveau: implement bo_handle_get for !mm_enabled + + bo_handle_ref on !mm_enabled treats handle as an offset, make + bo_handle_get do the same rather than failing. + +commit 2e2e8575b1ed4703653a72ac2b60b75316c388d7 +Author: Robert Noland +Date: Sun Mar 15 13:52:58 2009 -0500 + + libdrm_nouveau: The handle that is passed to mmap needs to be drm_handle_t + + drm_handle_t is defined to be a u32 on linux and a u64 on everything + else. This addresses an issue on FreeBSD amd64 where the map offsets + may be greater than 32bits. When the handle is cast to 32bit, mmap + cannot match the requested map and causes X to crash. + + This should be a NOOP on linux since drm_handle_t is always 32bit. + + Signed-off-by: Robert Noland + +commit e8d34762558224bb76862425de965c47858f2afd +Author: Robert Noland +Date: Mon Mar 16 01:07:15 2009 -0500 + + FreeBSD: Set up the nouveau build infrastructure + + disabled by default until the rest of the patches are in. + +commit dec955d728505f060afccd047ff2b572cb4ba3c1 +Author: Robert Noland +Date: Mon Mar 16 00:41:23 2009 -0500 + + FreeBSD: Add support for matching solely on vedor id. + + This also adds that ability to set device name from VPD, but that + doesn't seem to be working... + +commit 44fec1a8e487a14e0221e32759cc16ce9fcd7b00 +Author: Robert Noland +Date: Mon Mar 16 00:35:18 2009 -0500 + + FreeBSD: Improve the debug output of drm_mmap(). + +commit f8f49aa6ec10e281b08279143f2bd999df118147 +Author: Robert Noland +Date: Mon Mar 16 00:30:28 2009 -0500 + + FreeBSD: Add list_for_each_prev() to our bank of compat functions. + +commit 6777c6bb8bb399e48500d742e80822808451010b +Author: Robert Noland +Date: Mon Mar 16 00:17:54 2009 -0500 + + FreeBSD: Don't set the PZERO flag to mtx_sleep. + + We also don't support anything old enough to need tsleep. + +commit 06e182d0259d1d2e775814fa070c6cce0ee233a8 +Author: Robert Noland +Date: Mon Mar 16 00:08:06 2009 -0500 + + FreeBSD: use flsl() instead of ffsl(). + + I noticed that we were computing drm_order differently than linux. + +commit 2ce00c6b674a51bdfaa3276b88d2015c59d4584e +Author: Robert Noland +Date: Mon Mar 16 00:07:31 2009 -0500 + + FreeBSD: Minor code cleanup. + +commit b0acc886069c0054da98059319a84eaf60114d32 +Author: Robert Noland +Date: Mon Mar 16 00:03:40 2009 -0500 + + FreeBSD: Increase MAX_PCI_RESOURCE + + We can have more than 3 BARs to access. + +commit f78040266bbddf6cf020fb957e3f92000c2bc69b +Author: Robert Noland +Date: Mon Mar 16 00:01:47 2009 -0500 + + FreeBSD: Cast map handles to vm_offset_t + + This prevents some warnings with nouveau. + +commit 82eac8060b98b425f29051bfd7830ba3622be7d8 +Author: Robert Noland +Date: Mon Mar 9 13:37:57 2009 -0500 + + FreeBSD: Fix the printing of maps on amd64/i386 to be consistent + +commit a3ba51bd041a448f3bb14678cebb0976e0fda47a +Author: Robert Noland +Date: Mon Mar 9 13:34:26 2009 -0500 + + FreeBSD: Fix up the flags for bus_dmamem here as well. + +commit af1afb3c381797e6bf0fb56abd4505094cb6c11e +Author: Robert Noland +Date: Sun Mar 8 22:55:01 2009 -0500 + + FreeBSD: Fix up the flags to bus_dmamem_* + + Allow it to sleep waiting for resources during the allocation stage. + Only use BUS_DMA_NOWAIT when loading the map. + +commit 2221e16703bf5bf813a98926b968bd5b28eb5d70 +Author: vehemens +Date: Sun Mar 8 18:17:15 2009 -0700 + + FreeBSD use kdev for kernel device name + + Signed-off-by: Robert Noland + +commit 391c92ae1799f0d1fddb2321c5713afc58575514 +Author: Ben Skeggs +Date: Fri Mar 6 09:04:44 2009 +1000 + + drm/nouveau: make portion of vram as reserved for PRAMIN on all chipsets + + NV04 was completely busted. Push buffers were getting allocated at the + end of VRAM, overwriting PRAMIN. So, it turns out PRAMIN is in VRAM on + all chips. Question answered! + +commit 14503dafa79cfdea69d618f2c28dafb66765a8a0 +Author: Robert Noland +Date: Thu Mar 5 00:47:26 2009 -0600 + + FreeBSD: Rework DRM_[DEBUG,ERROR,INFO] macros a bit. + +commit 0a227a3361054f06da4bba34d02c8dadcd448e9a +Author: Robert Noland +Date: Thu Mar 5 00:46:32 2009 -0600 + + FreeBSD: Garbage collect entries from pcireg.h since we now include it. + +commit 222dc6582e7afad0cd397452a0c4bcea23efeb04 +Author: Robert Noland +Date: Thu Mar 5 00:44:56 2009 -0600 + + FreeBSD: We only want drm to ever attach to the primary pci device. + + Intel 855 chips present the same pci id for both heads. This prevents + us from attaching to the dummy second head. All other chips that I + am aware of either only present a single pci id, or different ids + for each head so that we only match on the correct head. + +commit 4a27f1c6384c3987dc25e0d2b65e4cf56af7769a +Author: Robert Noland +Date: Thu Mar 5 00:42:52 2009 -0600 + + FreeBSD: rework drm_scatter.c which allocates scatter / gather pages for use by + ati pci gart to use bus_dma to handle the allocations. This fixes + a garbled screen issue on at least some radeons (X1400 tested). + +commit e4b065ad9a0834fb646baf5a6051902d15716e5e +Author: Pekka Paalanen +Date: Tue Mar 3 22:42:51 2009 +0200 + + drm: drop Linux < 2.6.21 support + + This also means, that DRM_FULL_MM_COMPAT is always defined, + so it is dropped, too. + + Signed-off-by: Pekka Paalanen + +commit a6b28a86a6141259583c3699d1a2d9b26e366ba8 +Author: Pekka Paalanen +Date: Tue Mar 3 22:20:59 2009 +0200 + + drm, via: drop Linux < 2.6.20 support + + Signed-off-by: Pekka Paalanen + +commit f44c740dc7a05d651df7604baad8f667836d1b09 +Author: Pekka Paalanen +Date: Mon Mar 2 23:14:45 2009 +0200 + + drm: drop Linux < 2.6.19 support + + This also means dropping the DRM_ODD_MM_COMPAT case. + + Signed-off-by: Pekka Paalanen + +commit 081b2d6da22e08e1448285d647a35b17905512cf +Author: Pekka Paalanen +Date: Mon Mar 2 22:39:32 2009 +0200 + + drm: drop Linux < 2.6.18 support + + Signed-off-by: Pekka Paalanen + +commit 62f4344c98b72535df88a5a3d577c1df314e4f9b +Author: Pekka Paalanen +Date: Mon Mar 2 22:35:23 2009 +0200 + + drm: drop Linux < 2.6.16 support + + Signed-off-by: Pekka Paalanen + +commit 056ce26344197042cbef800436f16d3f8ba288c8 +Author: Pekka Paalanen +Date: Mon Mar 2 22:26:46 2009 +0200 + + drm: drop Linux < 2.6.15 support + + Signed-off-by: Pekka Paalanen + +commit b47de8d5a3dbfc669c7ba9c6cb66a7491c30b537 +Author: Pekka Paalanen +Date: Mon Mar 2 22:09:26 2009 +0200 + + drm: drop Linux < 2.6.12 support + + Signed-off-by: Pekka Paalanen + +commit 4c439ac4a7fa627691dfcd6a4be67cd95d8d33ee +Author: Pekka Paalanen +Date: Mon Mar 2 00:17:44 2009 +0200 + + drm: drop Linux < 2.6.10 support + + Signed-off-by: Pekka Paalanen + +commit 4bdddf57155a774318ed3739ede9511f074d394e +Author: Pekka Paalanen +Date: Mon Mar 2 00:13:00 2009 +0200 + + drm: drop Linux <= 2.6.8 support + + Signed-off-by: Pekka Paalanen + +commit d3f25ccca882f91071a0d68bb4b75ff871f0cc04 +Author: Pekka Paalanen +Date: Sun Mar 1 23:53:02 2009 +0200 + + drm: drm_bo_mmap_locked() is static. + + Signed-off-by: Pekka Paalanen + +commit a6dd0afa87558a670f970e61b023f45a396539eb +Author: Pekka Paalanen +Date: Sat Feb 28 17:45:02 2009 +0200 + + drm, ati: fix printf format warnings + + Signed-off-by: Pekka Paalanen + +commit 9e8591dbdbd99ec1cc4922d61ec4cc54ef42f0ac +Author: Pekka Paalanen +Date: Sat Feb 28 16:09:56 2009 +0200 + + drm: build fix for Linux drm_vblank_cleanup() + + The commit 957b10695b619d6ed2f1098b00502395d9a3c149, "Move vblank_init + to driver load time." forgot to add the function declaration in + linux-core/drmP.h. + + Signed-off-by: Pekka Paalanen + +commit ad64ff30d0e85486bba8fb6f0e2fcb1caa06fd5c +Author: Robert Noland +Date: Fri Feb 27 17:52:08 2009 -0600 + + FreeBSD: Introduce a kernel tuneable to disable msi at boot time. + +commit 957b10695b619d6ed2f1098b00502395d9a3c149 +Author: Robert Noland +Date: Wed Feb 25 17:59:26 2009 -0600 + + Move vblank_init to driver load time. + +commit 7ce8d4c1fec618ac2578ea0ddb8915b1b41ab9cb +Author: Eric Anholt +Date: Fri Feb 27 13:46:31 2009 -0800 + + intel: Update reloc_tree_size of the first buffer when we count the tree size. + + This helps avoid the n^2 performance cost of counting tree size when we + get a lot of relocations into our batch buffer. rgb10text on keithp's laptop + went from 136k glyphs/sec to 234k glyphs/sec. + +commit ab582f64fd54565f66eba866972f0fe2c313f000 +Author: Robert Noland +Date: Thu Feb 26 23:51:57 2009 -0600 + + FreeBSD: Fix up some ioctl permissions issues missed many times over. + + This was somehow hit with r600 demo. + + Submitted by: Jung-uk Kim + +commit 948af0bd9b9eade489599d7ec160d42706331779 +Author: Robert Noland +Date: Wed Feb 25 14:19:01 2009 -0600 + + i915: Backport jbarnes gm45 vblank counter patch. + +commit efa485b2cf2f1f46760a3d9297ba1a73a2dbcd05 +Author: Eric Anholt +Date: Tue Feb 24 21:36:56 2009 -0800 + + intel: Don't copy dirty data out when freeing a BO in the fake bufmgr. + +commit e96fc62e5339e3c8c8944dfe9f5163f769bccbd8 +Author: Robert Noland +Date: Tue Feb 24 15:49:45 2009 -0600 + + FreeBSD: Drop the Giant lock. + +commit b9b8e8f3cc61a37cce2ae48957514ce6a4f30566 +Author: Robert Noland +Date: Tue Feb 24 15:47:35 2009 -0600 + + FreeBSD: Turn on msi + + There is a blacklist for devices that advertise the capability, but + don't work properly. + +commit 153a0803db19cf8c0b4f532e0d0243747875e154 +Author: Robert Noland +Date: Tue Feb 24 14:21:10 2009 -0600 + + FreeBSD: Add some vblank related debugging and replace DRM_WAIT_ON with a local instance. + +commit a44b4ca8203e366df5a2ed5fe3d78faea4cf7d81 +Author: Robert Noland +Date: Tue Feb 24 14:00:21 2009 -0600 + + i915: A few whitespace cleanups. + +commit 04d94197e69ed7d3cad194e8579631849135b08c +Author: Robert Noland +Date: Tue Feb 24 12:59:08 2009 -0600 + + linux: Add msi_enabled to the drm_device so the build should be happy. + +commit 68707804284438140413987849fee989b9fe4ba8 +Author: Robert Noland +Date: Tue Feb 24 12:28:42 2009 -0600 + + radeon: Prepare radeon for msi support. + +commit d45bc6667c6f10cbb3832178e4a6a8cdd036b739 +Author: Robert Noland +Date: Tue Feb 24 02:00:42 2009 -0600 + + i915: This was part of a sync to the intel driver at some point + + -Remove the old TTM interface + -Move register definitions to i915_reg.h + -Rework the irq handler + +commit c3c21303e381310a0962ecc24af1797dccd9a99f +Author: Kristian Høgsberg +Date: Tue Feb 24 11:33:34 2009 -0500 + + nouveau: Dist nouvea_dma.h as well. + + Oops. Disting is hard. + +commit a71d3edd6c09a0141fae0893cbee21b71578d99d +Author: Kristian Høgsberg +Date: Tue Feb 24 11:19:41 2009 -0500 + + nouveau: Also dist nouveau_private.h. + +commit 1c381092a310af9b1b39b3a983ad5760b71a9025 +Author: Robert Noland +Date: Tue Feb 24 00:22:56 2009 -0600 + + FreeBSD: Rip out the locked task support now that i915 no longer uses it. + +commit 9f94e39f0d5bed48d5ea56767cd92a2509908df0 +Author: Robert Noland +Date: Mon Feb 23 22:39:07 2009 -0600 + + i915: Rip out the use of vblank_swap + +commit 9d402905c07a38e1eb327db96ae561de7930f616 +Author: Robert Noland +Date: Mon Feb 23 20:22:44 2009 -0600 + + FreeBSD: There is no compelling reason to hold the lock here. + + When I was lock profiling, this was high up on the list and I + see no reason to do it. + +commit d6c97868361da48d13a5fe7fe106d67a64969ab1 +Author: Robert Noland +Date: Mon Feb 23 20:16:15 2009 -0600 + + FreeBSD: Don't set PZERO in mtx_sleep. + +commit a9486ee3a8aaae888b4a05ae0d475cfa2a2641cb +Author: Robert Noland +Date: Mon Feb 23 20:01:26 2009 -0600 + + FreeBSD: Set MAP_NOSYNC on mmaps. + + There is no reason to gratuitously sync these maps to swap. + +commit a773ce1db8801fcbbdb55b54172c9cd48b92e2d7 +Author: Eric Anholt +Date: Mon Feb 23 13:30:20 2009 -0800 + + Add libdrm_intel.pc by popular demand. + +commit 6feac49398d0f037103a4ae3d5a512badeed61fb +Author: Ivan Kokshaysky +Date: Mon Feb 23 15:54:18 2009 -0500 + + Fix DRM_CAS() on Alpha. (#16549) + +commit 9fc85b4084b69fefab3dbdf1f6cf97ccb47c963a +Author: Kristian Høgsberg +Date: Mon Feb 23 15:08:03 2009 -0500 + + modetest: Print names of properties. + +commit 4a0d19ef4f210cea9e60c5acc355df03723ef808 +Author: Pekka Paalanen +Date: Sun Feb 22 12:40:47 2009 +0200 + + Fix fix distcheck for optional nouveau stuff. + + Tylo. + + Signed-off-by: Pekka Paalanen + +commit 4d5341340fb6df22fffa7d4a214c54c085a1b1cf +Author: Eric Anholt +Date: Sat Feb 21 10:01:40 2009 -0800 + + Fix distcheck for optional nouveau stuff. + +commit 2f1cdf79a7b7679f2602f27f18a0737f6e40e490 +Author: Eric Anholt +Date: Sat Feb 21 09:57:19 2009 -0800 + + Bump version to 2.4.5 for new API additions. + +commit 72abe983adfe7e8dcdcec11f1bc11d0b3daae063 +Author: Eric Anholt +Date: Wed Feb 18 13:06:35 2009 -0800 + + intel: Add a new bufmgr alloc function to get BOs ready for rendering to. + + This avoids using the oldest BO in the BO cache and waiting for it to be + idle before we turn around and render to it with the GPU. Thanks to + Chris Wilson for pointing out how silly we were being. + +commit a1345338feb7af25c0a9fe02ec16c2b9cce83a9e +Author: Ben Skeggs +Date: Fri Feb 20 09:25:35 2009 +1000 + + libdrm/nouveau: free drmVersion after we're done with it + +commit 18f2fcf5aa299fe3b7b56af37e7eefe78c921f61 +Author: Ben Skeggs +Date: Thu Feb 19 19:40:19 2009 +1000 + + libdrm/nouveau: fix dma debugging + +commit 6a31b445fa494b992d5ddb115dd022058b787fc2 +Author: Pekka Paalanen +Date: Wed Feb 18 22:46:40 2009 +0200 + + nouveau: support backlight only when kernel does + + Loading nouveau.ko would fail with unknown symbols, if the backlight + class device support is not provided in the kernel. Let's make the + backlight support dependant on the kernel configuration. + + This is a bit ugly, the proper way would be to check for the config in + Makefile.kernel whether to build nouveau_backlight.o at all, and if not, + nouveau_drv.h should provide the stubs. + + Signed-off-by: Pekka Paalanen + +commit 25c60cfeca16f2bce38dbf32a57f1edc04c23a19 +Author: Matthew Garrett +Date: Wed Feb 18 13:21:26 2009 +0000 + + nv40, nv50: fix backlight build for <2.6.29 kernels + + Signed-off-by: Matthew Garrett + Signed-off-by: Pekka Paalanen + +commit 96ce587e8b915afeac38e5f547ba95803c1780f2 +Author: Matthew Garrett +Date: Wed Feb 18 02:08:25 2009 +0000 + + nouveau: Add in-kernel backlight control support + + Several nvidia-based systems don't support backlight control via the + standard ACPI control mechanisms. Instead, it's necessary for the driver + to modify the backlight control registers directly. This patch adds + support for determining whether the registers appear to be in use, and + if so registers a kernel backlight device to control them. The backlight + can then be controlled via existing userspace tools. + + Signed-off-by: Matthew Garrett + Signed-off-by: Ben Skeggs + +commit 0054e14793e585ec0d8e95e3d7b82cbf1a684af8 +Author: Pekka Paalanen +Date: Sat Feb 14 22:22:39 2009 +0200 + + drm_compat: remove kmap_atomic_prot_pfn() + + This function is unused, and yet creates build problems: the symbol + init_mm is not exported by the latest -rc kernels and I don't believe it + ever will be. Even CONFIG_UNUSED_SYMBOLS does not provide it anymore. + + If this function is needed in the future, it needs to be reinvented in + any case. So remove it. + + Signed-off-by: Pekka Paalanen + +commit e32aa6226fe98d8342647acf34decd3699eff5e4 +Author: Pekka Paalanen +Date: Mon Feb 16 20:43:02 2009 +0200 + + Remove i915 driver sources from linux-core + + Intel developers have stated, that their DRM development continues + elsewhere in some Linux kernel trees. This makes the code in drm.git + just dead weight. This removal allows further cleanup of compatibility + code. + + shared-core and bsd-core are left untouched this time. + + Signed-off-by: Pekka Paalanen + Acked-by: Eric Anholt + +commit 709b82e1a5971fa58d627912402aa14a6d231cdd +Author: Eric Anholt +Date: Sun Feb 15 18:35:03 2009 -0800 + + intel: Clear ioctl parameter outvalues and pads that confuse valgrind. + + The minor CPU cost here is probably outweighed by bothering us with noise in + the tool. + +commit 084e143d0c82f5bf6e4ccc8c84a01307c820ca93 +Author: Ben Skeggs +Date: Sun Feb 15 22:06:18 2009 +1000 + + nv40: fail completely if we don't have a ctxprog for the chipset + +commit a4ac60a10239bb6d19f6d89f2c044e9b7b29837c +Author: Ben Skeggs +Date: Sun Feb 15 21:52:19 2009 +1000 + + nv50: context info for chipset 0xa0 + +commit 7e5c512104c3ae9b4ddd121f6bbf9464f8d73181 +Author: Ben Skeggs +Date: Wed Feb 11 14:18:03 2009 +1000 + + libdrm: make libdrm_nouveau conditional, disabled by default + + libdrm isn't supposed to ship APIs not present in a released kernel. + +commit eb78c53aa1a980e60c0dd1f2d0d2f04cb9cb2622 +Author: Jakob Bornecrantz +Date: Wed Feb 11 16:43:20 2009 +0100 + + mode: Make xfdrmMode.[c|h] not depend on drm_mode.h + +commit 2d2f105f79921025bce1b9015378612328d2f06e +Author: Pekka Paalanen +Date: Wed Feb 4 21:44:50 2009 +0200 + + nouveau: fix type warnings: void* arith, un/signed + + nouveau_notifier.c had two places where void* was used in arithmetic, + fixed by using char*. + + nouveau_dma_wait(), nouveau_notifier_wait_status() and + nouveau_resource_alloc() had signed/unsigned comparison warnings, fixed + by changing the function parameter into an unsigned type. + + Signed-off-by: Pekka Paalanen + +commit bc92c0edf33f3f38275f6aa4e0639b3ddeef68ca +Author: Ben Skeggs +Date: Wed Feb 11 10:48:36 2009 +1000 + + drm/nv50: fix nv9x chipsets + + NVIDIA do this fun little sequence after updating the PRAMIN page tables. + + On 9xxx chips, none of the PRAMIN BAR bindings (except the initial one) + worked, hence the majority of the setup needed to create a channel + ended up in the wrong place, causing all sorts of fun. + + This is done by NVIDIA on nv8x chips also, so we'll do it for them too, + even though they appear to work without it. + +commit 7bbd605a21200e5e4beb94f261aefe30c4e7853d +Author: Ben Skeggs +Date: Wed Feb 11 10:12:43 2009 +1000 + + drm/nv50: add context info for nv98 + + It won't work yet, just like the other 9xxx chips. Real soon now :) + +commit efcef2c2bcd7a8ea16381cc8d6ae06fff1bc3483 +Author: Ben Skeggs +Date: Tue Feb 10 09:05:09 2009 +1000 + + drm/nv50: use a slightly different initial context for nv96 + + I'm not 100% sure that the nv94 one we were using won't work. The context + layouts are identical (well.. same ctxprog, so of course!), only a couple + of registers differ. But, be safe until we actually get some 9xxx chips + working. + +commit f43039c52c7f27b61316beba5863968996a05bc0 +Author: Ben Skeggs +Date: Tue Feb 10 09:02:17 2009 +1000 + + drm/nv50: correct ramfc pointer in channel header + + Suprisingly the card still worked without this... + +commit 889b811e319ab80a4714854a0c0b242b5e36e0ca +Author: Ben Skeggs +Date: Tue Feb 10 08:57:21 2009 +1000 + + drm/nv50: let the card handle the initial context switch + + Our PFIFO/PGRAPH context save/load functions don't really work well + (at all?) on nv5x yet. Depending on what random state the card is + in before the drm loads, fbcon probably won't work correctly. + + Luckily we've setup the GPU in such a way that it'll actually do a + hw context switch for the first context. Not sure of how successful + this'd be currently on the older chips (actually, pretty sure it won't + work), so NV50 only for now. + +commit 9c8d634e687a5a5b5d314b3fd5b34cc17a217139 +Author: Stuart Bennett +Date: Sat Feb 7 21:20:17 2009 +0000 + + nouveau: don't try to traverse non-existent lists + + Fixes nouveau_ioctl_mem_free Oops + +commit 97fdadee6a79f9406a55c235ee46104814321152 +Author: Ben Skeggs +Date: Thu Feb 5 23:03:29 2009 +1000 + + nouveau: fix some issues where buffer objects never get freed + +commit 8b8803695b24d4cb4d041437a4709be06e59471b +Author: Kristian Høgsberg +Date: Wed Feb 4 12:17:13 2009 -0500 + + modetest: Add syntax to also specify a crtc when setting a mode. + +commit 225e7e274f49d5e01fa1ad3fbbb9f1499865fe67 +Author: Ben Skeggs +Date: Fri Jan 30 11:25:35 2009 +1000 + + nouveau: install libdrm_nouveau with libdrm + +commit cb85630c02ddb46f168064befb2296d46b69f57a +Author: Ben Skeggs +Date: Fri Jan 30 11:18:54 2009 +1000 + + nouveau: bring in new mm api definitions, without the actual mm code + + Use of the new bits is guarded with a mm_enabled=0 hardcode. + +commit 7a389aab86bde183de8806878b8cf055f662ee73 +Author: Kristian Høgsberg +Date: Tue Feb 3 15:03:41 2009 -0500 + + modetest: Use cairo (if available) to paint a better pattern. + +commit 2c113a1b159f57ab94b54316ece49c677cfe04ce +Author: Kristian Høgsberg +Date: Tue Feb 3 14:02:50 2009 -0500 + + modetest: Don't sleep when just dumping state, wait for key for modeset. + +commit 669fde3472ae71c55cc7526e3b3bd6fe00d6a5a5 +Author: Kristian Høgsberg +Date: Tue Feb 3 14:00:00 2009 -0500 + + modetest: Handle setting modes on multiple crtcs with one fb. + +commit d9c55a6becb530dcf11bc980cb6b31843be0b8c2 +Author: Kristian Høgsberg +Date: Tue Feb 3 13:26:22 2009 -0500 + + modetest: Use a more interesting test pattern. + +commit 39755db856794a4d0481d66b46b1b86e46a39b39 +Author: Stephane Marchesin +Date: Mon Feb 2 23:47:11 2009 +0100 + + Remove the "nv" driver. + +commit bf46e0941fc6d342ad38057f23c8a74ac03b72f0 +Author: Kristian Høgsberg +Date: Mon Feb 2 15:47:09 2009 -0500 + + No need to pin buffer anymore in modetest.c + +commit 854bd8f2cae8389d1152993a1d751687632df323 +Author: Stuart Bennett +Date: Thu Jan 29 23:39:50 2009 +0000 + + nouveau: don't save channel context if it has recently become invalid + + Bug exposed by DDX change d9da090c + +commit 408fc85a21689ee9859b64cb90902242bbc7e314 +Author: Stuart Bennett +Date: Sat Oct 25 20:59:38 2008 +0100 + + nouveau: no suspend support for nv50+ + +commit e37bd24d3c99319b372517c2ddb77bfb4829f1df +Author: Eric Anholt +Date: Tue Jan 27 18:00:45 2009 -0800 + + Clean up README for the current state of kernel module affairs. + + Bug #19608. + +commit cbdd6272c04f487c8a63b595829d2d551e2b58f8 +Author: Eric Anholt +Date: Tue Jan 27 17:16:11 2009 -0800 + + intel: don't count fences on 965 and later, as they don't use them. + +commit 9209c9a653e40d66435fbee7dde7450d5e470e03 +Author: Eric Anholt +Date: Tue Jan 27 16:54:11 2009 -0800 + + intel: Fix under-counting of fences registers required in check_aperture. + +commit 2fa5f28eeef4ce13a48c1998856a115c7e4161ac +Author: Jesse Barnes +Date: Fri Jan 23 14:13:45 2009 -0800 + + intel: libdrm support for fence management in execbuf + + This patch tries to use the available fence count to figure out whether a + given batch can succeed or not (just like the aperture check). + + Signed-off-by: Jesse Barnes + Signed-off-by: Eric Anholt + +commit 26ca0bca9bd5e23b1d31bc6dfb6d58b62143447b +Author: Pekka Paalanen +Date: Tue Jan 27 22:39:50 2009 +0200 + + drm compat: fix euid for >=2.6.28 + + drm_fops.c reads the current process' EUID directly from task_struct. + Apparently starting in 2.6.28-rc4 this fails to build. + + In Linus' tree, commit b6dff3ec5e116e3af6f537d4caedcad6b9e5082a + "CRED: Separate task security context from task_struct" + moves the euid field from task_struct to another struct. + + Earlier commit 9e2b2dc4133f65272a6d3c5dcb2ce63f8a87cae9 + "CRED: Introduce credential access wrappers" implements the wrapper + macros to access e.g. euid. This is in 2.6.27-rc4, and this contains the + definition of current_euid() that will be used in the DRM compatibility header + for kernels before 2.6.27. That commit also creates , which + contains the upstream definition of current_euid(). + + drm_fops.c is fixed to use current_euid(), and drm_compat.h will offer + the compatibility definition for kernels <2.6.27. + + Signed-off-by: Pekka Paalanen + +commit e6a062c21a73ac4ab420648e78c6fe1798de6cbd +Author: Ben Skeggs +Date: Tue Jan 27 08:36:33 2009 +1000 + + nv50: support chipset NV96 + + ctxprog seen in okias' trace identical to one we use on NV94, assuming + the initial context values for NV94 will work here too. + +commit 753d4c39ff87f6b73dac72db4444b7627f39d2a9 +Author: Ben Skeggs +Date: Thu Nov 13 13:04:21 2008 +1100 + + nv04-nv40: correct RAMHT size + +commit 27fae006853647ad0087067adc4eaa8d4ed4594a +Author: Dave Airlie +Date: Mon Jan 19 06:46:23 2009 +1000 + + drm: remove drmstat/dristat from linux-core build + + pointed out by pq + +commit 18d3cc076b53f2032eed1f9a4b21947f4cb9e4e7 +Author: Eric Anholt +Date: Wed Jan 14 16:11:32 2009 -0800 + + bump version to 2.4.4 + +commit 02445eab6432709abe2b06020c014be527d58ead +Author: Eric Anholt +Date: Sun Jan 4 17:37:18 2009 -0800 + + intel: Retry pin ioctl on -EINTR. + +commit 65b90fb37744fdd335c59fdc70079fa058301858 +Author: Owain G. Ainsworth +Date: Sat Jan 10 18:48:46 2009 +0000 + + Don't use DRM_BO_FLAG_NO_MOVE in bufmgr fake. It's a ttm flag. + + It's also unused, so worthless. + +commit 13ff0e58c36458a058e5c0676af04000c64a94f6 +Author: Owain G. Ainsworth +Date: Sun Jan 11 19:02:07 2009 +0000 + + Remove drmModeReplaceFb after it was removed from the kernel. + + It is impossible to replace the original semantics of this call purely + in userland, since the fb_id would change. + + after discussion with Dr_Jakob + + Signed-Off-By: Owain Ainsworth + Acked-By: Jakob Bornecrantz + +commit ac8b3308b9432edef5cabe30559004314d42d98c +Author: Ben Skeggs +Date: Mon Jan 12 10:16:07 2009 +1000 + + nv50: ack nsource to prevent continuous protection fault irqs + +commit badc63464cbd64606c6dff9ea561a787d072fd5f +Author: Jesse Barnes +Date: Wed Jan 7 11:47:52 2009 -0800 + + libdrm: add autoconf check for clock_gettime + + Should be more portable this way. + +commit ca37077fb78b69a00500827f1db12b70affa1514 +Author: Jesse Barnes +Date: Wed Jan 7 10:48:26 2009 -0800 + + libdrm: only check for vblank timeout if we caught EINTR + + Michel caught a case where we might overwrite a success or other return + value with EBUSY, so check the return value before checking for the + timeout condition. + +commit f4f76a6894b40abd77f0ffbf52972127608b9bca +Author: Jesse Barnes +Date: Wed Jan 7 10:18:08 2009 -0800 + + libdrm: add timeout handling to drmWaitVBlank + + In some cases, vblank interrupts may be disabled or otherwise broken. + The kernel has a 3s timeout builtin to handle these cases, but the X + server's SIGALM for cursor handling may interrupt vblank wait ioctls, + causing libdrm to restart the ioctl, making the kernel's timeout + useless. + + This change tracks time across ioctl restarts and returns EBUSY to the + caller if the expected vblank sequence doesn't occur within 1s of the + first call. + + Fixes fdo bz #18041, which is caused by a drmWaitVBlank hanging due to + the corresponding pipe getting disabled (thus preventing further events + from coming in). + +commit a8c548034e38d7fb8afeca100230818b3cfcb9d9 +Author: Jesse Barnes +Date: Mon Dec 29 09:21:58 2008 -0800 + + Remove executable from modeprint test dir + + Accidentally committed it with the mode setting changes. + +commit 58d557c73b9e4ad1964fd083abeec74875c141cb +Author: Robert Noland +Date: Tue Dec 23 13:56:23 2008 -0500 + + [FreeBSD] Fix build on FreeBSD after modesetting import. + +commit b48bd3a036efa3c3aa759759a5be4f80f1c3ac72 +Author: Dave Airlie +Date: Tue Dec 23 11:22:44 2008 +1000 + + radeon: only write irq regs if irq is enabled + +commit dfd7fdafd8a2bad0d63ced4a969b6278c221c000 +Author: Eric Anholt +Date: Wed Dec 17 13:55:53 2008 -0800 + + intel: Rename plane[AB]* back to pipe[AB]*. + + The values are really going to continue meaning pipe, not plane, and that's + what they're called in the kernel copy of the header. Userland hasn't ever + made the switch to pipe!=plane, since userland checks are based on DRM + version, which is still stuck at 1.6. However, Mesa did start using + plane[AB] names, so provide a compat define. + +commit 28771e06dfe45027be6618f87335c19e8e88e3f6 +Author: Eric Anholt +Date: Wed Dec 17 13:47:59 2008 -0800 + + intel: Remove linux build of i915 DRM, as it's unmaintained and a user trap. + + The code's in the linux kernel. + +commit d221e00105477be824ff8878ba3c06b77efff84f +Author: Eric Anholt +Date: Wed Dec 17 13:45:01 2008 -0800 + + intel: Sync GEM ioctl comments for easier diffing against the kernel. + +commit 0243c9f801a35de3465a0321c02f18a4d07ce5b8 +Author: Kristian Høgsberg +Date: Thu Dec 18 00:02:43 2008 -0500 + + modetest: Print more stuff. Prettier. + +commit 06ab2f6436e26f77292d53e3ce2fe547d4a79fe3 +Author: Eric Anholt +Date: Wed Dec 17 10:41:21 2008 -0800 + + libdrm: Fix modetest/modeprint to use automake stuff. + +commit 18f091d136cd44ab397817f8a3e89c21e9561a31 +Author: Keith Packard +Date: Mon Dec 15 15:08:12 2008 -0800 + + intel: Cache tiling/swizzle state in user mode. Reset tiling on reuse. + + Remember tiling mode values provided by appplications, and + record tiling mode when creating a buffer from another application. This + eliminates any need to ask the kernel for tiling values and also makes + reused buffers get the right tiling. + + Signed-off-by: Keith Packard + +commit 40334c64107a2938c41af6e34bda9f2094d1c6ec +Author: Keith Packard +Date: Mon Dec 15 15:08:17 2008 -0800 + + intel: Debug output %u vs uint64_t warning fix + + Signed-off-by: Keith Packard + +commit bd14b2cf7551826c6437bbf1d8409cebd45615a5 +Author: Keith Packard +Date: Sat Dec 13 11:06:11 2008 -0800 + + intel: return error status from drm_intel_gem_bo_map + + Applications may actually care if the mapping operation failed, so when + it happens, return an error indication. errno is probably trashed by + fprintf though. + + Signed-off-by: Keith Packard + +commit b13f4e1a32ab98fa719a3233cad59ff4d49cfb38 +Author: Keith Packard +Date: Fri Nov 21 01:49:39 2008 -0800 + + intel: Dump out memory usage information when the kernel fails to pin + + The execbuffer ioctl returns ENOMEM when it fails to pin all of the buffers + in the GTT. This is usually caused by the DRM client attempting to use too + much memory in a single request. Dumping out the requested and available + memory values should help point out failures in the DRM code to catch over + commitments of this form. + + Signed-off-by: Keith Packard + +commit 731cd5526e5c732d51307b26e784f454a724a699 +Author: Jesse Barnes +Date: Wed Dec 17 10:09:49 2008 -0800 + + libdrm: add mode setting files + + Add mode setting files to libdrm, including xf86drmMode.* and the new + drm_mode.h header. Also add a couple of tests to sanity check the + kernel interfaces and update code to support them. + +commit c86d431fe6174b1c2de531929213ea7dbd92326d +Author: Eric Anholt +Date: Sun Dec 14 14:39:24 2008 -0800 + + intel: don't skip set_domain on mapping of shared buffers. + +commit cebbd2edb54db1780a57b3873d1d3e40cb20043f +Author: Eric Anholt +Date: Sun Dec 14 14:35:48 2008 -0800 + + intel: don't let named buffers into the BO cache. + + We wouldn't want some remaining 3D rendering to scribble on our batchbuffer. + +commit 782316801beeaf237af8272c41af93c96c708ac4 +Author: Eric Anholt +Date: Sun Dec 14 14:32:09 2008 -0800 + + intel: Remove the mapped flag, which is adequately covered by bo_gem->virtual. + +commit 9583c099b4a08b49e03f7b461c344b6d277fd262 +Author: Jesse Barnes +Date: Wed Dec 10 15:47:28 2008 -0800 + + Revert "Merge branch 'modesetting-gem'" + + This reverts commit 6656db10551bbb8770dd945b6d81d5138521f208. + + We really just want the libdrm and ioctl bits, not all the driver + stuff. + +commit c34539e8bb5568b1d6059abf139dd08e07e84eea +Author: Jesse Barnes +Date: Wed Dec 10 15:37:45 2008 -0800 + + Bump version to 2.4.3 to reflect addition of mode setting header + +commit b718b93d75664cff0af42d4f76525546a6b14544 +Author: Jesse Barnes +Date: Wed Dec 10 15:37:29 2008 -0800 + + Update .gitignore with new modetest program + +commit 6656db10551bbb8770dd945b6d81d5138521f208 +Merge: c99566f 12e68f8 +Author: Jesse Barnes +Date: Tue Dec 9 10:23:43 2008 -0800 + + Merge branch 'modesetting-gem' + +commit c99566fb810c9d8cae5e9cd39d1772b55e2f514c +Author: Dave Airlie +Date: Mon Dec 8 14:05:32 2008 +1000 + + libdrm: bump to 2.4 for lib version + + we already have a 2.3.x version out there + +commit 12e68f8059485fb4f02a15f74ab2fa3bdff38c81 +Merge: d5d5aca b0d93c7 +Author: Jesse Barnes +Date: Wed Dec 3 11:54:07 2008 -0800 + + Merge branch 'master' into modesetting-gem + +commit d5d5aca7f959f0e357f99dd517a421c015d0712f +Merge: 10c3e1a 7e4e0fb +Author: Jesse Barnes +Date: Wed Dec 3 11:53:36 2008 -0800 + + Merge branch 'master' into modesetting-gem + +commit b0d93c74d884b40bd94469a5ef75fdb2fef17680 +Author: Eric Anholt +Date: Mon Dec 1 11:49:11 2008 -0800 + + Bump version to 2.4.2 to signal new libdrm_intel functions. + +commit 6fb1ad767d64acbd904865bb429547c3805839cf +Author: Eric Anholt +Date: Thu Nov 13 11:44:22 2008 -0800 + + intel: Add a function for setting (GTT,GTT) domain, for use by UXA. + + This function can also serve the role that the bo_wait_rendering did, when + write_enable is unset. + +commit 7e4e0fbbb82b0467d46386bcac1115812aaa1393 +Author: Ben Skeggs +Date: Sun Nov 23 18:49:09 2008 +1100 + + nv50: support NV94 chipset + +commit 52232ad702474c7f93963642987314a905ef52aa +Author: Ben Skeggs +Date: Fri Nov 21 12:43:44 2008 +1100 + + nv50: update context-related tables for original 8800GTS + + I either messed up when I pulled these from a mmio-trace last time, or + the previous values didn't work on my card. Hopefully it's the former! + + In any case, at least one of the original NV50 chipsets work now. + +commit 10c3e1a8b55355b1ae1697ebf3d77ac4702d61c9 +Merge: 5923831 2e2fd6c +Author: Jesse Barnes +Date: Thu Nov 20 11:01:24 2008 -0800 + + Merge branch 'master' into modesetting-gem + +commit 2e2fd6c63204cbea3b29a4872be77ac69677c841 +Author: Jesse Barnes +Date: Thu Nov 20 11:00:29 2008 -0800 + + DRM: make drm_map_type match upstream kernel + + Since the TTM type isn't upstream yet, we need to make sure libdrm uses + what the kernel uses, which is _DRM_GEM = 6. + +commit 5923831bafca3cf2358ffc7f8b0079ab4de9da5c +Author: Jesse Barnes +Date: Thu Nov 20 10:57:33 2008 -0800 + + DRM: make drm_map_type match kernel + + GEM is upstream, but TTM isn't, so _DRM_GEM needs to be 6, not 7. + +commit c029ed2510f32318d4bd6a195e81712d1b4ea29b +Author: Stephane Marchesin +Date: Wed Nov 19 23:17:27 2008 +0100 + + Unbreak drm build. + +commit c67a83dfe1b60f81343ff7c2604a96b18ecb3b0c +Merge: 60c1e3a e98eda9 +Author: Jesse Barnes +Date: Wed Nov 19 12:42:49 2008 -0800 + + Merge branch 'modesetting-gem' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-gem + +commit 60c1e3a09e33bfaec893c1d4780553b9b344293a +Author: Jesse Barnes +Date: Wed Nov 19 10:56:48 2008 -0800 + + libdrm_intel: fix merge error + + don't take the lock twice + +commit 8f5d8ba97e82072b2403bff0bf836a09640108a6 +Author: Jesse Barnes +Date: Wed Nov 19 10:54:11 2008 -0800 + + Update modetest + +commit e98eda91593b7c0a7494475be8cfd8cb4740f8ec +Author: Jerome Glisse +Date: Mon Nov 17 13:35:51 2008 +0100 + + Revert "gem: protect idr_pre with the spinlock" + + This reverts commit f46aba43329786c9b2776e82af31d90e1c67eae0. + +commit f46aba43329786c9b2776e82af31d90e1c67eae0 +Author: Jerome Glisse +Date: Sun Nov 16 18:13:16 2008 +0100 + + gem: protect idr_pre with the spinlock + + There seems to be an issue if we don't protect idr_pre with + the spinlock we use for idr operations. + +commit 7270731a8b7ebe11fe6df4f368c2ed613a530b52 +Author: Jerome Glisse +Date: Sun Nov 16 18:11:00 2008 +0100 + + radeon: protect cs ioctl atomic part with a mutex + + A small subset of CS need to be atomic (relocation+IB commit to + ring) right now, because of the way relocation are handled, we + need to protect the whole ioctl. + +commit c0ba14fd90e7495d5634c1ce0a9fb5be26230010 +Author: Jerome Glisse +Date: Sun Nov 16 18:04:43 2008 +0100 + + libdrm-radeon: add print callback to cs & small fixes + +commit 5ae79e7edd819b84d9e447a2ab9b995a862ac3a7 +Author: Jerome Glisse +Date: Sat Nov 15 10:38:44 2008 +0100 + + libdrm-radeon: unref return current BO ptr to reflect BO destruction + +commit 1f6602185455957bde0fac09dcab5215326d49a0 +Author: Dave Airlie +Date: Sat Nov 15 12:30:09 2008 +1000 + + drm/bo: fix stupid lock imbalance + +commit 080a45624b2b0ac9e0173f5b93760ae018394dd1 +Author: Jerome Glisse +Date: Fri Nov 14 12:13:53 2008 +0100 + + libdrm-radeon: unreference buffer once cs stream is submited or on cs clean + + BO are referenced once by reloc to make sure that they not destroyed + before we get a chance to flush the cmd stream, so we need to unreference + them once in cs submit or cs erase if cs i never submitted so bo can + be destructed. + +commit bfbecc5c42d9669fceaab683d1464dd353be9492 +Author: Jerome Glisse +Date: Fri Nov 14 12:08:27 2008 +0100 + + libdrm-radeon: new tracker tools + + To keep record of bo activities and print them when necessary, + should help in tracking unbalanced ref/unref calls. + +commit 965b4d662a5236ee5aeb94a70f62565b6ed5644c +Merge: 9a4cb7e 7e27b3b +Author: Jesse Barnes +Date: Thu Nov 13 15:30:06 2008 -0800 + + Merge branch 'master' into modesetting-gem + + Conflicts: + + libdrm/Makefile.am + libdrm/intel/intel_bufmgr.h + libdrm/intel/intel_bufmgr_fake.c + libdrm/intel/intel_bufmgr_gem.c + shared-core/drm.h + shared-core/i915_dma.c + shared-core/i915_irq.c + shared-core/radeon_cp.c + shared-core/radeon_drv.h + +commit 7e27b3ba88f0c40680380636a436c18e3220c7ce +Author: Jesse Barnes +Date: Thu Nov 13 13:58:32 2008 -0800 + + libdrm_intel: fix warnings on 64 bit + + Cast a couple of %llx args to unsigned long long. + +commit 276c07d8855f748c043dfe3ab8c4da954ba0fe1e +Author: Jesse Barnes +Date: Thu Nov 13 13:52:04 2008 -0800 + + libdrm: add support for i915 GTT mapping ioctl + + Add a drm_intel_gem_bo_map_gtt() function for mapping a buffer object + through the aperture rather than directly to its CPU cacheable memory. + +commit 9a4cb7eab4f74747cc777a3fef31dbb46e1191e5 +Author: Jakob Bornecrantz +Date: Wed Nov 12 19:17:18 2008 +0100 + + mode: Minor reodering and renaming + +commit 17789a409d3e83cad9f5cf06c2bb7123b78746b2 +Author: Jakob Bornecrantz +Date: Wed Nov 12 19:10:50 2008 +0100 + + mode: Reorder the ioctls and numbering + + This is to fill in the gaps left by the removal of + the hotplug ioctls. And they also look better :) + +commit ea849d7ca6aaedd3aba6ec7239f01426521d8604 +Author: Jakob Bornecrantz +Date: Wed Nov 12 18:49:46 2008 +0100 + + mode: Unify userspace API to uint_t + +commit 1ead45c8f02e7c51cfe977383726d20479385688 +Author: Jakob Bornecrantz +Date: Wed Nov 12 18:40:04 2008 +0100 + + mode: Remove hotplug support from ioctl interface + +commit 13948c635d83285909e25ffd5285165789a598b2 +Author: Jakob Bornecrantz +Date: Wed Nov 12 18:16:38 2008 +0100 + + mode: Unify types for ids and strings + +commit a7457915f5775137436f3b16a640eb8bd6424ca6 +Author: Jerome Glisse +Date: Wed Nov 12 15:56:40 2008 +0100 + + radeon+libdrm-radeon: change relocation informations + + Relocation now consist of the following informations (in this order) : + handle buffer object handle identifier + start_offset start offset of first data of the buffer object used by the cs + end_offset end offset of last data of the buffer object used by the cs + read_domain read domain (either VRAM, or GTT as GPU is invalid for CS) + write_domain write domain (either VRAM, or GTT as GPU is invalid for CS) + flags flags used for further optimization (like discard previous + buffer content or forget buffer content after cs which can + help in avoiding moving content in or out) + +commit 6d59bad8e9cab6170e1af3d67597b6f5f145c33f +Merge: 72997fb 15464f5 +Author: Jerome Glisse +Date: Mon Nov 10 22:21:32 2008 +0100 + + Merge branch 'modesetting-gem' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-gem + +commit 72997fb3726b99b99c44e96e59abd8c70abbd8be +Author: Jerome Glisse +Date: Mon Nov 10 22:18:22 2008 +0100 + + libdrm-radeon: be verbose on bo failure and cleanup cs a bit + +commit 15464f5181538d01e8fc016211daa1a824b89531 +Author: Dave Airlie +Date: Mon Nov 10 15:38:32 2008 +1000 + + radeon: add gart useable size to report to userspace + +commit 532c63cddd273bffab715e3d387268abe164f148 +Author: Dave Airlie +Date: Mon Nov 10 15:37:51 2008 +1000 + + radeon: upgrade atom headers + +commit 213a71f31b174dcae2ef5b3d8b124c1fb62d1866 +Author: Dave Airlie +Date: Mon Nov 10 15:37:36 2008 +1000 + + radeon: fix fence race condition hopefully + + For some reason reading the SCRATCH reg from RAM causes some race to occur. + Hopefully fix this. + +commit 195cc0d817f99e25a1e961deeabbb15a40b789ed +Author: Dave Airlie +Date: Mon Nov 10 15:37:16 2008 +1000 + + drm/radeon: add dpms connector functions + +commit 327631c8b50a90c8f694ffd9ebd0e5c618e99dff +Author: Dave Airlie +Date: Mon Nov 10 15:35:34 2008 +1000 + + radeon: avivo cursors are across the full surface. + + fixes cursor on second head + +commit b1cf46378a54230291ba9fdb4dbbd4bc4befe049 +Author: Dave Airlie +Date: Mon Nov 10 15:35:16 2008 +1000 + + modesetting: set the crtc x,y after the mode base change + +commit 241a9b64141b2dd09449e581017b5ca0c0cc2357 +Author: Dave Airlie +Date: Mon Nov 10 15:30:21 2008 +1000 + + drm/radeon: add uncached allocator to drm ttm code. + +commit 994f2405030f7f595c4ec6bee524f7c06f27cd7b +Author: Dave Airlie +Date: Mon Nov 10 15:25:27 2008 +1000 + + radeon: fix ring tail overflow issue since alignment + +commit 758376e6eb2155605ad502d0dc5147c74f3c47a6 +Author: Dave Airlie +Date: Mon Nov 10 15:25:12 2008 +1000 + + radeon: disable HDP read cache for now + +commit 08ef5b5e677579892a454d44a96a12dc771b56ac +Author: Dave Airlie +Date: Mon Nov 10 15:24:42 2008 +1000 + + radeon: force all ring writes to 16-dword alignment. + +commit 31b0c4cd20d0eb843268a6307b7c32dbc07e42a0 +Author: Dave Airlie +Date: Mon Nov 10 15:13:08 2008 +1000 + + radeon: fixup vram visible calculation to take a/c pinned objects for now + +commit 7abb8416a7fd8d69f1f2317cdac2baa8e640671e +Author: Jerome Glisse +Date: Sun Nov 9 18:48:46 2008 +0100 + + radeon: add more packet3 relocations handling + +commit 751d024dd5c91831a8141810c0f40ecdb235e7ca +Author: Jerome Glisse +Date: Sun Nov 9 18:45:43 2008 +0100 + + libdrm-radeon: update libdrm-radeon to match current CS relocation structures + +commit 930c0e7cf4f4776f7a69e7acc6fedeed7addb235 +Author: Eric Anholt +Date: Fri Nov 7 12:58:52 2008 -0800 + + intel: Restart on interrupt of bo_wait_rendering instead of complaining. + +commit 273cc1a69887df2bccfab96120f992c506c9035e +Author: Jerome Glisse +Date: Thu Nov 6 00:40:06 2008 +0100 + + radeon: lib radeon add bo & cs gem backend + +commit 2d822542c74c9a38d18724f568642397b5a4d13d +Author: Jerome Glisse +Date: Wed Nov 5 16:00:04 2008 +0100 + + radeon: libdrm_radeon add handle to debug string + +commit ddfb12b32e64d00d302f7fbb36fb079deec3646f +Merge: 7651b4c 68fcb77 +Author: Jerome Glisse +Date: Wed Nov 5 15:59:37 2008 +0100 + + Merge branch 'modesetting-gem' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-gem + +commit 68fcb7770efc20b9e27b1724e2fb5ac112a5330e +Author: Dave Airlie +Date: Mon Nov 3 09:58:12 2008 +1000 + + radeon: make build again + +commit b7108445c9ebb37d06fcc7821e984124fda928f3 +Author: Dave Airlie +Date: Mon Nov 3 09:52:40 2008 +1000 + + radeon: fix ROP values for the paint ROP + +commit 0e1df6216e7ce3a69d4311e4685613e57129285f +Author: Dave Airlie +Date: Mon Nov 3 09:52:25 2008 +1000 + + radeon: add mtrr support for VRAM aperture. + +commit 2b9a7d5381534122858dc6e407794e8cd5c04d3e +Author: Dave Airlie +Date: Mon Nov 3 09:51:57 2008 +1000 + + radeon: disable AGP for certain chips if not specified until we figure it out + +commit d3aa052f6174ea37136574b68ed55d7cb82c5017 +Author: Dave Airlie +Date: Mon Nov 3 09:51:33 2008 +1000 + + radeon: disable debugging message + +commit 28c9eb7b7493ee2478df66476c742432525f1efa +Author: Dave Airlie +Date: Mon Nov 3 09:50:46 2008 +1000 + + radeon: commit ring after emitting the buffer discards + +commit c153a86af7e4e782e55565f882ef2c8618650150 +Author: Dave Airlie +Date: Mon Nov 3 09:49:59 2008 +1000 + + radeon: add more HDMI bits + +commit 49551f87fcd21e10a4485b3e00af47f0b9f94a0f +Author: Dave Airlie +Date: Mon Nov 3 09:49:41 2008 +1000 + + radeon: set dma bufs bo type to a kernel type + +commit cdddff835510eca179ac289f41a1771093939901 +Author: Dave Airlie +Date: Mon Nov 3 09:48:10 2008 +1000 + + radeon: enable DVI-D + HDMI connectors. + + This allows the rs690 to work on DVI + +commit e829d5b6bc9f5887c82653c007641c3c37f7ae67 +Author: Dave Airlie +Date: Mon Nov 3 09:47:49 2008 +1000 + + radeon: setup isync cntl properly + +commit 13d9acd3110a32d94434311821362900a9463cf4 +Author: Dave Airlie +Date: Mon Nov 3 09:47:14 2008 +1000 + + radeon: add more debugging + +commit 31b8a640db9b55638bf9967f0d78ec665fa8839f +Author: Dave Airlie +Date: Mon Nov 3 09:46:54 2008 +1000 + + radeon: overhaul ring interactions + + emit in 16-dword blocks, emit irqs at same time as everything else + +commit ce2cd141c36f330da7e9fb9a281e51abab88e0d1 +Author: Dave Airlie +Date: Mon Nov 3 09:46:07 2008 +1000 + + radeon: fix race in sysfs + +commit 4ef8ace9a96bd6bb4040ef5c4c3ea5572d7129e1 +Author: Dave Airlie +Date: Mon Nov 3 09:45:43 2008 +1000 + + radeon: add proc debugging for interrupts/ring + +commit be3dac976e07fbfd727a2d0216ea9ba3247db348 +Author: Dave Airlie +Date: Mon Nov 3 09:44:32 2008 +1000 + + radeon: only enable dynclks if asked for + +commit 31f8d4218c0f6455751d8bbc788172912359b0df +Author: Dave Airlie +Date: Mon Nov 3 09:44:03 2008 +1000 + + radeon: add wait rendering API + +commit fc25c81eab2d847c854e0a44cae29f8c2213bba6 +Author: Dave Airlie +Date: Mon Nov 3 09:43:29 2008 +1000 + + radeon: rs480 fixes for bus mastering + +commit 4ccec67a239517458bace47bf08f6770393abb37 +Author: Dave Airlie +Date: Mon Nov 3 09:42:01 2008 +1000 + + radeon: remove unused gem indirect ioctl + +commit f5e6dbef797cff18953e4f3271e1c74a0b24b715 +Author: Dave Airlie +Date: Mon Nov 3 09:41:30 2008 +1000 + + radeon: fix some warnings + +commit e57072b5ee521ec799d0aa0ef84a7d01d8479202 +Author: Dave Airlie +Date: Mon Nov 3 09:41:12 2008 +1000 + + radeon: fix free after refcount + +commit 6000fa686294019e93f815433a1a9b44db511a69 +Author: Dave Airlie +Date: Mon Nov 3 09:40:52 2008 +1000 + + radeon: CS2 make it all work with new relocs style + +commit 35f080559287ebf30f417337fa124d827709503b +Author: Dave Airlie +Date: Mon Nov 3 09:40:24 2008 +1000 + + radeon: don't copy to user the cs ids + +commit 8b2925468d326ab6fa31a312e845a3bc71343106 +Author: Dave Airlie +Date: Mon Nov 3 09:39:53 2008 +1000 + + radeon: make new CS2 command submission interface port older interface to this + +commit 563e7e5930a8d628b33cb1f7a9aaea251f2fc50b +Author: Dave Airlie +Date: Mon Nov 3 09:36:03 2008 +1000 + + radeon/drm: fixup ref counting in on fb objs + +commit fd9e05b3f4f464ddf08097817a3af824f54a97ca +Author: Dave Airlie +Date: Mon Nov 3 09:33:32 2008 +1000 + + radeon: release agp on module unload + +commit 624da91277ee33936ea3cfaf20e7f6775293deb2 +Author: Dave Airlie +Date: Mon Nov 3 09:33:12 2008 +1000 + + radeon: add r423 bits to modesetting + +commit 1c817cc3fc09abe93539413130de3875e4c7eafe +Author: Dave Airlie +Date: Mon Nov 3 09:32:39 2008 +1000 + + radeon: pull bus master enable into its own function + +commit 653b16f2dd32b5fdbd5f97277edc1c6df66755a9 +Author: Dave Airlie +Date: Mon Nov 3 09:31:17 2008 +1000 + + radeon: fix accessible VRAM sizing + +commit b4803991c8ad8596786f8cf1cffc6417c8ce446a +Author: Dave Airlie +Date: Mon Nov 3 09:30:48 2008 +1000 + + radeon: update proper chip family + +commit 3fd0e1483ebe640b69da888e286ea85d11539b46 +Author: Dave Airlie +Date: Mon Nov 3 09:29:22 2008 +1000 + + radeon: fixup scratch register interactions properly + +commit a066a5f908af0e82b1a0c7099b73d4a63585c69d +Author: Dave Airlie +Date: Mon Nov 3 09:28:56 2008 +1000 + + radeon: make writeback work again + +commit 0dbe3436ee6e3f2a4d6d252ef5e31b7bb7e36764 +Author: Dave Airlie +Date: Mon Nov 3 09:28:36 2008 +1000 + + radeon: fix some warnings + +commit 52ef9d87db8d3b7e0e9114f987263292e8e12d6a +Author: Dave Airlie +Date: Mon Nov 3 09:27:00 2008 +1000 + + radeon: fix small typo in agp code + +commit a8f07db596532912e354bb7a2b3acdfc11a8d150 +Author: Dave Airlie +Date: Mon Nov 3 09:26:32 2008 +1000 + + radeon: workaround failure to parse some rs48x edid + +commit d275f99c9a7d915473034e6abd575f35bea5db9c +Author: Dave Airlie +Date: Mon Nov 3 09:26:00 2008 +1000 + + radeon: don't enable dynclks on rs48x + +commit 48f222751643a349924ba3e6c26890310822f89c +Author: Dave Airlie +Date: Mon Nov 3 09:25:32 2008 +1000 + + radeon: export radeon_modeset + +commit f74721fc2553d81acfe4d4a670833405dd52092b +Author: Dave Airlie +Date: Mon Nov 3 09:24:13 2008 +1000 + + radeon: fix unused agp functionality + +commit b09cb93e2d188228e26135149786ee231cd9b11d +Author: Dave Airlie +Date: Mon Nov 3 09:23:19 2008 +1000 + + radeon: add some more r100 support to test AGP + +commit 7651b4c424aa6c6ac6c47b2d07c8f65d0b9d0191 +Author: Jerome Glisse +Date: Sun Nov 2 16:00:06 2008 +0100 + + radeon: debug bo + +commit 87e90c73620b88005fcca5fd40aaaad0b08932e1 +Author: Pekka Paalanen +Date: Sun Nov 2 13:48:32 2008 +0200 + + nouveau: compat fix for set_page_locked(). + + The set_page_locked() function has changed its name again. + 2.6.28 offers __set_page_locked() instead, which uses non-atomic + __set_bit() to do the work. In this case, offer our own + set_page_locked() using the atomic set_bit(), because I do not know + if atomic access is really necessary. Atomic behaviour is the one + previously expected. + + Signed-off-by: Pekka Paalanen + +commit 00847dabe0fa5ccf796658f486e8f6f7a77e043b +Author: Eric Anholt +Date: Thu Oct 30 11:36:46 2008 -0700 + + libdrm 2.4.1. + +commit 4b9826408f65976a1a13387beda748b65e03ec52 +Author: Eric Anholt +Date: Thu Oct 30 09:33:07 2008 -0700 + + intel: Rename dri_ and intel_ symbols to drm_intel_. + + I wanted to avoid doing this, as it's a bunch of churn, but there was a + conflict between the dri_ symbols in libdrm and the symbols that were in + Mesa in 7.2, which broke Mesa 7.2 AIGLX when the 2D driver had loaded new + libdrm symbols. The new naming was recommended by cworth for giving the + code a unique prefix identifying where the code lives. + + Additionally, take the opportunity to fix up two API mistakes: emit_reloc's + arguments were in a nonsensical order, and set_tiling lacked the stride + argument that the kernel will want to use soon. API compatibility with + released code is maintained using #defines. + +commit 40c64eb5243bbd511f30e68cb4abce55b364a74f +Merge: 5d86195 1db35ba +Author: Jerome Glisse +Date: Wed Oct 29 23:41:48 2008 +0100 + + Merge branch 'modesetting-gem' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-gem + +commit 5d861951b3714d13292d18f3731294c83e209b3a +Author: Jerome Glisse +Date: Wed Oct 29 23:40:20 2008 +0100 + + radeon: libdrm_radeon updates bo & cs interfaces + +commit 1db35ba58353b862ca04a190d46c6f074a21f223 +Author: Jesse Barnes +Date: Wed Oct 29 12:17:39 2008 -0700 + + libdrm: fix ABI change in drm_mode_get_encoder + + The encoder_type field should be at the top to match the kernel. + +commit 0e867312323fa51af324228b98bff4f49a813481 +Author: Eric Anholt +Date: Tue Oct 21 00:10:54 2008 -0700 + + intel: Add dri_bufmgr_check_aperture support for bufmgr_gem. + + This relies on a new kernel ioctl to get the available aperture size. + + In order to provide reasonable performance from dri_bufmgr_check_aperture, we + now require that once a buffer has been used as the target of a relocation, + it gets no further relocations added to it. This cuts the cost of + check_aperture from 10% to 1% in the 3D driver with no code changes, but + slightly complicates our plans for the 2D driver. + +commit e47ab7a5081e178bad385ce2e75b01474ea7aa4c +Author: Ben Skeggs +Date: Tue Oct 28 12:00:08 2008 +1100 + + nv50: symlink nv50_grctx.h to linux-core... + +commit 48b73904b485d679df879522719e4451fdb96ab6 +Author: Ben Skeggs +Date: Tue Oct 28 11:38:30 2008 +1100 + + nv50: move context-related tables a separate header file + + This turns the various nvXX_graph_init_ctxvals() methods into tables, + and speeds up compliation of nv50_graph.c quite a bit. This has bothered + me for a while, but others are complaining now so it's time to fix it :) + +commit af118cd186407cd8e72ccd63f6deca56f1ffd905 +Author: Jerome Glisse +Date: Mon Oct 27 23:26:15 2008 +0100 + + radeon: reloc are backend dependant + +commit 89ef1b5483bb234278fe40e193643fc9777f50d4 +Author: Pekka Paalanen +Date: Mon Oct 27 21:21:15 2008 +0200 + + drm: missing init_mm symbol, compatibility fix + + The drm_compat.c version of kmap_atomic_prot_pfn() uses the macro + pgd_offset_k(), which references the symbol init_mm. + Starting in 2.6.25, init_mm is no longer exported by default. + + The only user of kmap_atomic_prot_pfn() is i915, so this should + not hurt anyone, and it allows people to load drm.ko. + + Signed-off-by: Pekka Paalanen + +commit 145d2d610b90b6129bbbebd1e1f8c71f9147cbde +Author: Robert Noland +Date: Mon Oct 27 14:39:05 2008 -0400 + + i915: Since FreeBSD doesn't have gem support yet, don't advertise it. + + This allows us to not crash X when using newer Intel ddx drivers. + +commit 3b17b50e9c49ae113c7ad1c4a0af51e873de1a7e +Merge: 7617d1f 389b761 +Author: Jerome Glisse +Date: Mon Oct 27 19:33:56 2008 +0100 + + Merge branch 'modesetting-gem' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-gem + +commit 7617d1fef7b743349b470e4a62388174bbffb56b +Author: Jerome Glisse +Date: Mon Oct 27 19:27:15 2008 +0100 + + radeon: radeon util library + +commit e1372f67274baa44419e000f5d3d6b2e81be2b51 +Author: Alex Deucher +Date: Mon Oct 27 13:18:07 2008 -0400 + + radeon: fix error in busmaster enable logic + + - logic was wrong. rs400/rs480 should clear the RADEON_BUS_MASTER_DIS bit + - should fix kernel bug 11798 + +commit 848f00d77381d8b442c096476302796f8fe122fa +Author: Alex Deucher +Date: Mon Oct 27 12:59:39 2008 -0400 + + radeon: fix some fallout from the busmaster disable cleanup + + rs400 is just like rs480. I mixed up the internal + chipset names for rs600 and rs400. + +commit 389b7617b5b88b6270af5b3824fe73519900c87f +Author: Dave Airlie +Date: Mon Oct 27 17:06:23 2008 +1000 + + drm: make handles 32-bits again not sure why they changed + +commit 1d930fc75b99a89fc77d35d8f95f2877cfd5d7f0 +Author: Matthias Hopf +Date: Sat Oct 25 12:11:44 2008 -0400 + + drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831) + + Olaf Kirch noticed that the i915_set_status_page() function of the i915 + kernel driver calls ioremap with an address offset that is supplied by + userspace via ioctl. The function zeroes the mapped memory via memset + and tells the hardware about the address. Turns out that access to that + ioctl is not restricted to root so users could probably exploit that to + do nasty things. We haven't tried to write actual exploit code though. + + It only affects the Intel G33 series and newer. + +commit 34a3ebffc369575412a4ff2c05c50264e83c6d3e +Author: Jakob Bornecrantz +Date: Fri Oct 24 18:43:55 2008 +0200 + + mode: Try to settle on a standard for struct fields + +commit 0796bf8c6b983de7fbb188bd5d84d4ea54f81525 +Author: Jakob Bornecrantz +Date: Fri Oct 24 18:23:39 2008 +0200 + + mode: Indent defines + +commit b7d54b1dba8eba24da1b9cdd2116a26b98365b81 +Author: Xiang, Haihao +Date: Fri Oct 24 16:35:00 2008 +0800 + + intel: Also total child_size of the target_bos. Partial fix #17964. + +commit 8256c347cc80db0371b40b34ee8a163908d50079 +Author: Robert Noland +Date: Thu Oct 23 15:46:32 2008 -0400 + + [FreeBSD] We should use dev2unit() rather than minor() + +commit 7dbeb18777a4dc1e7eb3c6bc4da3e72456afc8fc +Author: Robert Noland +Date: Thu Oct 23 15:42:49 2008 -0400 + + [FreeBSD] This check isn't correct and causes at least mga to lockup. + +commit a59ea02ff839fa0801763a90beb8b232b933c746 +Author: Keith Packard +Date: Thu Oct 16 21:15:01 2008 -0700 + + intel: ioctl is not defined to return -errno + + Don't count on ioctl returning -errno; use errno directly. + + Signed-off-by: Keith Packard + Signed-off-by: Eric Anholt + +commit 4c8aeb6fc7fa9f0aa9df4fd855696afe4bf6c0b4 +Author: Dave Airlie +Date: Fri Oct 17 06:40:38 2008 +1000 + + link libdrm_intel properly + + libdrm_intel needs symbols from libdrm, so link against it. + (cherry picked from commit d9c2f65dd8e50736a33e97a55c257ef6843e1ce7) + + Conflicts: + + libdrm/Makefile.am + +commit 9dda3a8f63331cb55f4669fd8edb600f2e07ec86 +Author: Dave Airlie +Date: Mon Oct 13 07:16:33 2008 +1000 + + libdrm: don't depend or link to libdrm_intel + +commit 6df7b0719fe92b718e486c2b87e2f883cfa41efa +Author: Eric Anholt +Date: Thu Jun 12 23:22:26 2008 -0700 + + intel: Protect bufmgr objects with a pthread mutex. + + We want to be able to use the bufmgr from multiple threads for GL, and thus + we need to protect the internal structures. + + The pthread-stubs package is used so that programs not linked against + pthreads get weak symbols to stubs and don't eat most of the cost. + +commit 769197c8f16eaf3c0a476a4459e535afd4a939cb +Author: Xiang, Haihao +Date: Thu Oct 16 10:37:30 2008 +0800 + + intel: avoid deadlock in intel_bufmgr_fake. + +commit 26076bf24a4e720e389d0a3ea616a8350397fdfc +Author: Dave Airlie +Date: Thu Oct 16 10:59:31 2008 +1000 + + radeon: add initial agp support. + + This add agpmode command line option. + +commit 8d9a11c55cf3692bd537c68044b4378aba53f438 +Author: Dave Airlie +Date: Thu Oct 16 10:57:31 2008 +1000 + + radeon: add CS support for r100/r200 in 2D driver + +commit 66740cbd5411a870dc6cc282c19a72809dd992be +Author: Dave Airlie +Date: Thu Oct 16 10:55:24 2008 +1000 + + radeon: fixup interrupt suspend/resume + +commit 318770a78dc563a9a2780614fa3bf6c813584889 +Author: Dave Airlie +Date: Thu Oct 16 10:53:55 2008 +1000 + + radeon: fixup suspend/resume bus master enable + +commit 9c5819fc60808b00949f6aee55424f17a8b4f419 +Author: Dave Airlie +Date: Thu Oct 16 10:53:26 2008 +1000 + + radeon: re-enable hw blits for copying from VRAM + +commit b18e6b0a0d9ef6902e4be1809ba710200f4c37be +Author: Dave Airlie +Date: Thu Oct 16 10:52:53 2008 +1000 + + radeon: fix buffer copying for VRAM->TT + +commit 3e3280eccc38cd080cbab7b471aad1b9cd12fd1b +Author: Dave Airlie +Date: Thu Oct 16 10:52:28 2008 +1000 + + radeon: move memcpy until after CP is stopped + +commit 09f99dc5febecac63d8c636abadea53e89d879aa +Author: Dave Airlie +Date: Thu Oct 16 10:51:56 2008 +1000 + + drm: remove stray debug code + +commit d958cd7bb95558aa6c49824e2ae2b302f1433d2e +Author: Dave Airlie +Date: Thu Oct 16 10:51:31 2008 +1000 + + radeon: use discardable flags on no backing store objects + +commit 11320fd6b106c1255f3fad0860cb4da71697b46a +Author: Dave Airlie +Date: Thu Oct 16 10:50:31 2008 +1000 + + drm: add discardable flag. + + This discards memory contents on suspend/resume with the + hope the upper layers know something we don't. + +commit fc33686ef044a4a59d48da2a648a0c2d0a1a7fd6 +Author: Dave Airlie +Date: Thu Oct 16 10:49:58 2008 +1000 + + drm/radeon: initial suspend/resume fix. + + This enables the evict code and also sets radeon up + to allow evict from VRAM to LOCAL + +commit 458e2d5bc5f949d00cfcc9a3f9ce89f0c9f5628c +Author: Eric Anholt +Date: Tue Oct 14 13:33:38 2008 -0700 + + intel: Fix compile warning. + +commit 993383873c215ab11975d98b93f131a4e3ea7ce6 +Author: Eric Anholt +Date: Tue Oct 14 13:18:11 2008 -0700 + + intel: Add interface for getting tiling mode of a bo. + +commit d9c2f65dd8e50736a33e97a55c257ef6843e1ce7 +Author: Julien Cristau +Date: Tue Oct 14 01:25:57 2008 +0200 + + link libdrm_intel properly + + libdrm_intel needs symbols from libdrm, so link against it. + +commit 3e03d781f7c41a88d5d5f895be9c443bf3592ef0 +Author: Eric Anholt +Date: Mon Oct 13 13:41:10 2008 -0700 + + intel: Avoid pthread mutex recursion in bufmgr_fake. + + Bug #18035. Fixes deadlock in glean texCube testcase. + +commit c6109df93bc062d3ec2ff2808babe826532d11b3 +Author: Dave Airlie +Date: Mon Oct 13 07:16:33 2008 +1000 + + libdrm: don't depend or link to libdrm_intel + +commit f5327aca0cbb1b602e4f954b8f361f2e1daaf20d +Author: Robert Noland +Date: Fri Oct 10 18:23:11 2008 -0400 + + [FreeBSD] Plug memory leak in drm_rmdraw() and drm_drawable_free_all() + +commit cdd3e9fc562bd57e0272e4c4d1c0707776bd01a1 +Author: Robert Noland +Date: Fri Oct 10 13:06:22 2008 -0400 + + [FreeBSD] Rework all of the memory allocations + + Allocate memory from different pools. This allows the OS to track memory + allocations for us, much like the linux memory debugging. This will ease + tracking down memory leaks since the OS can track the number of allocations + from each pool and help to point us in the right direction. Also replace + drm_alloc and friends with static __inline__ versions while we are here. + +commit 1150a42d4398b14c5db2f34a5beba613528df147 +Author: Robert Noland +Date: Thu Oct 9 22:13:26 2008 -0400 + + [FreeBSD] Fix linux list compat list_for_each_safe() + + linux_for_each_safe would not handle lists with a single entry. + +commit a8f73c214dc2accee12d84b85d37fb498ab3adad +Author: Robert Noland +Date: Thu Oct 9 22:11:55 2008 -0400 + + i915: Cleanup interrupt handling + +commit 94c88c151cecae48ce1f4f01acddfaaad4b437f3 +Author: Keith Packard +Date: Thu Oct 9 14:30:56 2008 -0700 + + Manage fences in user-mode bufmgr_fake to clean buffers + + When using bufmgr_fake without DRM, the X server idles the ring whenever it + wants to wait for something to complete (brutal, but effective). In this + case, bufmgr_fake must treat the pending fence as having passed. However, it + wasn't recording the fences as it emitted them, nor cleaning buffers as they + passed. + + Signed-off-by: Keith Packard + +commit 3169d9639bd002b43e4064cea32e0d262076c1e0 +Author: Eric Anholt +Date: Thu Jun 12 23:22:26 2008 -0700 + + intel: Protect bufmgr objects with a pthread mutex. + + We want to be able to use the bufmgr from multiple threads for GL, and thus + we need to protect the internal structures. + + The pthread-stubs package is used so that programs not linked against + pthreads get weak symbols to stubs and don't eat most of the cost. + +commit 604759d4a78efcef0abdb40bfc215526cdcf1122 +Author: Xiang, Haihao +Date: Thu Oct 9 11:57:13 2008 +0800 + + intel: fix for write_domain and static BOs. + + http://bugs.freedesktop.org/show_bug.cgi?id=17705 + +commit e4fa03f7ddb86720fa19cfc839689e1df72bb928 +Author: Alex Deucher +Date: Tue Oct 7 14:10:39 2008 -0400 + + radeon: pull in recent fixes from ddx + + - fixup atom digital encoder setup + - pull in add get edid (currently disabled due to + lack of support for atom fb/scratch space) + +commit 728d8e226f1bc12f50f710cc96bbb2a25f72ada3 +Author: Alex Deucher +Date: Mon Oct 6 12:12:49 2008 -0400 + + radeon: add comment to clarify bus mastering on PCIE chips + +commit 6f9dfa098fed73895f4ad32f9274ffaa163d3efb +Author: Alex Deucher +Date: Mon Oct 6 12:01:11 2008 -0400 + + radeon: fix duplicate define in my last commit + + That's what I get for committing at 3 AM. + +commit 8e5f5ed189fa28e08e45274c15f8ed41f627bc8b +Author: Dave Airlie +Date: Tue Oct 7 04:47:54 2008 +1000 + + radeon: PCIE cards don't appear to have explicit bus master + +commit d0aff120521db3fa170ae55cc16a4935e813816d +Author: Dave Airlie +Date: Wed Sep 17 03:00:02 2008 +1000 + + drm: add create gpu tree script + +commit 4b98f6d74ffb119174237d30356ed3e2724b27da +Author: Alex Deucher +Date: Mon Oct 6 03:08:27 2008 -0400 + + radeon: fix bus master enabled bits on newer asics + +commit 4d1031a9f0e5cddb6ca403afdbd1f019c9c3df2e +Author: Dave Airlie +Date: Mon Oct 6 16:40:45 2008 +1000 + + radeon: fix alignment so Xv works again + +commit 4a4d7727c6c6eff4cf19d5debb91a6fcac555832 +Author: Dave Airlie +Date: Mon Oct 6 16:40:20 2008 +1000 + + radeon: fix pin ioctl interface to mesa can find offset for pinned buffers + +commit a981a6860365065682f3ca295939e629b989a9d1 +Author: Dave Airlie +Date: Mon Oct 6 16:39:25 2008 +1000 + + drm/radeon: fixup clean flag handling + +commit 5a36cce3499c48fe1bf137b26b2a5e8a383d0332 +Author: Mihail Zenkov +Date: Mon Oct 6 00:49:15 2008 -0400 + + radeon: fix missing bit from rs740 patch + + See bug 17908 + +commit ce40261012d39e1096442ef48c45b305c8d69dbd +Author: Alex Deucher +Date: Sat Oct 4 20:43:21 2008 -0400 + + radeon: Add support for HD2100 IGP (RS740) + +commit 60cf3a4db4ab8ee81aca104624e89caf5587419b +Author: Robert Noland +Date: Fri Oct 3 14:11:20 2008 -0400 + + [FreeBSD] Don't explicitly bzero driver softc. + + This is already handled for us. + + Suggested by John Baldwin + +commit 9c0ce38df3d9026785155d06fc62bdd7acaf8bf0 +Author: Robert Noland +Date: Fri Oct 3 14:05:45 2008 -0400 + + [FreeBSD] Use M_WAITOK when allocating driver memory. + + We don't explicitly check for error here and M_WAITOK will just put the + process to sleep waiting on resources to become available. + + Suggested by John Baldwin + +commit 4c92abfa8d0b9f2ab14e6b915bdffd47fd2e2474 +Author: Robert Noland +Date: Fri Oct 3 13:56:50 2008 -0400 + + [FreeBSD] Do a bit of optimization on drm_order() + +commit 81952c7dd18d8fc4617fe4cb761fdf830de5244f +Author: Robert Noland +Date: Sat Sep 20 18:34:57 2008 -0400 + + Use devfs_get_cdevpriv in mmap as well. + + d_mmap gets called twice and we are only able to associate the file_priv + during the first call. The second call will return EBADF and we need to + assume that the call was succesful. d_mmap will not tolerate having an + error returned for the second call. + +commit af2323b4b3b76070fb453531147a8956161b3718 +Author: Jesse Barnes +Date: Tue Sep 30 16:35:26 2008 -0700 + + intel bufmgr: reinstate buffer handle tracking + + We need a way of getting at the underlying handle for use with mode + setting. We can either export it in the dri_bo object or provide a new + callback to get it. + +commit 7b3aa626482963cc52086da629f682fce2c7322c +Merge: 972f657 9c6732e +Author: Dave Airlie +Date: Tue Sep 30 14:17:27 2008 +1000 + + Merge remote branch 'origin/modesetting-gem' into modesetting-gem + +commit 972f6572652bc4a2f6c44c525e5e91f2becdb62a +Merge: 89126bb 2db8e0c +Author: Dave Airlie +Date: Fri Sep 26 15:37:21 2008 +1000 + + Merge remote branch 'origin/master' into modesetting-gem + + Conflicts: + + libdrm/Makefile.am + libdrm/dri_bufmgr.h + linux-core/drm_irq.c + linux-core/drm_sysfs.c + linux-core/drm_ttm.c + shared-core/i915_dma.c + shared-core/i915_irq.c + shared-core/nouveau_drv.h + shared-core/radeon_cp.c + +commit 073cb5ee1d12a7f1a18b7d732f346c16eb740f49 +Author: Xiang, Haihao +Date: Sat Sep 27 11:01:24 2008 +0800 + + intel: Copy data from card memory back to backing store when mapping. + + Fixes http://bugs.freedesktop.org/show_bug.cgi?id=17705 + +commit 9c6732e790b123bebab0a6d05c592598f9cd2327 +Author: Alex Deucher +Date: Fri Sep 26 17:32:15 2008 -0400 + + radeon: use atom for ext tmds on r4xx + +commit 09b2dfcedc8cb35444567626131ccc25db79a8c6 +Author: Alex Deucher +Date: Fri Sep 26 17:20:04 2008 -0400 + + radeon: make atom on r4xx a module option + + default is legacy modesetting. pass module option r4xx_atom + to try using atom on r4xx. + +commit 89126bb58ec82511758bed36a28e698b721fb435 +Merge: d883347 ea9711b +Author: Alex Deucher +Date: Thu Sep 25 18:47:47 2008 -0400 + + Merge branch 'modesetting-gem' of git+ssh://agd5f@git.freedesktop.org/git/mesa/drm into modesetting-gem + +commit d883347f087eb1ce410392a379dfa6a44b2d14d1 +Author: Alex Deucher +Date: Thu Sep 25 18:45:07 2008 -0400 + + radeon: first pass at using atombios on r4xx hw + +commit ea9711b954ba9093546ba13052fb8bbda860b9e4 +Author: Jakob Bornecrantz +Date: Thu Sep 25 23:12:07 2008 +0200 + + Seperate modesetting userspace bits into drm_mode.h + +commit 35e379ce5a0d23f4c812739f89e02703900cd91b +Author: Dave Airlie +Date: Wed Sep 24 15:25:35 2008 +1000 + + radeon: add r600 modesetting registers writes + +commit dcf73de059d45ff894c417bb9234933bc650b6b2 +Author: Dave Airlie +Date: Wed Sep 24 13:58:26 2008 +1000 + + radeon: add parsing for r6xx object tables + +commit 2db8e0c8ef8c7a66460fceda129533b364f6418c +Author: Eric Anholt +Date: Tue Sep 23 17:06:01 2008 -0700 + + intel: Allow up to 15 seconds chewing on one buffer before acknowledging -EBUSY. + + The gltestperf demo in some cases took over seven seconds to make it through + one batchbuffer on a GM965. + + Bug #17004. + +commit 0dccf017ab629d69fce91e18b013882ecb45f55d +Author: Eric Anholt +Date: Tue Sep 23 10:48:39 2008 -0700 + + intel: Replace wraparound test logic in bufmgr_fake. Again. + + I'd swapped the operands, so if we weren't in lockstep with the hardware we + said the sequence was always passed. Additionally, a race was available that + we might have failed at recovering from. Instead, I've replaced the logic + with new stuff that should be more robust and not rely on all the parties in + userland following the same IRQ_EMIT() == 1 protocol. Also, in a radical + departure from past efforts, include a long comment describing the failure + modes and how we're working around them. + + Thanks to haihao for catching the original issue. + +commit 1b3abe62b5751d0514d57aa850e584dca7dfc23e +Author: Eric Anholt +Date: Tue Sep 23 10:47:21 2008 -0700 + + intel: Do strerror on errno, not on the -1 return value from ioctl. + +commit 840c9a305481ed59820bbd87fbcf78dd242d5702 +Author: Kristian Høgsberg +Date: Tue Sep 23 16:52:06 2008 +1000 + + Update intel modesetting to use mm_private instead of mm_handle. + +commit 0130aa0de940a49c086a0fb080e524d55b55ec8b +Author: Dave Airlie +Date: Tue Sep 23 16:50:39 2008 +1000 + + radeon: fix minor cursor issues + +commit 3d1825729370a8009f4d7ceae91a16cfd6b7956c +Author: Kristian Høgsberg +Date: Tue Sep 23 16:50:22 2008 +1000 + + radeon: Fix type in check for tmds type. + +commit 5fdfbee22acb8eaaa834457c30e6f68883ab1353 +Author: Kristian Høgsberg +Date: Tue Sep 23 16:47:34 2008 +1000 + + Store the buffer object backing the fb as a void pointer, not a handle. + + This lets us defer handle creation until userspace acutally asks for + one, at which point we also have a drm_file to associate it with. + +commit a2216491c619082ad9a01bc949648834dc5a0d2f +Author: Dave Airlie +Date: Thu Aug 28 21:20:19 2008 +1000 + + drm: fix brace placement + +commit 3949f3c9eaad9547fe046ca4d469fa7cc8f12304 +Author: Xiang, Haihao +Date: Mon Sep 22 10:16:19 2008 +0800 + + intel: Fix driver-supplied argument to exec function (fd.o bug #17653). + +commit 66237cd3c26faa20403ddb6903252ce49cc1fd72 +Author: Alex Deucher +Date: Fri Sep 19 11:19:00 2008 -0400 + + radeon: rmx_fixup() fixes for legacy chips + +commit d6b853cf81c3cd29ab81b9f93909b31330142750 +Author: Dave Airlie +Date: Sat Sep 20 00:48:11 2008 +1000 + + radeon: fix voverplus calculation + +commit dc3a6834f615a538cf582ec7e583f203d43ba204 +Author: Dave Airlie +Date: Fri Sep 19 08:03:34 2008 +1000 + + radeon: tmds bracket failure found by krh. + +commit 075ed1d6fd1d58c1f46d556df79f44153f10edd8 +Author: Alex Deucher +Date: Thu Sep 18 17:27:00 2008 -0400 + + radeon: pll and interlace updates from the ddx + + also some formatting cleanup in radeon_reg.h + +commit 6988176195450da9033a0f0f21eafc6ae0a7a6a4 +Author: Alex Deucher +Date: Thu Sep 18 16:42:22 2008 -0400 + + radeon: Add functions to set mem/eng clocks + +commit 34af71c42a66e5ef6a9a08250ca541030ca3cc4f +Author: Alex Deucher +Date: Thu Sep 18 16:07:41 2008 -0400 + + radeon: add function to configure PCIE lanes + +commit e1e782af5ddafdd24a4cf741139bb0b8e682e543 +Author: Alex Deucher +Date: Thu Sep 18 15:11:48 2008 -0400 + + Radeon: restructure PLL data + + - store pixel clocks, core clock, and memory clocks separately + - grab all pll limits from bios tables + +commit 6d0de5a899ea883693737333b4b0511c28f32d92 +Author: Alex Deucher +Date: Thu Sep 18 14:30:05 2008 -0400 + + Export drm_put_minor + +commit 8ca06eb492f861dbf049a2e104e4e2a5ba814c13 +Author: Robert Noland +Date: Wed Sep 17 23:10:15 2008 -0400 + + [FreeBSD] Convert to using cdevpriv for file_priv tracking + +commit 6a0248cbf2197d64f51d557f85bf2fdbaa505870 +Author: Dave Airlie +Date: Thu Sep 18 10:28:42 2008 +1000 + + fixup radeon stuff - need to checkout irqs + +commit 3a497db7862dc091a8582d8ea3ebfd7fe0f16b58 +Author: Dave Airlie +Date: Thu Sep 18 10:22:23 2008 +1000 + + radeon: fixup buffer and cs bits + +commit f426f458f7e766cd47bb30736004ccfc9209f27f +Author: Dave Airlie +Date: Thu Sep 18 10:20:29 2008 +1000 + + [PATCH] radeon: fixup GEM domain setting - allows more userspace paths + + also dirty buffer on validate + +commit 13e24fa7c03a4da6ba85b42d97290b4360c5ba8c +Author: Dave Airlie +Date: Thu Sep 18 10:19:53 2008 +1000 + + [PATCH] radeon: disable blit moves + +commit 8f38c28a3924dbda5babcf035911e103f27f9a05 +Author: Dave Airlie +Date: Thu Sep 18 10:19:08 2008 +1000 + + radeon: fail properly if we can't create the ring. + + Normally this will be due to an AGP driver needing updating + +commit 515aa0800cf2d91bdf4706463e0531c5081a2679 +Author: Dave Airlie +Date: Thu Sep 18 10:17:27 2008 +1000 + + radeon: do proper memory controller init and setup + +commit b6c1a2f7eea256dad7d38020f784ed6a94accd9d +Author: Dave Airlie +Date: Thu Sep 18 10:16:41 2008 +1000 + + radeon: fix return value + +commit 9b728fe4b0c154acd2291f9bec747ee67f8cce02 +Author: Dave Airlie +Date: Thu Sep 18 10:16:09 2008 +1000 + + radeon: fixup reference counting properly + +commit 5081ce12217d31d8d197e66ac3bc71adc650d463 +Author: Dave Airlie +Date: Thu Sep 18 10:15:43 2008 +1000 + + radeon: sort out atom vs combios tables for r400 cards + +commit ed961cb428a73a35d473c27f62809ef80bde8706 +Author: Dave Airlie +Date: Thu Sep 18 10:14:32 2008 +1000 + + radeon: remove unneeded debugging + +commit 0e384803c5f2528735e43b8d30f90ea82f6b3f47 +Author: Dave Airlie +Date: Thu Sep 18 10:13:30 2008 +1000 + + radeon: don't do full edid for detection purposes + +commit 8f23d4a44cdb17abff8f1ab3585e533ae0572224 +Author: Dave Airlie +Date: Thu Sep 18 10:11:43 2008 +1000 + + make text reserve 256k + +commit 2a6dad31d84252d505f392f91dffd90689bb947c +Author: Dave Airlie +Date: Thu Sep 18 10:05:59 2008 +1000 + + radeon: add initial suspend/resume support + + plus a bunch of fixes + +commit 1062d8dcff19ded743f046e27adb889f3596ab4d +Author: Dave Airlie +Date: Thu Sep 18 09:59:08 2008 +1000 + + modesetting: Add helper to force restore modes on crtcs at resume time + +commit e23d5c03c4c9850d5e54f323fe944329b389b042 +Author: Alex Deucher +Date: Wed Sep 17 18:16:25 2008 -0400 + + radeon: fix legacy LVDS + +commit ee6bcabc506e4d506fb65447c405f8514ab1f4e1 +Author: Ben Skeggs +Date: Wed Sep 17 22:18:03 2008 +1000 + + nv50: add initial context for chipset 0xaa + + This just doesn't look right.. + +commit d55e8090fa9d0f3bb67eeb8cc61c0ed6345d41b4 +Author: Ben Skeggs +Date: Wed Sep 17 22:03:38 2008 +1000 + + nv50: add initial context to match ctxprog for chipset 0x50 + +commit 4d2f1257fab84bf66bd1154a1c829317584fd5f7 +Author: Ben Skeggs +Date: Wed Sep 17 15:13:27 2008 +1000 + + nv50: add ctxprog for chipset 0x50 + +commit 301be1dc9be8a83f5092417573967f35766227bc +Author: Ben Skeggs +Date: Wed Sep 17 15:02:54 2008 +1000 + + nv50: add ctxprog for chipset 0xaa + +commit f152482bdecaa16db36b20b445a480445d18048c +Author: Ben Skeggs +Date: Wed Sep 17 14:49:04 2008 +1000 + + nv50: add support for chipset 0x92 + +commit 973c634eaa54ee4085a72102c690bc643cb2d7a8 +Author: vehemens +Date: Mon Sep 8 22:06:09 2008 -0700 + + Remove incomplete and obsolete free/net/open code. + + Signed-off-by: Robert Noland + +commit b54d15d8fd252df5f0914ab245431e66b9a4e8ab +Author: Eric Anholt +Date: Wed Sep 10 20:04:42 2008 -0700 + + Add missing \ to libdrm_la_SOURCES + + Reported by jcristau. + +commit 368b392e6dcd19cb75675c0c18d02f70257af1df +Author: Eric Anholt +Date: Wed Sep 10 13:54:34 2008 -0700 + + intel: don't forget to include config.h in bufmgr code. + + Thanks to airlied for catching this. + +commit f9d98beefc9e7b8d06a29f5b69a19f10fd3c435f +Author: Eric Anholt +Date: Mon Sep 8 08:51:40 2008 -0700 + + intel: move drm calls to exec buffers to libdrm_intel. + + This avoids duplicating the effort in 3 places. Also, added emit/wait fence + callbacks back in bufmgr_fake since we need it for non-drm 2d. Sigh. + +commit 869d8bebedddf2075c59d6bffea8ee640cb80353 +Author: Eric Anholt +Date: Sat Sep 6 03:07:41 2008 +0100 + + intel: Move IRQ emit/wait from callbacks into the bufmgr. + + In the process, work around the glaring bugs of the kernel irq wait function. + +commit 738e36acbce24df0ccadb499c5cf62ccb74f56df +Author: Eric Anholt +Date: Fri Sep 5 10:35:32 2008 +0100 + + Move intel libdrm stuff to libdrm_intel.so + + dri_bufmgr.h is replaced by intel_bufmgr.h, and several functions are renamed, + though the structures and many functions remain dri_bufmgr_* and dri_bo_* + +commit 09cf0f0213652609d09154ce2859c03cf97ab11e +Author: Eric Anholt +Date: Wed Sep 3 23:05:16 2008 +0100 + + drm: Add tests for GEM_FLINK ioctl. + +commit 828ae3f6b88b5a69a56b2961307e40ed95edea29 +Author: Robert Noland +Date: Mon Sep 8 16:40:52 2008 -0400 + + [FreeBSD] We need to call drm_detach before we free dev->driver. + + The driver is in control of the show, so when you try and unload a module + the driver detach routine is called first. It is what drives the whole + unload process and so lots of panics occur if dev->driver is already + free. + +commit 2880c86eb246aceeb5c750e27259a7b6d8897328 +Author: Robert Noland +Date: Sun Sep 7 12:44:02 2008 -0400 + + [FreeBSD] Implement drm_ioremap_wc() to set a range of mem to write-combining + +commit 740f09bffde20d9207497bd107d50941ca21278a +Author: Robert Noland +Date: Sat Sep 6 21:08:33 2008 -0400 + + [FreeBSD] IGP gart needs to be un-cached. + + Airlied inadvertently discovered that the IGP gart needs to be un-cached + for radeon rs485 and rs690 to work. Initial tests by placing a wbinvd() + after allocating the gart were successful. This is an attempt at a more + appropriate method of achieving success. + +commit be5fad45ee4e81997784f258fcdfaf0a303dd666 +Author: vehemens +Date: Sat Sep 6 18:02:31 2008 -0700 + + Free temp_pagelist on error. Free in reverse order. Noticed by open. + + Signed-off-by: Robert Noland + +commit 9ad5a6d0d73ba58ec7c2f66d0c5355185f2f68c6 +Author: vehemens +Date: Sat Sep 6 15:33:47 2008 -0700 + + Pass lock data like linux and open. + + Signed-off-by: Robert Noland + +commit b8a9cebddc7063bc0dae889dac43359c0cb9bfa5 +Author: vehemens +Date: Sat Sep 6 14:19:32 2008 -0700 + + Move order to end like linux. + + Signed-off-by: Robert Noland + +commit 0808cf923d4a851b100d9b7022cb82f5e1f52e28 +Author: vehemens +Date: Sat Sep 6 14:16:51 2008 -0700 + + Style white space cleanup part 2. + + Signed-off-by: Robert Noland + +commit 6f2479c67432f764bfc4e248689f1737c1935237 +Author: Robert Noland +Date: Sat Sep 6 18:37:06 2008 -0400 + + [FreeBSD] Ensure that drm_pci_alloc is never called while locks are held. + +commit f60d9a04b892904e5dde7dd1d2876b6bd9eb80ef +Author: Dave Airlie +Date: Sun Sep 7 08:09:24 2008 +1000 + + radeon: change interface from headers add pin_domain into padding + +commit 31709aa2be54877c45ca382bf370b41dbaf5c2ec +Author: vehemens +Date: Tue Sep 2 13:56:35 2008 -0700 + + Reorder lock functions like linux. + + Signed-off-by: Robert Noland + +commit 76dd74c64ef9b92025e76dd256e0641ff6fce0f4 +Author: vehemens +Date: Tue Sep 2 04:57:36 2008 -0700 + + Style white space cleanup. + + Signed-off-by: Robert Noland + +commit ed6dd03818f2fa4dd0f2ba34dee58b09c7ff253e +Author: vehemens +Date: Tue Sep 2 02:43:19 2008 -0700 + + Need M_NOWAIT for malloc. + + Signed-off-by: Robert Noland + +commit 3f915f68e8f68fe0fc3d0e1eb8a18a16f8f397da +Author: Robert Noland +Date: Fri Sep 5 11:52:53 2008 -0400 + + i915: fix i915_ring_validate() + +commit 9f9f171f8e0ad817414e6218b44579171d03cec0 +Author: Dave Airlie +Date: Fri Sep 5 10:56:18 2008 +1000 + + radeon: rs690 GART tables need to be in uncached memory. + + Allocate the rs480/690 tables from uncached memory. + +commit ce84511f4d647d5ce9fd52b838ee944e23050954 +Author: Stephane Marchesin +Date: Fri Sep 5 00:17:52 2008 +0200 + + nouveau: 8200 cards are 0xA0 family. + +commit fe59d04a7c30692952652f77529deb22a3e0c8bb +Author: Dave Airlie +Date: Thu Sep 4 11:57:00 2008 +1000 + + radeon: fixup a number of avivo checks for rs690 + +commit 99f8cce3eae79c9cf5e9897ef1af8eac24b38c09 +Author: Dave Airlie +Date: Tue Sep 2 10:07:14 2008 +1000 + + drm: fix sysfs error path. + + Pointed out by Roel Kluin on dri-devel. + + Signed-off-by: Dave Airlie + +commit cd7d71f19cf2a16521c9da1815421c6a5f12a58e +Author: Dave Airlie +Date: Sun Aug 31 07:27:26 2008 +1000 + + radeon: make writeback work after suspend/resume. + + While re-writing this for modesetting, I find we disable writeback on + resume. + +commit 2b278047153df729caf9e516a432b2e76398cd3a +Author: vehemens +Date: Wed Aug 27 19:11:04 2008 -0700 + + [FreeBSD] Use driver features macros and flags + + Signed-off-by: Robert Noland + +commit 2649103bf9c4eb471a10800f4a3161dca6249086 +Author: vehemens +Date: Fri Aug 29 13:18:54 2008 -0400 + + [FreeBSD] Convert drm_driver to a pointer like linux. + + Signed-off-by: Robert Noland + +commit 71f0a3e389efb6c92a84299d05beb2a1bfa53469 +Author: vehemens +Date: Fri Aug 29 12:47:00 2008 -0400 + + [FreeBSD] Replace typedefs on bsd. + + Signed-off-by: Robert Noland + +commit b92f5577670f99ded76e201a71aaa23cce8f7577 +Author: vehemens +Date: Fri Aug 29 12:40:30 2008 -0400 + + [FreeBSD] Catch up to vblank rework for via. + + (No, we don't build via right now.) + + Signed-off-by: Robert Noland + +commit 043ad591b55ee8d4ac3ff65038705219d1893b12 +Author: vehemens +Date: Fri Aug 29 12:37:29 2008 -0400 + + [FreeBSD] Correct debug message + + Signed-off-by: Robert Noland + +commit c7f7b6d7e2f46753381de51e4b0b00211a1a6b5f +Author: Robert Noland +Date: Fri Aug 29 12:29:50 2008 -0400 + + [FreeBSD] Fix a couple of locking problems. + +commit f8a14b1f9556919617208a8eb88ff88d6c77f08d +Author: Robert Noland +Date: Fri Aug 29 12:23:35 2008 -0400 + + [FreeBSD] Increase debugging output for vblank code. + + Doing my part to make DRM_DEBUG more chatty... + +commit b460aeec3ea817540e43c8215f2cdf432c957289 +Author: Tomas Carnecky +Date: Fri Aug 29 00:43:19 2008 +0200 + + Fix drm_realloc when you're reallocing into something smaller. + +commit d88d1eac8925f6bbc8edf50b35639f09fac84019 +Author: Dave Airlie +Date: Fri Aug 29 07:18:53 2008 +1000 + + radeon: fixup LVDS mode getting + + if we have no DDC we were oopsing. fix that. + then make a native panel mode + +commit 499170ad22aaf087fc01fdcf799035819becd571 +Author: Dave Airlie +Date: Thu Aug 28 16:35:25 2008 +1000 + + radeon: get lvds atombios info + + set the correct values from atombios makes LVDS work a lot better + +commit 23cb67dfbabe8c76ffd86b6c01abacc027d0fb72 +Author: Dave Airlie +Date: Thu Aug 28 16:18:09 2008 +1000 + + drm: port X crtc picking algorithm. + + This mimics the X.org from ajax with less options + +commit 9afe872ae9ef608269688e08f62beca2181f60dc +Author: Dave Airlie +Date: Thu Aug 28 11:30:55 2008 +1000 + + radeon: limit LVDS to first CRTC for now + +commit 6a27e019bc16ce901d6be6c85e63c0bad75dd16a +Author: Dave Airlie +Date: Thu Aug 28 11:30:20 2008 +1000 + + radeon: fixup checks for crtc in dpms paths + +commit 7552b2a6c3b29da308a76dade4959180d0d1c57b +Author: Dave Airlie +Date: Wed Aug 27 13:41:53 2008 +1000 + + drm: fix some whitespace + +commit f9d4c58d4327741abd99cdfdbbbfb82c803e4698 +Author: Dave Airlie +Date: Wed Aug 27 12:35:11 2008 +1000 + + radeon: braino pointed out on mailing list + + thanks to Ville Syrjälä + +commit a4167e7b572859a998710ee599298e5131f51620 +Author: Dave Airlie +Date: Wed Aug 27 11:12:19 2008 +1000 + + radeon: avoid oops on encoders with no crtc set + +commit bffbb497e2502b0aa6fd24804251d6a21d8fa034 +Author: Stephane Marchesin +Date: Wed Aug 27 02:27:10 2008 +0200 + + Change git-describe into git describe. + +commit 0239594fc318c2b55bbfbea27f23218f6d7a4b34 +Author: Kristian Høgsberg +Date: Tue Aug 26 14:28:08 2008 -0400 + + [intel_bufmgr_gem] Remember global name when creating buffer from name. + +commit 01b2e7368a1f6f14b6d7b6377c804d482bb050cb +Author: Dave Airlie +Date: Tue Aug 26 17:44:47 2008 +1000 + + radeon/ttm: add support for zeroing the contents of VRAM buffers + + This uses a solid fill fastpath, falling back to the slow memset path. + +commit 203243eea5c6c91e89534cd01a1e52cc44980bfe +Author: Dave Airlie +Date: Tue Aug 26 17:43:12 2008 +1000 + + drm: add move zero function to memset unclean buffers + +commit c72a4e20e8bb5cb0ec89eaf6effa0cea9c880a03 +Author: Dave Airlie +Date: Tue Aug 26 17:42:36 2008 +1000 + + drm/ttm: export drm_bo_add_ttm + +commit 361ab10d2fb0c7ad73e54d92af2563194dbf7080 +Author: Dave Airlie +Date: Tue Aug 26 17:39:00 2008 +1000 + + radeon: fixup domains and use them properly + +commit 4c8e8e0d0bad839cf5aacb22524885e49fe86715 +Author: Dave Airlie +Date: Tue Aug 26 17:33:46 2008 +1000 + + drm: add memory clean flag. + + When the mapping is clean this flag will be set. This can be used + by a driver to save migrating and allocating pages for an object + that will first be used in VRAM. + +commit c8fd8d3a0d37dc09165ac77c7d38938ef9942011 +Author: Robert Noland +Date: Sun Aug 24 15:53:17 2008 -0400 + + i915: Fix i915 build on FreeBSD + + ifdef out all the gem stuff for now. Also, the msi stuff isn't portable + the way it is... I'll try and fix that up sometime soon. + +commit bfea578352aaaed08555e86c9951b3932f39d122 +Author: Robert Noland +Date: Fri Aug 22 21:45:41 2008 -0400 + + [FreeBSD] Add drm_drawable_free_all() + +commit 0687c0a4ec78730f752cee04a5b0862f47dbf026 +Author: Robert Noland +Date: Fri Aug 22 21:34:25 2008 -0400 + + [FreeBSD] Fix long standing memory leak in drm_remove_magic. + + We shuffled all the links around to disconnect the entry, but + never free it. We would incorrectly free the last entry in the + hash chain if nothing matched. + +commit d0acbe4553d27df3fdc217c956c609c54ebb51e6 +Author: Robert Noland +Date: Fri Aug 22 21:32:37 2008 -0400 + + i915: Convert vblank on disabled pipe DRM_ERROR to DRM_DEBUG. + +commit 739b01dde43c40398d9b0d177e9d330e06cdc2ae +Author: Robert Noland +Date: Wed Aug 20 17:20:31 2008 -0400 + + i915: Clear sarea_priv during lastclose. + + sarea_priv needs to be NULL before i915_initialized is called to + properly reset it. The stale value produces a panic any time something + opens/closes drm without calling initialize. i.e. version checking + +commit 1f3c4dd938a1710d762bac37dfb1b17c90af4732 +Author: Robert Noland +Date: Wed Aug 20 17:15:46 2008 -0400 + + i915: Free dev->dev_private on unload. + +commit 3e9541230d7b7c32ecb36c1edc5124b6991222be +Author: vehemens +Date: Wed Aug 13 17:19:35 2008 -0400 + + [FreeBSD] Move vblank bits into their own structure. + + Signed-off-by: Robert Noland + +commit e6010778a8edf96dbfb4bc1f7cf0ce5706eee733 +Author: vehemens +Date: Wed Aug 13 17:17:05 2008 -0400 + + [FreeBSD] Fix lock leak. + + Signed-off-by: Robert Noland + +commit 16c1a87580af89be02e7e6c1898f18b36829e007 +Author: Robert Noland +Date: Wed Aug 13 17:05:59 2008 -0400 + + i915: Move spinlock init / destroy to load / unload time. + + This resolves the panic on FreeBSD during VT switch, without attempting + any of the more lofty goals for the time being. + +commit 9101a0205c897fea28e6a3d875111a83ad7f7732 +Author: Dave Airlie +Date: Sun Aug 24 16:54:43 2008 +1000 + + libdrm: add udev support. + + This patch allows you to --enable-udev, and will avoid having libdrm + make device nodes. If you are using udev, you should really --enable-udev + your libdrm. + +commit 9afd2659430245c456cf887d47087de047c0aba8 +Author: Dave Airlie +Date: Fri Aug 22 07:08:29 2008 +1000 + + drm: add gpu create script + +commit 76cec451d3380c0db28be58123904b489be672a7 +Merge: ba61880 2d4cf9c +Author: Alex Deucher +Date: Tue Aug 19 13:08:47 2008 -0400 + + Merge branch 'modesetting-gem' of git+ssh://agd5f@git.freedesktop.org/git/mesa/drm into modesetting-gem + +commit ba61880ac8d5db0494816296aeef6092aadcb63f +Author: Alex Deucher +Date: Tue Aug 19 13:06:04 2008 -0400 + + radeon: fix warning from radeon_legacy_state removal + +commit b2c19c788a570f28a22c236e60ee31f5c1e180af +Author: Alex Deucher +Date: Tue Aug 19 13:03:23 2008 -0400 + + radeon: legacy lvds updates + +commit 0da66c27fa2aabdbaf4c003ba3712a61253d7ffe +Author: root +Date: Tue May 6 23:04:55 2008 +0100 + + nouveau: fifo and graphics engine suspend and resume for nv04-nv4x + + Corresponding DDX patch at http://people.freedesktop.org/~stuart/nv0x-nv4x_suspend/ + +commit 2d4cf9cc0f31ca316b109cceffc463ea52db92f2 +Author: Dave Airlie +Date: Tue Aug 19 08:18:46 2008 +1000 + + radeon: oops set correct scratch + +commit 41b83a99583486ad4f8760a6537d34783769bfc3 +Author: Coleman Kane +Date: Mon Aug 18 17:08:21 2008 -0400 + + Change prototype of drmIoctl to unsigned long request. + + This resolves and issue on amd64 FreeBSD and it looks like the + linux ioctl syscall should be unsigned long as well. + + Signed-off-by: Robert Noland + +commit 232c369a05bbd9db17a0453380229c993cbbc8bd +Author: Alex Deucher +Date: Sun Aug 17 18:38:41 2008 -0400 + + radeon: first pass at legacy dac detect + + - done: primary dac, vga on tvdac + - todo: ext dac, tv on tvdac + +commit aed70622ab33500721a30b06ec3783c581615cbb +Author: Alex Deucher +Date: Sun Aug 17 18:09:07 2008 -0400 + + radeon: first pass at bios scratch regs + + - todo: updated connected status + +commit 226c97e3b772f2f4bf09085374cd931b83dea2b0 +Author: Alex Deucher +Date: Sun Aug 17 15:38:05 2008 -0400 + + radeon: remove unused legacy state + +commit 6af286079b57248405e543d7d99e111931983eac +Author: Alex Deucher +Date: Sun Aug 17 15:33:31 2008 -0400 + + radeon: get primary dac adj info from bios tables + +commit a5381cac55e54a535acf752970886b659948563c +Author: Maarten Maathuis +Date: Sun Aug 17 00:41:50 2008 +0200 + + nouveau: make it compile under 2.6.27 + +commit ba840fca19077d352277519c5fa032e3b107ae27 +Author: Maarten Maathuis +Date: Thu Aug 14 19:35:55 2008 +0200 + + linux: on_each_cpu has 3 args on 2.6.27 + +commit a2adc696569de830c7a95722dd111bff706a0bbc +Author: Jesse Barnes +Date: Sat Aug 16 12:09:24 2008 -0700 + + i915: finish removing TTM bits + + Makes it build again. + +commit d313108167a793652a5fe4c1015198e0a9deac4c +Merge: 893315d 2030db7 +Author: Jesse Barnes +Date: Sat Aug 16 11:45:53 2008 -0700 + + Merge branch 'modesetting-gem' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-gem + +commit 893315d49ed678de95cf6ac553efb6093cc7343c +Author: Jesse Barnes +Date: Sat Aug 16 11:35:10 2008 -0700 + + i915: set domain properly on fb mapping, flush out changes + + The user visible ioctl does this, but since we call into GEM internals + directly, we have to flush things ourselves. Fixes initial fb console + corruption. + +commit 2030db75328b7d896a5dd030fc171020b33149e1 +Author: Dave Airlie +Date: Fri Aug 15 09:56:42 2008 +1000 + + radeon: reserve 64k of VRAM for now for text mode so we don't trample it + + need to revisit this later I'm sure + +commit e0bbd04eb0e2395872983e243d242f5ba2f2306f +Author: Dave Airlie +Date: Fri Aug 15 09:42:06 2008 +1000 + + radeon: fix LVDS modes problem + +commit 30ff279e42b3b0608e8ff6620d2958c174449798 +Author: Dave Airlie +Date: Thu Aug 14 14:43:51 2008 +1000 + + radeon: add support for memory map init + +commit eb8f9b9da4d34b9bfa16dc3847e81976a12d2d0c +Author: Dave Airlie +Date: Thu Aug 14 14:41:15 2008 +1000 + + radeon: add copy/solid regs for rn50 + +commit 5f9e4a764ac7acf1311388dd693bc4f0e6c0c4e9 +Author: Jesse Barnes +Date: Wed Aug 13 16:57:42 2008 -0700 + + i915: update cursor handling to use GEM objects + +commit 9dff806802bad79242c58cc5dca3fd108099982b +Author: Dave Airlie +Date: Thu Aug 14 09:43:23 2008 +1000 + + i915: fixup from last merge hopefully + +commit 2d4420c6669dbaead27346b8c7e1979edc94ae5a +Merge: 1c6abce 2a65759 +Author: Dave Airlie +Date: Thu Aug 14 09:36:34 2008 +1000 + + Merge branch 'radeon-gem-cs' into modesetting-gem + + Conflicts: + + libdrm/xf86drm.c + linux-core/Makefile.kernel + linux-core/drmP.h + linux-core/drm_compat.h + linux-core/drm_drv.c + linux-core/drm_stub.c + linux-core/drm_vm.c + shared-core/i915_dma.c + shared-core/r300_cmdbuf.c + shared-core/radeon_drv.h + +commit 2a65759d159478b126c660ef124777548dcc872c +Author: Alex Deucher +Date: Tue Aug 12 20:18:07 2008 -0400 + + Add com bios asic init bits + +commit f38fff5416bc8e40ce9426f78bfea1bad415faab +Author: Alex Deucher +Date: Tue Aug 12 18:13:21 2008 -0400 + + Fill in and make use of more com bios tables on legacy chips + +commit 9b79d356c171e86e529ad1a4e5e145a36d1af601 +Author: Alex Deucher +Date: Tue Aug 12 15:33:20 2008 -0400 + + Add additional quirks from ddx + +commit a1f12024702d0636ead0ef512fd0372d6d1aa79f +Author: Alex Deucher +Date: Tue Aug 12 14:07:33 2008 -0400 + + Fix warnings + +commit b486ed7f7d89528c94f2345040324946f6eadc81 +Author: Alex Deucher +Date: Tue Aug 12 13:52:35 2008 -0400 + + Get legacy working finally + + - extra ~ in RADEON_WRITE_P() + - re-arrange crtc setup a bit + - add debugging for tracing calls + - fix pitch calculation + +commit 8867eca8721a02135f4b0e65a454d5e05141eee3 +Author: Alex Deucher +Date: Tue Aug 12 03:05:11 2008 -0400 + + set base in legacy crtc mode set + +commit ae89ced7ded55c164c620ebbd799fdb44ed9c09f +Author: Alex Deucher +Date: Tue Aug 12 02:11:44 2008 -0400 + + Convert COM BIOS to table offset lookup function + +commit 5af426a2b29f5426ba5714cb6501aa5b270089b4 +Author: Alex Deucher +Date: Mon Aug 11 18:37:16 2008 -0400 + + Restructure cursor handling and add support for legacy cursors + +commit f2351ab38c8157bdbc839ad628b1dde6693f51bd +Author: Alex Deucher +Date: Mon Aug 11 17:02:18 2008 -0400 + + atom: implement crtc lock + +commit e20c670a5a7896a7ad6c004c744993e3be3879dc +Author: Alex Deucher +Date: Mon Aug 11 16:29:19 2008 -0400 + + LUT updates + + - Add gamma set for legacy chips + - Add 16 bpp gamma set + +commit d4f9eaa55a0f9c1c9b3f8d92d734eff4a6ae859e +Author: Alex Deucher +Date: Mon Aug 11 16:15:21 2008 -0400 + + various cleanups + + - white space + - move i2c_lock to radeon_i2c.c + - enable tv dac on legacy + +commit 019745c41758173eacb910dde512de0beb6a69eb +Author: Alex Deucher +Date: Mon Aug 11 14:41:13 2008 -0400 + + Add legacy dac detect stubs + +commit b6f5b8ec7169320b79561c88ad04aefa795b3497 +Author: Alex Deucher +Date: Mon Aug 11 14:26:43 2008 -0400 + + unify connector, i2c handling for atom and legacy + +commit 5f427e9aaed76ec827b9523b4022205f5bd09a4a +Author: Alex Deucher +Date: Mon Aug 11 12:29:42 2008 -0400 + + Brute force port of legacy crtc/encoder code + + - removed save/init/restore chain with set functions + +commit 7677c2dba5d06e888c742a607bc7f42d934043c6 +Author: Alex Deucher +Date: Fri Aug 8 19:36:46 2008 -0400 + + on_each_cpu() compat fixup from krh + +commit b167ccf10fffb3e0ae0be14fc3b168fcacc373d8 +Author: Dave Airlie +Date: Thu Aug 14 09:17:43 2008 +1000 + + radeon: fix kernel_mm properly + +commit 0580785030714f10f624ad329354dc7c688c32ad +Author: Dave Airlie +Date: Thu Aug 14 09:15:28 2008 +1000 + + radeon: FEDORA: patch to make 3D driver work + + set gart buffers start + +commit 58df2fa0ecc7e4dac83b4e7a72d70c3ea41c7ed2 +Author: Dave Airlie +Date: Thu Aug 14 09:14:56 2008 +1000 + + radeon: remove debugging + +commit b0ee12e6bb55655c92184483a065780529c8aa63 +Author: Dave Airlie +Date: Thu Aug 14 09:14:14 2008 +1000 + + radeon: use mm_enabled variable to denote memory manager running + +commit 18020e5e9647e218caf8f1566cdc053aac126f23 +Author: Dave Airlie +Date: Thu Aug 14 09:12:36 2008 +1000 + + radeon: make buffer swap for older drivers work again on GEM + +commit d59f41b8cf0634a433be7d11f6b473035060c5e1 +Author: Dave Airlie +Date: Thu Aug 14 09:11:15 2008 +1000 + + radeon: add userspace call for mm support check + +commit 957c71ff52e93bb2c1bc01b99d29d763d0ef3899 +Author: Dave Airlie +Date: Thu Aug 14 09:10:11 2008 +1000 + + radeon: FEDORA: add old DMA buffers on top of GEM + + This really shouldn't go upstream, it just lets me + run the old 3D driver on GEM setup system + +commit 1c6abcefdc37f5cbb447e8fee1f3805fd7d19bea +Author: Jesse Barnes +Date: Wed Aug 13 11:39:22 2008 -0700 + + i915: setup hardware status page if physical addrs are required + + Needed for the modesetting case where we initialize the ring at load time. + +commit b8724ae647c2c622f33f3a82d1b8632c887fa69b +Merge: 2f03ba4 9a2adc4 +Author: Jesse Barnes +Date: Wed Aug 13 10:09:41 2008 -0700 + + Merge branch 'modesetting-101' into modesetting-gem + +commit 2f03ba4aad1718a36168550b6a146b79540252e6 +Merge: 085df64 b0e6882 +Author: Jesse Barnes +Date: Wed Aug 13 10:08:02 2008 -0700 + + Merge branch 'master' into modesetting-gem + + Conflicts: + + libdrm/Makefile.am + libdrm/xf86drm.h + shared-core/i915_dma.c + shared-core/i915_irq.c + +commit af12ef4f6b4ca111d9a2ef45263ad89610498724 +Author: Thomas Hellstrom +Date: Wed Aug 13 10:04:21 2008 +0200 + + Don't call the vblank tasklet with irqs disabled. + If a specific tasklet shares data with irq context, + it needs to take a private irq-blocking spinlock within + the tasklet itself. + +commit b0e68829462aad00ce68be998da6313bca754e9a +Author: Kristian Høgsberg +Date: Tue Aug 12 22:22:15 2008 -0400 + + [intel_bufmgr_gem] Fix flink buffer name caching (#17085, #17092). + + Store the global name in global_name, don't overwrite the gem_handle. + +commit 085df6491e4975681a6e17ff9a67d01268aa7553 +Author: Jesse Barnes +Date: Tue Aug 12 18:23:58 2008 -0700 + + Add error checking to framebuffer creation + + Make the Intel routine return an error if needed and make the core check for + it. + +commit e9648e9107e90c3ef38a9c9ebb95bac1297d0df5 +Author: Jesse Barnes +Date: Tue Aug 12 18:22:34 2008 -0700 + + Export a generic dri_bo handle for use by clients + + We'll need something like this (either a handle field or a dri_bo_get_handle + function) for kernel mode setting to get at the handles. + +commit 966c783e96b3f8ae0271db3dd6862177c659ab13 +Author: Matthieu Herrb +Date: Mon Aug 11 10:44:39 2008 -0700 + + libdrm: Allow build outside of source tree. + +commit 08faab27e5fbf12e53dc9d4bf38eda8da1a55007 +Author: Dave Airlie +Date: Mon Aug 11 10:58:41 2008 +1000 + + drm_vm: fix for build on 2.6.22 + + thanks to malc0 for pointing it out + +commit 280d415957c0af099c44aaecb69a06c68c86aebb +Author: Dave Airlie +Date: Mon Aug 11 10:47:00 2008 +1000 + + drm: add OS_HAS_GEM option. + + To build i915 driver pass OS_HAS_GEM=1 to make for now + +commit 9a2adc442af9d83b85e4d558cb5e4d33597b60b9 +Author: Maarten Maathuis +Date: Sat Aug 9 19:50:00 2008 +0200 + + NV50: minor changes + +commit f79ed5546229aa923f8dd54055bebeb56efaa76c +Author: Maarten Maathuis +Date: Sat Aug 9 19:47:06 2008 +0200 + + NV50: enable hotplug irq + +commit 2b7feebb8ad5f49391b4f6bd6fc548e4f93b94f3 +Author: Maarten Maathuis +Date: Sat Aug 9 19:33:32 2008 +0200 + + NV50: call drm_sysfs_hotplug_event when appropriate + +commit 12e6a114cf9ebd0e1d8ccdbf9a7aef7c67e24b58 +Author: Dave Airlie +Date: Sat Aug 9 17:19:16 2008 +1000 + + drm: TRUE/true + +commit f7a99407153eaba5724b6f1f2cadab62c6a50a26 +Author: Eric Anholt +Date: Fri Aug 8 15:55:34 2008 -0700 + + Drop TTM interfaces from the userland library. + +commit 9e9d9b1741965f6529153bc2bcbe2dd8ba96ef3f +Author: Eric Anholt +Date: Fri Aug 8 14:08:43 2008 -0700 + + Fix compile warning from check_aperture change. + +commit e1b8e79796b172c356af98eb49107c8abbebfe5a +Merge: 0c47151 46e9274 +Author: Eric Anholt +Date: Fri Aug 8 14:05:01 2008 -0700 + + Merge branch 'drm-gem' + + Conflicts: + + shared-core/i915_dma.c + + This brings in kernel support and userland interface for intel GEM. + +commit 46e9274e8538e5b0517f611dca99dde611f4e95d +Author: Eric Anholt +Date: Fri Aug 8 13:13:46 2008 -0700 + + Replace the check_aperture API with one we can make thread-safe. + + While the bufmgr isn't thread-safe at the moment, we need it to be for shared + objects between contexts. + +commit 0c47151a571827905c34649208e22f8ec0175d62 +Author: Stuart Bennett +Date: Fri Aug 8 16:20:52 2008 +0100 + + nouveau: wait for pgraph idle after loading or saving a context + + the nvidia driver does this, and it stops the error message appearing on nv40 + +commit c2184e450e4c5613c1f1a004d183ad478358013e +Author: Dave Airlie +Date: Fri Aug 8 16:04:45 2008 +1000 + + radeon: add initial support for legacy crtc/encoders. + + not all there yet + +commit 8074b2e83d18bbf85d1c3284f561d849c829dd4b +Merge: c7fb19e 4585787 +Author: Jesse Barnes +Date: Thu Aug 7 17:15:50 2008 -0700 + + Make modesetting-gem build with recent kernels + + Needed to merge in VM fault changes & pci_read_base API update. + +commit 5968e061db90451b19c3948bbd91c6d5ac9af941 +Author: Keith Packard +Date: Thu Aug 7 15:26:30 2008 -0700 + + Make flink save the kernel-assigned name and return it instead of creating another name + +commit c7fb19e9b074281f143b0e1c9d054ebcf5ff1091 +Merge: 086716c ac20e14 +Author: Jesse Barnes +Date: Thu Aug 7 14:02:04 2008 -0700 + + Merge branch 'drm-gem' into modesetting-gem + +commit ac20e14d2361160cf199dc31c3fe1ffbacdf5bb7 +Author: Keith Packard +Date: Mon Aug 4 23:33:03 2008 -0700 + + Switch from shmem_getpage to read_mapping_page + +commit 8c042a0b0531117f2663ae6932d299cb47941607 +Author: Dave Airlie +Date: Wed Aug 6 15:59:31 2008 +1000 + + radeon: fixup PCI GART table with GEM enabled + +commit 64359586730268fc83ccc0db0487e217a894335b +Author: Dave Airlie +Date: Wed Aug 6 15:58:09 2008 +1000 + + radeon: just evict to TT not cached + +commit a6c075fca6faf83ccbfa38fb27dc4f743b6cdd61 +Author: Dave Airlie +Date: Wed Aug 6 15:57:38 2008 +1000 + + drm: don't teardown things in modeset paths + +commit 04b5584c62fa3311e717692e261870276cbd6350 +Author: Dave Airlie +Date: Wed Aug 6 15:56:08 2008 +1000 + + pcigart: fixup memset + remove wbinvd + +commit 513d4c3ff1937159e0d32047376415df09031ce6 +Author: Dave Airlie +Date: Wed Aug 6 10:21:20 2008 +1000 + + radeon: fix setting new memmap in right place + +commit dc0546c87ffc6701802d6141810c24954274e1ac +Author: Keith Packard +Date: Tue Aug 5 16:06:40 2008 -0700 + + [gem-intel] Retiring flush requests should clear flushed write_domains + + When i915_gem_retire_request has a flush which matches an object write + domain, clear the write domain. This will move the object to the inactive + list rather than the flushing list, avoiding trouble with objects left stuck + on the flushing list. + +commit ceb3d5e3834452f9d54f974b8066f90168467443 +Author: Keith Packard +Date: Tue Aug 5 14:44:53 2008 -0700 + + [gem-intel] Don't clear write_domain until flush completes + + In i915_gem_object_wait_rendering, if the object write domain is being + written by the GPU, the appropriate flushing commands are written to the + device and an additional request queued to mark that flush. Finally, the + function blocks on that new request. + + The bug was that the write_domain in the object was cleared before the + function blocked. + + If the wait is interrupted by a signal, the flushing commands may still be + pending. With the current write_domain information lost, the restarted + syscall will drop right through the write_domain test as that value was + lost, and so the function will not block at all. Oops. + + Fixed by simply moving the write_domain clear until after the wait_request + succeeds. Note that the restarted system call will generate an additional + flush sequence and request, but that should be 'harmless', aside from a + slight performance impact. + + Someday we'll track flushing more accurately and clear write_domains more + efficiently, but for now, this should suffice. + + This bug was discovered in the 2d gem development by running x11perf + -copypixwin500 and noticing that the window got cleared accidentally. + +commit 8e41ce17b4ab72f526cc6e9acd75c3fa81a60433 +Author: Keith Packard +Date: Mon Aug 4 00:34:08 2008 -0700 + + Expose pin/unpin/set_tiling/flink APIs + +commit 4748fbcbd7b0337448ce88c2cdbbc500ff959e42 +Author: Dave Airlie +Date: Tue Aug 5 11:36:20 2008 +1000 + + radeon: fix blit due to registers wrong + +commit fd75c02ddd380c102ca089f015f14dfe964910b1 +Author: Dave Airlie +Date: Mon Aug 4 14:59:49 2008 +1000 + + drm: finish bo after lastclose + +commit aa8e15f8b51e555e78cb93e279bad5843eea5391 +Author: Dave Airlie +Date: Mon Aug 4 14:59:17 2008 +1000 + + radeon: add userspace mm enable switch + +commit 29649ddedee6b07b922c99233b8afc7c3a1db66f +Author: Dave Airlie +Date: Mon Aug 4 14:56:08 2008 +1000 + + radeon: don't use ring if cp not going + +commit dff84851516a71639d734e134c584f6ed4d3ee07 +Author: Dave Airlie +Date: Mon Aug 4 14:55:12 2008 +1000 + + drm: remove unused types + +commit 717dd804d0d1d9984345a998b28ee47079c70639 +Author: Dave Airlie +Date: Mon Aug 4 14:54:32 2008 +1000 + + drm: fixup master code to use krefs + +commit af6efc3d778b96164849f822331938c4cdf8f4b2 +Author: Dave Airlie +Date: Mon Aug 4 14:53:45 2008 +1000 + + i915/radeon: use rmmap locked + +commit 129c8a11814741a997e3d039ab4be542d38e5ed8 +Author: Dave Airlie +Date: Mon Aug 4 14:53:14 2008 +1000 + + modesetting: pick_crtcs can't be static + +commit 922f74f3c95fae39ffe8cf0659fa47e0bc354076 +Author: Dave Airlie +Date: Mon Aug 4 14:52:58 2008 +1000 + + drm: remove unneeded debugging + +commit 086716c8e2516dd71e94ebda03e20943188a5e5e +Merge: 5052e96 ccbaad5 +Author: Kristian Høgsberg +Date: Fri Aug 1 13:35:56 2008 -0400 + + Merge commit 'origin/drm-gem' into modesetting-gem + + Conflicts: + linux-core/Makefile.kernel + linux-core/drmP.h + linux-core/drm_mm.c + linux-core/drm_stub.c + linux-core/i915_gem.c + linux-core/i915_opregion.c + shared-core/i915_dma.c + shared-core/i915_drv.h + shared-core/i915_irq.c + +commit 4585787bd1a1d782b9e7c06095f98d09165b8c23 +Author: Dave Airlie +Date: Fri Aug 1 07:43:58 2008 +1000 + + Revert "i915: Move all of the irq install/uninstall to load time." + + This reverts commit 965a72202b439068e62ac341990f51953457b202. + + Please re-do over properly + +commit 5052e966ec7fe5146c2d73b90482003619add5da +Merge: 6d4e147 95c0274 +Author: Kristian Høgsberg +Date: Thu Jul 31 15:18:32 2008 -0400 + + Merge commit 'origin/master' into modesetting-gem + + Conflicts: + linux-core/Makefile.kernel + linux-core/ati_pcigart.c + linux-core/drm_compat.h + linux-core/drm_irq.c + linux-core/drm_lock.c + linux-core/i915_drv.c + shared-core/i915_dma.c + shared-core/i915_drv.h + shared-core/i915_irq.c + shared-core/nouveau_mem.c + shared-core/radeon_cp.c + shared-core/radeon_drv.h + +commit 296073dc5f0bf3f8b74a7d6db48b05c09a1b9242 +Author: Dave Airlie +Date: Thu Jul 31 14:39:25 2008 +1000 + + drm: remove object hash + +commit d2d7f3069dac4bc5ddd3c8da4d3955f690274276 +Author: Dave Airlie +Date: Thu Jul 31 13:13:21 2008 +1000 + + drm: userspace rip out TTM API + +commit 10d5b037b85706037df89bf0275436797e4eb559 +Author: Dave Airlie +Date: Thu Jul 31 13:12:36 2008 +1000 + + drm: add fault handler support so as to be more like possible upstream + +commit 55761b2fe706f8f68ca3a8827b950fd01af1650b +Author: Dave Airlie +Date: Thu Jul 31 13:12:36 2008 +1000 + + drm: add fault handler support so as to be more like possible upstream + (cherry picked from commit 10d5b037b85706037df89bf0275436797e4eb559) + +commit 9b8d71b5eb09857b07409731d3de182751f712a2 +Author: Dave Airlie +Date: Thu Jul 31 12:54:48 2008 +1000 + + TTM: remove API and userspace objects. + + This removes all the TTM userspace API and all userspace objects. + + It also removes the drm_bo_lock.c code + +commit ccbaad52f79162a77d98d0dde00681b1dbf14165 +Author: Eric Anholt +Date: Wed Jul 30 14:10:36 2008 -0700 + + intel-gem: Replace version bump signalling GEM with I915_PARAM_HAS_GEM. + +commit 6d4e147480a334d32fa59c7fde53e10d7ab6e106 +Author: Kristian Høgsberg +Date: Tue Jul 22 14:24:32 2008 -0400 + + Make it compile again. + +commit 689548b5270a0049cfaf844013ef61ad4c9eaeea +Author: Eric Anholt +Date: Wed Jul 30 11:29:32 2008 -0700 + + intel-gem: Remove dead field from reverted changes. + +commit 33c8e03787308c2b86a4f724ba7ce4dc43918b6a +Author: Eric Anholt +Date: Wed Jul 30 11:22:48 2008 -0700 + + Revert "Rename drm_mm.c and its fuctions to drm_memrange." + + This reverts commit 3ad8db2071d30c198403e605f2726fc5c3e46bfd. + + We ended up not needing that namespace, and I'd rather not have the churn + for producing diffs. + +commit fb5542aaa87aca9b6b312968abe0a6044812cf0e +Author: Dave Airlie +Date: Wed Jul 30 17:06:11 2008 +1000 + + radeon: hack gem to get an offset back for Mesa. + +commit d659302e0955598ae08316ab911a0fb74d5e2f2f +Author: Dave Airlie +Date: Wed Jul 30 17:05:50 2008 +1000 + + radeon: add some handles to the sarea + kernel mm available check + +commit 95c02743c96ca9e959f68a6e942206bdfadae53a +Author: Dave Airlie +Date: Wed Jul 30 16:52:13 2008 +1000 + + i915: more version checks + +commit 02b09d271c60d13fbb738c7053429a3b816397db +Author: Dave Airlie +Date: Wed Jul 30 16:26:51 2008 +1000 + + i915: add version checks for opregion on old kernels + +commit 8fc72aef70cdec71e3dbce548046974aecc15325 +Author: Eric Anholt +Date: Tue Jul 29 20:26:38 2008 -0700 + + intel-gem: actually add i915_gem_debug.c. + +commit 0f78e30e0a189b76df3558f53ff2a92b841cd7ab +Author: Eric Anholt +Date: Tue Jul 29 11:10:47 2008 -0700 + + intel-gem: Check return value of pci_read_base. + +commit 90b90c65dc78648ddded5eff7628749182c73295 +Author: Nicolai Haehnle +Date: Tue Jul 29 19:56:51 2008 +0200 + + r300: Fix cliprect emit + + This makes our handling of cliprects sane. drm_clip_rect always has exclusive + bottom-right corners, but the hardware expects inclusive bottom-right corners, + so we adjust this here. + + This complements Michel Daenzer's commit 57aea290e1e0a26d1e74df6cff777eb9f038f1f8 + to Mesa. See also http://bugs.freedesktop.org/show_bug.cgi?id=16123 . + +commit 0452be882607f2d1601f4e592a11ccf543f5f9ca +Author: Dave Airlie +Date: Tue Jul 29 18:05:11 2008 +1000 + + radeon: move code around putting emit into cs + +commit 4234f82acc70f41e005d8cc301da56634352425c +Author: Dave Airlie +Date: Tue Jul 29 16:51:47 2008 +1000 + + radeon_cs: add relocate hook for mm and non-mm relocations + +commit 0e49e49c9f8fdbe77740c1bdcc0cb4102d26bf7a +Author: Eric Anholt +Date: Mon Jul 28 23:14:11 2008 -0700 + + intel: Fix typo in unused register definition name. + +commit e68b57c17da422f61b34c8221c8f4655c676b925 +Author: Eric Anholt +Date: Mon Jul 28 16:33:50 2008 -0700 + + intel-gem: checkpatch.pl on drm_proc.c new contents. + +commit 1d2bb68d28fe39746299ee8ddb664a62de839b0c +Merge: 487c42b 514c05c +Author: Eric Anholt +Date: Mon Jul 28 15:17:21 2008 -0700 + + Merge commit 'origin/master' into drm-gem + + Conflicts: + + linux-core/Makefile.kernel + shared-core/i915_dma.c + shared-core/i915_drv.h + shared-core/i915_irq.c + +commit 6b903f5edfbba19980a5518df9a89643378516d4 +Author: Stuart Bennett +Date: Tue Jul 29 02:32:13 2008 +0100 + + nouveau: fix nv04 fifo context save to save reg contents, not reg offset + + clearly the function had never been used :) + +commit 591f6bcba35e482280299eef91d57b23a69106d1 +Author: Stuart Bennett +Date: Tue Jul 29 02:26:34 2008 +0100 + + nouveau: fix bad rename from 5a072f32c8f941d1ef301811881e8c89c8d8a5f1 + +commit 487c42bd42d93304278abce03b36c935bdc83284 +Author: Eric Anholt +Date: Mon Jul 28 11:45:22 2008 -0700 + + intel-gem: Another checkpatch.pl pass. + +commit 1bdf35fe19c1aa02b301375b3cae7ad29adacef8 +Author: Eric Anholt +Date: Mon Jul 28 11:24:00 2008 -0700 + + intel-gem: Fix regression tests. + + Main fix is an oops that was triggered by the gtt pwrite path when we don't + have the gtt initialized. Also, settle on -EBADF for "bad object handle", + and -EINVAL for "reading/writing beyond object boundary". + +commit f85fd1b42dc2d77266007c02144d4f4f524e4157 +Author: Eric Anholt +Date: Sat Jul 26 19:28:14 2008 -0700 + + intel-gem: Speed up tiled readpixels by tracking which pages have been flushed. + + This is around 3x or so speedup, since we would read wide rows at a time, and + clflush each tile 8 times as a result. We'll want code related to this anyway + when we do fault-based per-page clflushing for sw fallbacks. + +commit 478e019cb7caa0c336b19a18eb3cb4e81896b493 +Author: Alan Hourihane +Date: Mon Jul 28 15:16:45 2008 +0100 + + set to 2.4.0 + +commit 42e373e903d960b38c605229ab102933b18cff73 +Author: Dave Airlie +Date: Mon Jul 28 18:18:28 2008 +1000 + + radeon_cs: extract some offsets from packet data + +commit 87520347b45e2f40a2d84831538a38d6a8d92439 +Author: Dave Airlie +Date: Mon Jul 28 17:42:53 2008 +1000 + + r300: add some packet 3 decodes + +commit dc3a7c023dd089150ee2dc40755fde348252bedb +Author: Dave Airlie +Date: Mon Jul 28 17:27:24 2008 +1000 + + r300: initial command stream parser for packet 0. + + this at least parses the DDX stream and lets me run gnome-terminal/metacity + +commit 38835f9cd2b44cfb6587a52ba1bfe292b958d0e1 +Author: Dave Airlie +Date: Mon Jul 28 15:21:13 2008 +1000 + + radeon command submission start + + take code from Jerome munge into a TTM IB re-use + +commit 04ae66db1c517264cddc786be962fdd393c9c8ac +Author: Eric Anholt +Date: Sat Jul 26 19:51:58 2008 -0700 + + intel-gem: Move debug-only functions to a separate file. + +commit 5282a505b6fd1f0e2bb772b15daf652f7149f370 +Author: Alex Deucher +Date: Sat Jul 26 16:57:02 2008 -0400 + + NV50: s/FALSE/false/ + +commit 514c05cebe31a62f827a76f348d35596bef97811 +Author: Stefan Becker +Date: Sat Jul 26 16:49:14 2008 +0200 + + radeon: Add suspend/resume hooks for saving/clearing/restoring interrupts. + + Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16799 . + +commit c3d463840c902a28221f1514bfb69fb7905a05c2 +Author: Nicolai Haehnle +Date: Sat Jul 26 11:39:10 2008 +0200 + + r300_cmdbuf: Always emit INDX_BUFFER immediately after DRAW_INDEX + + DRAW_INDEX writes a vertex count to VAP_VF_CNTL. Docs say that behaviour + is undefined (i.e. lockups happen) when this write is not followed by the + right number of vertex indices. + + Thus we used to do the wrong thing when drawing across many cliprects was + necessary, because we emitted a sequence + DRAW_INDEX, DRAW_INDEX, INDX_BUFFER, INDX_BUFFER + instead of + DRAW_INDEX, INDX_BUFFER, DRAW_INDEX, INDX_BUFFER + The latter is what we're doing now and which ought to be correct. + +commit 0443d2a32ab791867cb0ce361a3905357d6a87d9 +Author: Dave Airlie +Date: Sat Jul 26 08:56:43 2008 +1000 + + tests: add some basic radeon gem tests + +commit df9871064e8b564d9ae2e56d561b64434fd004af +Author: Dave Airlie +Date: Sat Jul 26 08:56:23 2008 +1000 + + radeon: add initial atombios modesetting and GEM -> TTM translation layer. + + This is an initial import of the atom bios parser with modesetting support + for r500 hw using atombios. It also includes a simple memory manager + layer that translates a radeon GEM style interface onto TTM internally. + + So far this memory manager has only been used for pinned object allocation + for the DDX to test modesetting. + +commit 31da9492a4129f5255e949836c51e9dfbfb270c4 +Merge: 11d3075 7fd7ba8 +Author: Dave Airlie +Date: Sat Jul 26 08:46:38 2008 +1000 + + Merge remote branch 'origin/modesetting-101' into modesetting-gem + +commit 7fd7ba87f35aa4881e99b95bab4151b3f9db9b8e +Author: Dave Airlie +Date: Fri Jul 25 13:30:08 2008 +1000 + + drm: don't set the signal blocker on the master process. + + this lets us debug the X server through xkb startup. + + Not sure what the correct answer is, probably X needs to drop + the lock when execing stuff, with input hotplug it can get + xkb stuff at any time I believe. + +commit 66723c09f5e4d60f1c746d112b065bacc1cfa89f +Author: Dave Airlie +Date: Sat Jul 26 08:43:59 2008 +1000 + + modesetting: pass file priv to cursor + +commit 2be292f6ea8df96afc1454f30918b1b391fba2ba +Author: Dave Airlie +Date: Sat Jul 26 08:43:01 2008 +1000 + + nv50: remove TRUE/FALSE + +commit 11d30750873260fe19498d90831f07079dfad5d8 +Author: Dave Airlie +Date: Sat Jul 26 08:41:01 2008 +1000 + + modesetting: pass file_priv into cursor set functions + +commit fb05c4d621084d7a3fb3dd52d7d9c888eac852d0 +Merge: 2556341 5342845 +Author: Dave Airlie +Date: Sat Jul 26 08:38:59 2008 +1000 + + Merge remote branch 'origin/modesetting-101' into modesetting-gem + +commit 7a3d6624c47d87bdd46f5394b8cc5130c7a4ed0d +Author: Robert Noland +Date: Fri Jul 25 13:46:28 2008 -0400 + + [FreeBSD] Duh, we need to actually define the drm_modeset_ctl... + +commit 50db5aefa18283282400fd4a5090b686b5870206 +Author: Dave Airlie +Date: Fri Jul 25 13:30:08 2008 +1000 + + drm: don't set the signal blocker on the master process. + + this lets us debug the X server through xkb startup. + + Not sure what the correct answer is, probably X needs to drop + the lock when execing stuff, with input hotplug it can get + xkb stuff at any time I believe. + +commit 53428453758621da70d9608c9baec58b4b9383ec +Author: Dave Airlie +Date: Thu Jul 24 15:22:44 2008 +1000 + + drm: use correct mode destructor + +commit 2580a065d81be645a14af1e91b8441f7e72fcbe4 +Author: Robert Noland +Date: Thu Jul 24 00:21:00 2008 -0400 + + [FreeBSD] Catch up to linux on vblank-rework + +commit 965a72202b439068e62ac341990f51953457b202 +Author: Robert Noland +Date: Wed Jul 23 19:55:06 2008 -0400 + + i915: Move all of the irq install/uninstall to load time. + + This resolves a panic on FreeBSD which was caused by trying + to re-initialize the swap lock. It's just much easier to + initialize all of the locks at load time. It should also + ensure that the vblank structures are available earlier. + +commit 6d258ddf7715412e2fb6fae35ea28d49c57ee130 +Author: Eric Anholt +Date: Wed Jul 23 11:49:25 2008 -0700 + + intel-gem: Fix pread math and logic errors. + + Fixes an oops in fbotexture from walking off the end of the page list. + +commit 439d7106832f2e9742deb900d96f1d3bc07162b1 +Author: Eric Anholt +Date: Wed Jul 23 10:07:16 2008 -0700 + + intel-gem: Add a quick hack to reduce clflushing on pread. + + This increases overhead for the large-readpixels case due to the repeated + page cache accessing, but greatly reduces overhead for the small-readpixels + case. + +commit bddb952578d58c4dcfafe969c045a39d27666b56 +Author: Eric Anholt +Date: Wed Jul 23 08:36:54 2008 -0700 + + intel-gem: Don't do the GTT-pwrite shortcut on tiled buffers. + + These will be covered by the fence, while pread/pwrite are supposed to be + CPU-perspective writes, with manual detiling done by the client. + +commit a5d8f35f0fa651fbe8ca2897875ba188ca7dcda5 +Author: Eric Anholt +Date: Mon Jul 21 14:33:55 2008 -0700 + + intel-gem: Move /proc debugging to a separate file. + +commit 589f9681734770dce966bcded7d3d4bd78f4bea5 +Author: Dave Airlie +Date: Tue Jul 22 18:47:27 2008 +1000 + + radeon: fix typo with a better typo + +commit c669489813c089b5aa176367e696396b071a4bee +Author: Dave Airlie +Date: Tue Jul 22 18:10:03 2008 +1000 + + radeon: fix type DST vs Z cache flush + +commit f57f01f02843747d423f2e1c2936f0b987c5b067 +Author: Robert Noland +Date: Mon Jul 21 18:04:02 2008 -0400 + + [FreeBSD] Improve upper_32_bits define. + + Thanks to airlied. + +commit e31d27857ffc1b01ca49e70b5ba6f7425414d7c8 +Author: Eric Anholt +Date: Mon Jul 21 14:21:16 2008 -0700 + + intel-gem: Remove recently added pci_read_base prototype. + + This is in pci.h in the fixed patch to the kernel. + +commit 67d15215660407b07265c37d60ea5cac8930cef9 +Author: Eric Anholt +Date: Tue Jul 1 12:31:37 2008 -0700 + + intel-gem: Set up HWS when it needs a vaddr during GEM init. + + This requires an updated 2D driver to not try to set it up as well. + +commit 4d5b9f484885ac01457f0a8c39b24ca4aac34b5a +Author: Maarten Maathuis +Date: Mon Jul 21 16:57:25 2008 +0200 + + NV50: Don't create a "native" mode for LVDS when there is none. + +commit 147ef45873868a0df9216dac0370ada1ed835590 +Author: Maarten Maathuis +Date: Mon Jul 21 16:40:55 2008 +0200 + + NV50: don't fail on LVDS by default + +commit 03f8208ab0a3ea77a8b30dd1c3fe2b62892f9d8c +Author: Maarten Maathuis +Date: Mon Jul 21 14:50:07 2008 +0200 + + NV50: Use bios table for load pattern when possible. + +commit d00644c27ddc7023ea0e442c7be6b67d9d0da047 +Author: Maarten Maathuis +Date: Mon Jul 21 14:29:13 2008 +0200 + + NV50: Do detect with hpd and load detect if possible. + + - Appropriate error messages when an unknown situation is encountered are included. + - Fallback to i2c will occur when needed. + +commit b5cddbcc1536d70dfa9fec833732b2a715d82e65 +Author: Michel Dänzer +Date: Mon Jul 21 13:43:12 2008 +0200 + + Remove accidental leftover tests. + + Thanks to Nicolai Haehnle for pointing this out on IRC. + +commit 4be367b84b5a6691c28d9419039ea8113ebabc92 +Author: Michel Dänzer +Date: Mon Jul 21 11:48:04 2008 +0200 + + Reinstate dev->vblank_enabled[]. + + I incorrectly thought it was obsolete. + +commit f529a510d200c87919084fda1e053545c25ebeab +Author: Michel Dänzer +Date: Mon Jul 21 08:16:59 2008 +0200 + + Drop workaround for driver vblank counter going backwards. + + The driver code that caused this is no longer necessary and has been dropped. + +commit e4feaf506db0bc8ad15dbb5154e093478c3dd56a +Author: Michel Dänzer +Date: Mon Jul 21 08:16:59 2008 +0200 + + radeon: Post-vblank-rework-rework cleanups. + + Thanks to the reworked vblank-rework, we can just use the hardware frame + counter directly, and make the RADEON_PARAM_VBLANK_CRTC getparam just return + what was set by the corresponding setparam. + +commit 205aff6a5cc7b037f53b6bbcd3fa5b2d42f43f5b +Author: Michel Dänzer +Date: Mon Jul 21 08:16:55 2008 +0200 + + vblank-rework rework cleanups. + + Remove some dead/obsolete code and make drm_update_vblank_count() static. + +commit 014935b680d12856a01c0b2fe6077a38d69d14d3 +Author: Michel Dänzer +Date: Mon Jul 21 08:13:45 2008 +0200 + + Remove obsolete dev->vblank_suspend[crtc] tests. + + Caused drm_update_vblank_count() not to do its thing when called from + drm_modeset_ctl() -> drm_vblank_get(). + + The vblank functionality no longer needs to be suspended during a modeset, so + rename the field to vblank_inmodeset. + +commit 685bca02fe6b7406bb157a1a4e0f147b47ba28f8 +Author: Maarten Maathuis +Date: Sun Jul 20 15:40:40 2008 +0200 + + NV50: delay changing gpu<->non-gpu scaling modes until next modeset + +commit e51cd78cac24df15e32e23d8db73614524e6ff0d +Author: Maarten Maathuis +Date: Sun Jul 20 14:58:46 2008 +0200 + + modesetting-101: Only store property value when set_property was successful. + +commit f1e4785d4cf04b679948602ffbbef2043ce81ec0 +Author: Maarten Maathuis +Date: Sun Jul 20 14:55:59 2008 +0200 + + NV50: LVDS always needs some kind of gpu scaling + +commit 3ef1d05001a9e28ed52536de7e020323d8d34d83 +Author: Maarten Maathuis +Date: Sun Jul 20 14:51:22 2008 +0200 + + modesetting-101: set_property should return an int, not a bool + +commit 65803e53a696347e38d7f6c2c8dc186c6764ff03 +Author: Maarten Maathuis +Date: Sun Jul 20 13:49:18 2008 +0200 + + modesetting-101: implement optional scaling and dithering properties + +commit e2ffee839ed7ae6c55a0a8c6bb8ee872ae8a2a70 +Author: Maarten Maathuis +Date: Sun Jul 20 00:09:06 2008 +0200 + + drm: As a workaround don't tear down sg with a modesetting driver. + + - This allows me to maintain a useful prototype driver. + +commit 04893aa99abfbed8eb6d7067a974fa1f31193c87 +Author: Jesse Barnes +Date: Sat Jul 19 13:18:02 2008 -0400 + + i915: convert to using drm_vblank_get/put around vblank counter usage + + All interrupt off vblank count updates are done in drm_vblank_get/put + now, so convert users of the vblank counter over to that interface. + +commit 6ac1f8a760e1e757569a5f6f420df91cf203b02d +Author: Jesse Barnes +Date: Sat Jul 19 13:15:23 2008 -0400 + + Update vblank code to new API + + In my last push I forgot to convert users of drm_update_vblank_count + over to drm_vblank_get/put, since that's where any interrupt off->on + update accounting is done now. Since the modeset ioctl did something + similar (an open coded update of the counter) convert it over to using + get/put too, which saves us from having to deal with every combination + of interrupt off & on between calls. + +commit 4d83a751b421ec3f3e0c572070c3bc295b9adbcc +Author: Ian Romanick +Date: Fri Jul 18 12:42:43 2008 -0700 + + drm-gem: Fix build + + On some distros missing prototypes cause kernel builds to fail. These + are hack to make the code build. + +commit f5c2f00e2f99732311c9a35a91b6adc93047c51b +Author: Eric Anholt +Date: Thu Jul 17 16:56:42 2008 -0700 + + intel-gem: Leave 8xx tiling on until we find any issues. + +commit 0ef097b598433a5756df2bd6a72deba1f0e1d1c7 +Author: Ben Skeggs +Date: Mon Jun 23 01:24:11 2008 +1000 + + nv50: use same dma object for fb/tt access + + We depend on the VM fully now for memory protection, separate DMA objects + for VRAM and GART are unneccesary. However, until the next interface break + (soon) a client can't depend on the objects being the same and must still + call NV_OBJ_SET_DMA_* methods appropriately. + +commit 4872ac9c6204c3f212fd622ed292f6fc245020bf +Author: Ben Skeggs +Date: Wed Jun 25 04:39:32 2008 +1000 + + nouveau: interface changes for nv5x 3d + +commit 7cfdba2b30e40efc688f1704bd4f4141dc6f9a6c +Author: Dave Airlie +Date: Fri Jul 18 14:30:57 2008 +1000 + + radeon: remove microcode version + +commit ed7e1709158ca42736650379ee2aba64a827c51e +Author: Dave Airlie +Date: Thu Jun 19 11:38:43 2008 +1000 + + drm/radeon: fixup 0 vs NULL + +commit 480c317a6ae634d777931eee54fadd2a50a2f650 +Author: Robert Noland +Date: Thu Jul 17 14:01:04 2008 -0400 + + [FreeBSD] drm_irq.c updates for vblank fixes. + +commit a9427cf31861542ff4f4d3db498e5f2ada7da4c1 +Author: Jesse Barnes +Date: Thu Jul 17 13:51:24 2008 -0400 + + i915: remove old broken vblank code + + Remove the unused (and broken) "in vblank" code now that the core has + been fixed to use a counter while interrupts are enabled. Also make the + vblank pipe get/set ioctls into dumb stub functions, since with the new + code we can no longer let userspace control whether vblank interrupts + are enabled, or the core code will misbehave. + +commit 2204f926abe4da87a38955c4ecf9adb73b646666 +Author: Jesse Barnes +Date: Thu Jul 17 13:48:14 2008 -0400 + + Avoid incorrect vblank wakeups + + The current code uses the hw vblank counter exclusively, which can lead + to wakeups during the active period rather than during the vblank period + if the hw counter counts displayed frames rather than vblank periods. + + This change coverts the code over to using the counter while interrupts + are enabled, fixing that issue. It also includes a couple of related + changes: one to not enable the new enable/disable behavior until the + modeset ioctl is called (to preserve old client behavior) and another to + account for lost events due to mode setting with the new counter scheme. + + BSD will require similar changes to its drm_irq.c code, but they should + be straightforward. + +commit b0e4619a396f2db8c594cd0a26fd2f0ab9358095 +Author: Robert Noland +Date: Wed Jul 16 23:39:25 2008 -0400 + + FreeBSD: Fix radeon build + +commit 74cf1f91be7f4139601624af0343e3d411190dec +Author: Owain Gordon Ainsworth +Date: Mon Jul 7 17:23:48 2008 +0100 + + BSD: change drm_locked_task*() to use the same scheme as linux. + + The current code can sleep in an interrupt handler, that is bad. So + instead if we can't grab the lock, flag it and run the tasklet on + unlock. + + Signed-off-by: Robert Noland + +commit 96580f660e5509dcf6c34de5630e3d36b156bcd5 +Author: Robert Noland +Date: Mon Jun 9 08:54:53 2008 -0400 + + [FreeBSD] We aren't allowed to hold locks over bus_dma_tag_create or bus_dmamem_alloc. + +commit dfd441cf964f20e4a761cb8490d7cd82cf32e7b9 +Author: Hong Liu +Date: Tue Jul 15 10:14:17 2008 -0700 + + This is a modified version of Hong's patch from last month, with a few + modifications to make it work correctly on my test hardware (altered the + backlight write function, made it enable the legacy backlight controller + interrupts on mobile hardware, sorted the interrupt function so we don't + get an excessive number of vblank interrupts). This lets the backlight + keys on my T61 work properly, though there's a 750msec or so delay + between the request and the brightness actually changing - this sounds + awfully like the hardware spinning waiting for a status flag to become + ready, but as far as I can tell they're all set correctly. If anyone can + figure out what's wrong here, it'd be nice to know. + + Some of the functions are still stubs and just tell the hardware that + the request was successful. These can be filled in as kernel modesetting + gets integrated. I think it's worth getting this in anyway, since it's + required for backlight control to work properly on some new platforms. + + Signed-off-by: Matthew Garrett + +commit 764573f3b8bec90f20c3bdd58c4b55490fbbdaf4 +Author: Dave Airlie +Date: Tue Jul 15 20:27:14 2008 +1000 + + drm: fix missing symbol export + +commit abdd523c759a5e19e733e3b544c2f1bcaa7a0b9a +Author: Dave Airlie +Date: Tue Jul 15 16:18:22 2008 +1000 + + drm: add fix for PAT on radeon with 2.6.26 + +commit 76c8e19a29d635d2c62937a381ab33014cfe6cea +Author: Dave Airlie +Date: Tue Jul 15 16:18:04 2008 +1000 + + drm/pcigart: fix warning + +commit 78f1fc9cbcb383d42d903a8b9febdcf3c438ea7c +Author: Eric Anholt +Date: Mon Jul 14 09:16:45 2008 -0700 + + intel-gem: Disable tiling if we get junk from the MCHBAR read. + + One of our systems has been returning 0xffffffff from all MCHBAR reads, which + means we'll need to figure out why, or add an alternate detection method. + +commit a9089c45570c7b2df9155c2cd73aeea59cc0e34e +Author: Dave Airlie +Date: Sat Jul 12 16:32:09 2008 +1000 + + modesetting/helper: fix array overrun - count should be reset here + +commit a0474be4e78d678eb615b37aad355effb955ee19 +Author: Eric Anholt +Date: Fri Jul 11 14:47:33 2008 -0700 + + intel-gem: Add two new ioctls for managing tiling on objects. + + Various chips have exciting interactions between the CPU and the GPU's + different ways of accessing interleaved memory, so we need some kernel + assistance in determining how it works. + + Only fully tested on GM965 so far. + +commit 2556341f8baf0e0b7b5f7843135e43e662751af0 +Merge: 38a5f66 0b7d9a9 +Author: Dave Airlie +Date: Wed Jul 9 14:53:47 2008 +1000 + + Merge remote branch 'origin/modesetting-101' into modesetting-gem + +commit eac0933be75b226e0b623d8dcbf343c391eb88a2 +Author: martin capitanio +Date: Tue Jul 8 17:58:10 2008 +1000 + + xgi: use true/false instead of TRUE/FALSE + +commit c7ed2c67916ee8058301c53b9d4690d81728fb95 +Author: Ben Skeggs +Date: Wed Jun 25 04:39:32 2008 +1000 + + nouveau: interface changes for nv5x 3d + +commit 38a5f6686cd38d5204e240f30006538bcf70f5ac +Author: Kristian Høgsberg +Date: Mon Jul 7 18:00:23 2008 -0400 + + Add back flink, open and close ioctls. + + They fell through the cracks in 86accbcb. + +commit 1f9a5307acfe2ef0d104f7036d2d93504dc7673f +Author: Eric Anholt +Date: Thu Jun 26 09:35:14 2008 -0700 + + [intel-gem] typo fix in DRM_ERROR + +commit 3e02f7fd310ae062d250d8db01ddc3b7de3d7943 +Merge: 7fd8a5d d250a55 +Author: Kristian Høgsberg +Date: Mon Jul 7 15:43:43 2008 -0400 + + Merge commit 'origin/drm-gem' into ms-gem + + Conflicts: + + linux-core/drmP.h + linux-core/drm_drv.c + linux-core/drm_stub.c + linux-core/i915_drv.c + linux-core/i915_gem.c + shared-core/i915_drv.h + shared-core/i915_irq.c + +commit 7fd8a5de63781f6faa053509c80e02e8f1cdbb69 +Author: Kristian Høgsberg +Date: Mon Jul 7 11:56:59 2008 -0400 + + Use lowercase bool constants. + +commit 0b7d9a97bd2383fe4382fc1b1b266542020f0c4e +Author: Alan Hourihane +Date: Mon Jul 7 15:11:48 2008 +0100 + + Synchronize the DDC EDID read to it's fb_ddc.c counterpart + +commit d5d3f31b108c8514a820bb50a5736ba06fc33275 +Author: Maarten Maathuis +Date: Sun Jul 6 12:51:43 2008 +0200 + + NV50: init gamma storage + +commit 88f668a0b91a9961d599c46392f3acbb5573ed9d +Author: Maarten Maathuis +Date: Sun Jul 6 11:23:17 2008 +0200 + + NV50: fix minor bug in fbcon crtc selection + +commit 6738e7b00bf05529303ed690873495db6d83337c +Author: Maarten Maathuis +Date: Sun Jul 6 11:08:49 2008 +0200 + + modesetting-101: Rename DPMS modes to avoid compatibility issues with xorg definitions. + +commit e810cb9243fe6c4905182869d9e3272d861a14cb +Author: Maarten Maathuis +Date: Sun Jul 6 10:52:25 2008 +0200 + + modesetting-101: rename modeflags, as to avoid conflicts with the xorg definitions + +commit d495a6e28f7fe5428c1ceb75378cad31b51a517a +Author: Maarten Maathuis +Date: Sun Jul 6 10:11:33 2008 +0200 + + NV50: minor fix + +commit e1cd21bcc8747fcc573708bd4d74df39b60c476a +Author: Maarten Maathuis +Date: Sat Jul 5 20:17:49 2008 +0200 + + NV50: remove edid when monitor is gone, improve fbcon, misc fixes + + - This should avoid switching crtc's when going to fbcon. + +commit c48cddc7ef984c1e05ed4f64a7fc182b6a5031f5 +Author: Maarten Maathuis +Date: Sat Jul 5 16:54:26 2008 +0200 + + NV50: fix switch_fb and connector_is_digital + +commit 7cbc5f6145046f3775e3b3ca2862bfb71831ec44 +Author: Maarten Maathuis +Date: Sat Jul 5 12:04:07 2008 +0200 + + modesetting-101: Make the interface variable names a little more consistent + modeprint changes. + + - All things are now called _id when they are id's. + - modeprint now accepts driver name as first argument. + +commit be31a0fa73272b9c727668096ba652ea748a9735 +Author: Maarten Maathuis +Date: Fri Jul 4 18:47:59 2008 +0200 + + modesetting-101: tv_left_margin_property shouldn't be immutable. + +commit 0028ca33e90d3405bd47a554e9398e0c2aa6099b +Author: Maarten Maathuis +Date: Fri Jul 4 17:37:45 2008 +0200 + + Forgot the 0'th element for the tv property. + +commit c9915d695dad8e4f75b4f551f9f78ff3d64dc666 +Author: Maarten Maathuis +Date: Fri Jul 4 17:28:04 2008 +0200 + + modesetting-101: Move some defines used for enumeration into the public header. + + - Otherwise userspace has no idea of the meaning. + +commit b29578103f57a8d684b4a3a79f220e6cc626605e +Author: Maarten Maathuis +Date: Fri Jul 4 17:17:11 2008 +0200 + + [modesetting-101] Add subconnector and select_subconnector properties. + + - These facilitate DVI-I and tv-out that can drive multiple types of signals. + +commit 142a309604b65c26ca95594943ee91dde8688697 +Author: Dave Airlie +Date: Fri Jul 4 09:34:24 2008 +1000 + + modesetting: rip out all of the generation code. + + not needed, hotplug will work just as well hopefully. + +commit 11b7a81c8a776aa7761ee03fe55d741a44ba5df7 +Author: Maarten Maathuis +Date: Thu Jul 3 17:25:37 2008 +0200 + + libdrm: fix typo in comment + +commit 062d85062061199f2326982e27d54955a4ad76dc +Author: Maarten Maathuis +Date: Thu Jul 3 09:08:01 2008 +0200 + + nv50: s/FALSE/false && s/TRUE/true + +commit d5ca5c9cd379438ac303598677f3789adc3687b1 +Author: Maarten Maathuis +Date: Thu Jul 3 08:07:35 2008 +0200 + + [drm-sysfs] connected is ambigious in the context of a connector, replace with enabled + +commit 47c8f317410976c679aeaee69a372ec45485d442 +Author: Maarten Maathuis +Date: Thu Jul 3 07:18:18 2008 +0200 + + NV50: replace active by enabled + +commit 02b30739f7676082af4ce92448d910085d1dfc65 +Author: Maarten Maathuis +Date: Thu Jul 3 01:05:07 2008 +0200 + + [modeseting-101] add connected field to sysfs + +commit 94cf07bff1bf9a42ba6360f8feaa441b763b337f +Author: Maarten Maathuis +Date: Thu Jul 3 00:30:00 2008 +0200 + + Forgot to fix the modeprint test. + +commit 5de978905abd6d44ee2ecdc7393194a4950c595c +Author: Maarten Maathuis +Date: Thu Jul 3 00:25:06 2008 +0200 + + [libdrm] count connectors and such has no place in a crtc object + +commit 59a9a756e238dd73f3051434545b2d3bf225da87 +Author: Dave Airlie +Date: Thu Jul 3 08:05:51 2008 +1000 + + modesetting: lookup blob using correct identifier. + + blob is a blob not a connector + +commit aa2d3cfc168481b7637d935af990ce447012ebfe +Author: Jakob Bornecrantz +Date: Thu Jul 3 00:03:48 2008 +0200 + + tests: Fix faulty error messages in modeprint + +commit 70ba0871916af586b355550184e0782b36e132c9 +Author: Dave Airlie +Date: Thu Jul 3 08:00:39 2008 +1000 + + drm: fix encoders get permissions + +commit 49e1fa1d503bb66949d825c41c1d97c83cf86361 +Author: Jakob Bornecrantz +Date: Wed Jul 2 23:12:33 2008 +0200 + + tests: modeprint s/fb/fd/ + +commit 4f233ce61858b94e0c1bd36e331b36d1b59512e5 +Author: Jakob Bornecrantz +Date: Wed Jul 2 22:46:44 2008 +0200 + + tests: Updated modeprint + +commit 401f77a2ef1d55feaccc13cdae1e5379f4cfec7e +Author: Zhenyu Wang +Date: Thu Jul 3 00:49:19 2008 +0800 + + i915: official name for GM45 chipset + + Signed-off-by: Zhenyu Wang + +commit f1fe9178f1a2aef272c7feeb15c8de42c8c609d5 +Author: Maarten Maathuis +Date: Wed Jul 2 16:13:54 2008 +0200 + + NV50: basic fbcon + misc fixes + + - There is one fb, used for as many outputs as possible. + - Eventually smaller screens will be scaled to see the full console, but for the moment this'll do. + +commit b28d309210475b6f671af7617c779bd1d7a6810a +Author: Jakob Bornecrantz +Date: Wed Jul 2 13:59:19 2008 +0200 + + tests: Improved and renamed the mode app to modeprint + +commit 301d984ea80cb250460d6701c4373cf0af8bf59e +Author: Jesse Barnes +Date: Tue Jul 1 16:10:01 2008 -0700 + + i915: only use tiled blits on 965+ + + When scheduled swaps occur, we need to blit between front & back buffers. I + the buffers are tiled, we need to set the appropriate XY_SRC_COPY tile bit, + only on 965 chips, since it will cause corruption on pre-965 (e.g. 945). + + Bug reported by and fix tested by Tomas Janousek . + + Signed-off-by: Jesse Barnes + +commit 94dcc83ad2e8f848a3cac6cdc6f123e676e91cf8 +Author: Jesse Barnes +Date: Tue Jul 1 16:09:02 2008 -0700 + + Revert "i915: only use tiled blits on 965+" + + This reverts commit 727d4f1d1667e43b3558bd5f6ed6dc2cd9c29401, somehow git + deleted the symlink and replaced it with the file. + +commit 727d4f1d1667e43b3558bd5f6ed6dc2cd9c29401 +Author: Jesse Barnes +Date: Tue Jul 1 12:25:16 2008 -0700 + + i915: only use tiled blits on 965+ + + When scheduled swaps occur, we need to blit between front & back buffers. If + the buffers are tiled, we need to set the appropriate XY_SRC_COPY tile bit, but + only on 965 chips, since it will cause corruption on pre-965 (e.g. 945). + + Bug reported by and fix tested by Tomas Janousek . + + Signed-off-by: Jesse Barnes + +commit e935925cd733fffef44b3e3210a875b57b3812e9 +Author: Jie Luo +Date: Tue Jun 24 10:38:31 2008 -0700 + + i915: enable bus mastering on i915 at resume time + + On 9xx chips, bus mastering needs to be enabled at resume time for much of the + chip to function. With this patch, vblank interrupts will work as expected + on resume, along with other chip functions. Fixes kernel bugzilla #10844. + + Signed-off-by: Jie Luo + Signed-off-by: Jesse Barnes + +commit 2b9c5719c09226a36a4a1e9869e6075b8ec08824 +Author: Maarten Maathuis +Date: Tue Jul 1 16:00:09 2008 +0200 + + NV50: switch to fixed point scale factor calculations + +commit bc32d1798a213d7701b20feb95781eb51a42e945 +Author: Maarten Maathuis +Date: Tue Jul 1 15:14:30 2008 +0200 + + NV50: some i2c cleanup + +commit 91c742663a618e81da69ad4f098321d9af56d636 +Author: Maarten Maathuis +Date: Fri Jun 27 18:58:13 2008 +0200 + + NV50: use list_head item instead of list_head head to avoid confusion + +commit 9f28da80f6cc8e45670b217a2483983f2838095d +Author: Maarten Maathuis +Date: Fri Jun 27 18:45:08 2008 +0200 + + Change some obviously wrong things about property blobs, still broken though. + + - I do not fully understand these blobs, so i'm leaving it at this for the moment. + +commit 71906e86e81440037aa08b6f23f36e9fd3835639 +Author: Maarten Maathuis +Date: Fri Jun 27 16:30:25 2008 +0200 + + [modesetting-101] Actually store properties when being changed. + +commit 01ee5eda9aaff880153223df8bb70a34b1a87cee +Author: Maarten Maathuis +Date: Fri Jun 27 01:29:30 2008 +0200 + + NV50: A minor change. + +commit 701011224c048e064295ee12e8a02f7f66d4175a +Author: Maarten Maathuis +Date: Fri Jun 27 01:16:36 2008 +0200 + + NV50: Implement DPMS. + +commit d88616555d2d3abc118f77d5556e14dd1512272b +Author: Maarten Maathuis +Date: Thu Jun 26 23:21:01 2008 +0200 + + [modesetting-101] tab-cleanup + +commit 087e3f577d795bcd007619514bb2977eede70c16 +Author: Maarten Maathuis +Date: Thu Jun 26 23:12:04 2008 +0200 + + Revert "modesetting-101: Make dpms property optional + misc cleanup." + + This reverts commit 13943fe5823c45759091c1a1f487a4abe377421e. + +commit 13943fe5823c45759091c1a1f487a4abe377421e +Author: Maarten Maathuis +Date: Thu Jun 26 21:28:29 2008 +0200 + + modesetting-101: Make dpms property optional + misc cleanup. + + - intel_crt seems the only one to provide it, so init it there. + +commit 4d85d5d25116304e476849ee64c206ffb3a7f372 +Author: Maarten Maathuis +Date: Wed Jun 25 15:27:07 2008 +0200 + + NV50: i misunderstood NOUVEAU_MEM_INTERNAL, so remove it + +commit 09b67dda0bc040860aedce4a2d28bce1c80e56d6 +Author: Maarten Maathuis +Date: Wed Jun 25 15:16:38 2008 +0200 + + NV50: Some cleanup and fixes. + +commit be7276281694145e7c947b91a1c8e6e347de666c +Author: Ben Skeggs +Date: Wed Jun 25 16:45:41 2008 +1000 + + nv50: when destroying a channel make sure it's not still current on PFIFO + + We won't get a PFIFO context switch when the same channel ID is recreated if + the hw still thinks the channel is already active, which causes fun issues. + + Should allow X to be stopped and started without tearing down the entire + card state in lastclose(). + +commit 5a0164d1e1799b68b3131efd7b9fcaf20c578257 +Author: Ben Skeggs +Date: Mon Jun 23 01:00:42 2008 +1000 + + nouveau: allocate drm-use vram buffers from end of vram. + + This avoids seeing garbage from engine setup etc before X gets around + to pointing the CRTCs at a new scanout buffer. Not actually a noticable + problem before G80 as PRAMIN is forced to the end of VRAM by the hardware + already. + +commit 5d27fd94afaaf434c3a92af0075420b550055bfb +Author: Ben Skeggs +Date: Wed Jun 25 16:45:41 2008 +1000 + + nv50: when destroying a channel make sure it's not still current on PFIFO + + We won't get a PFIFO context switch when the same channel ID is recreated if + the hw still thinks the channel is already active, which causes fun issues. + + Should allow X to be stopped and started without tearing down the entire + card state in lastclose(). + +commit d55629a13d0f287e186e93a4828ef86b36678eba +Author: root +Date: Tue Jun 24 23:18:29 2008 +0100 + + silence warning + +commit d250a55fc6a726a8bfaf4f871eeb09c895a9ba51 +Author: Keith Packard +Date: Tue Jun 24 13:39:25 2008 -0700 + + [intel] Get vblank pipe from irq_mask_reg instead of hardware enable reg + + With the interrupt enable/disable using only the mask register, it was wrong + to use the enable register to detect which pipes had vblank detection + turned on. Also, as we keep a local copy of the mask register around, and + MSI machines smack the hardware during the interrupt handler, it is more + efficient and more correct to use the local copy. + +commit e36da6a133328a4cf9c98d9347c87dc3c3a12d16 +Author: Keith Packard +Date: Tue Jun 24 13:08:04 2008 -0700 + + [intel] Create functions to enable/disable interrupts + + This shares common code sequences for managing the interrupt register bits + +commit d726eb2e5e192f22e41e399d9133edcd7202f0c5 +Author: Jesse Barnes +Date: Tue Jun 24 12:57:21 2008 -0700 + + i915: remove unused variable + + Leftover dev_priv from the move of the suspend/resume code into shared-core. + +commit 893cd01a1d6bed9740e9bfccde07f41ee401f898 +Author: Jesse Barnes +Date: Tue Jun 24 12:50:29 2008 -0700 + + i915: register definition & header file cleanup + + It would be nice if one day the DRM driver was the canonical source for + register definitions and core macros. To that end, this patch cleans things up + quite a bit, removing redundant definitions (some with different names + referring to the same register) and generally tidying up the header file. + +commit 5dbcb7551ff0b2c759f34ca85c30cfa95f33ba09 +Author: Maarten Maathuis +Date: Tue Jun 24 20:29:08 2008 +0200 + + NV50: minor change + +commit ce2effbe2dd205e67e294304b97ee7bf221137b1 +Merge: 2c6feb7 01a33d7 +Author: Keith Packard +Date: Tue Jun 24 10:03:05 2008 -0700 + + Merge branch 'drm-gem' into drm-gem-965 + +commit 2c6feb7a5a3fe60ed3961bc133ad5d6e63b8196a +Author: Keith Packard +Date: Mon Jun 23 22:03:33 2008 -0700 + + [intel-gem] Include drm_compat.h to get kmap_atomic_prot_pfn + +commit c0043155ad7199835d631e3daed5c641642c314e +Author: Keith Packard +Date: Mon Jun 23 22:03:06 2008 -0700 + + drm_compat: it's CONFIG_HIGHMEM, not CONFIG_HIMEM + + A mis-spelled config option (was it spelled that way in the past?) + eliminated kmap_atomic_prot_pfn from core DRM. + +commit 5540457fa5bf291e88efb23721b5ac71379c6a6e +Author: Keith Packard +Date: Mon Jun 23 11:21:30 2008 -0700 + + [intel-gem] Use I915_GEM_DOMAIN_GTT in dri_gem_bo_wait_rendering. + + I915_GEM_DOMAIN_CPU is very expensive to wait for -- it generally requires + clflushing the frame buffer. + +commit ed73651d47a5f95c3436207144b70811366e4edd +Author: Keith Packard +Date: Mon Jun 23 10:16:35 2008 -0700 + + [intel-gem] Recover resources from wedged hardware. + + Clean up queues, free objects. On the next entervt, unmark the hardware to + let the user try again (presumably after resetting the chip). Someday we'll + automatically recover... + +commit 71d975072cf57507385bdf8e0bf4af4c23b1fceb +Author: Keith Packard +Date: Mon Jun 23 00:53:53 2008 -0700 + + [intel-gem] pwrite through GTT + + Pin/copy_from_user/unpin through the GTT to eliminate clflush costs. + Benchmarks say this helps quite a bit. + +commit 01a33d742cee55a3df66a3d29c9c55b10cc9221d +Author: Keith Packard +Date: Tue Jun 24 09:46:51 2008 -0700 + + Was using irq_enable_reg in the use_mask_reg path + +commit 14522b3e1bd1129333af7f1a16a436a5f90388ea +Author: Maarten Maathuis +Date: Tue Jun 24 12:38:57 2008 +0200 + + NV50: fix a few misc things + +commit 315fef7ee44f9ca565f158a6a84fd29b34e69fd8 +Author: Maarten Maathuis +Date: Tue Jun 24 10:16:52 2008 +0200 + + NV50: fix cursor hide/show + +commit e7582cfff6cb561d8bdfcd640d6843cdbb6b3391 +Author: Maarten Maathuis +Date: Tue Jun 24 09:41:13 2008 +0200 + + NV50: These are actually errors. + +commit 472981a4a952e551a581e5296a575a51d4f02e3d +Author: Keith Packard +Date: Mon Jun 23 22:03:33 2008 -0700 + + [intel-gem] Include drm_compat.h to get kmap_atomic_prot_pfn + +commit 020a59e46ca1d89c98a3e309b6e5571354115133 +Author: Keith Packard +Date: Mon Jun 23 22:03:06 2008 -0700 + + drm_compat: it's CONFIG_HIGHMEM, not CONFIG_HIMEM + + A mis-spelled config option (was it spelled that way in the past?) + eliminated kmap_atomic_prot_pfn from core DRM. + +commit 5072a2911e134bb3fec06a6d7011a92e714a9953 +Author: Maarten Maathuis +Date: Tue Jun 24 00:00:02 2008 +0200 + + NV50: fix some misc bugs + +commit 246b41fea462a3b1669c0e3f9fe7f6077a479832 +Author: Maarten Maathuis +Date: Mon Jun 23 22:59:17 2008 +0200 + + [modesetting-101] update mode count after fill_modes. + + - This avoids returning with a mode count of 0, thus not allocating space for the 2nd ioctl. + +commit f9dad8cc22994e0e4671d14b3ee721e4b5777a68 +Author: Maarten Maathuis +Date: Mon Jun 23 21:15:54 2008 +0200 + + libdrm: check for allocation failure + +commit 0a45f150669eaa2737d7485c9b68ea4c483f3048 +Author: Maarten Maathuis +Date: Mon Jun 23 20:33:32 2008 +0200 + + NV50: Improve set_config and fix some minor bugs. + +commit 52bf2e77b0ff77ab0c93fec374ccfeb9d214a464 +Author: Keith Packard +Date: Mon Jun 23 11:21:30 2008 -0700 + + [intel-gem] Use I915_GEM_DOMAIN_GTT in dri_gem_bo_wait_rendering. + + I915_GEM_DOMAIN_CPU is very expensive to wait for -- it generally requires + clflushing the frame buffer. + +commit 27f61d0c9364bbf8bc88a4ffceb78b645aff6680 +Author: Keith Packard +Date: Mon Jun 23 11:20:17 2008 -0700 + + [intel] leave interrupts disabled in ISR only on MSI again + + While debugging the 915, I tried this trick there and accidentally left it + set. + +commit 626e9ba494b46f6e8352c9e461227187f335e229 +Author: Keith Packard +Date: Mon Jun 23 10:16:35 2008 -0700 + + [intel-gem] Recover resources from wedged hardware. + + Clean up queues, free objects. On the next entervt, unmark the hardware to + let the user try again (presumably after resetting the chip). Someday we'll + automatically recover... + +commit 1c2dd9826793579d5ef6f51fb9f5470c4af95548 +Author: Keith Packard +Date: Mon Jun 23 10:07:47 2008 -0700 + + [intel] Switch to using IMR instead of IER + +commit 61caf797aeb88af42ea0d333ad3f6ba88468d37f +Author: Keith Packard +Date: Mon Jun 23 00:53:53 2008 -0700 + + [intel-gem] pwrite through GTT + + Pin/copy_from_user/unpin through the GTT to eliminate clflush costs. + Benchmarks say this helps quite a bit. + +commit a0ebcbe9d490c3e1fb8212d52e6783b7d9bd9a70 +Author: Keith Packard +Date: Mon Jun 23 00:53:04 2008 -0700 + + [intel] allow the irq code to use either enable or mask registers + + still not sure which works best on which hardware; this will make it easier + to experiment. + +commit 30f153a7c2a9bc69e615b7fff3fb060af0e3ed83 +Author: Maarten Maathuis +Date: Sun Jun 22 19:31:55 2008 +0200 + + nouveau: disable KMS for pre-NV50 even when specifically enabled + +commit b0b0f374432ecf84b5115130caa4697d6d1ca789 +Author: Maarten Maathuis +Date: Sun Jun 22 19:04:22 2008 +0200 + + NV50: Fix a few more possible leaks. + +commit 7c9551a464e168279224139b70a439f985b601c9 +Author: Maarten Maathuis +Date: Sun Jun 22 18:58:04 2008 +0200 + + fix typo + +commit e67cd7dda9d7d6d82f4026f246d07bf4c4021a57 +Author: Maarten Maathuis +Date: Sun Jun 22 18:47:51 2008 +0200 + + NV50: A few minor added safeties + cleanup. + +commit 01e8f0ea426970859bafba72e067590df1a64eb0 +Author: Ben Skeggs +Date: Mon Jun 23 02:42:15 2008 +1000 + + nv50: oops, keep VRAM allocations aligned at 64KiB - that's our page size.. + +commit 89cf2ee2e5b3930b36f2347f35933fc29bc42518 +Author: Ben Skeggs +Date: Mon Jun 23 01:24:11 2008 +1000 + + nv50: use same dma object for fb/tt access + + We depend on the VM fully now for memory protection, separate DMA objects + for VRAM and GART are unneccesary. However, until the next interface break + (soon) a client can't depend on the objects being the same and must still + call NV_OBJ_SET_DMA_* methods appropriately. + +commit 3809209349ccf12aa71c7848f0b21d77fa0a5f03 +Author: Maarten Maathuis +Date: Sun Jun 22 17:01:30 2008 +0200 + + Undo something i didn't want to change. + + - I made it consistent with recent kernel fb code (maybe this is older bugged code?) + - Still i don't use this and i should leave it to others. + +commit b9ed0f995077f69ae806aae2e83085738ea5e651 +Author: Ben Skeggs +Date: Mon Jun 23 01:00:42 2008 +1000 + + nouveau: allocate drm-use vram buffers from end of vram. + + This avoids seeing garbage from engine setup etc before X gets around + to pointing the CRTCs at a new scanout buffer. Not actually a noticable + problem before G80 as PRAMIN is forced to the end of VRAM by the hardware + already. + +commit 473a1997ace1a9fb545d0457549e50d17eb36175 +Author: Maarten Maathuis +Date: Sun Jun 22 16:29:00 2008 +0200 + + NV50: Initial import of kernel modesetting. + +commit 11f2a2ed6f854e7b461a98408df54167e9b9566d +Author: Dave Airlie +Date: Sun Jun 22 18:25:22 2008 +1000 + + agp: use true/false instead of TRUE/FALSE + +commit 207f701e1affa18b0d54e09f7bf8b6447cb16258 +Author: Alex Deucher +Date: Sat Jun 21 10:46:55 2008 -0400 + + RADEON: 0x1002 0x5657 is actually an RV410 + + See bug 14289 + +commit a369bf0e575697308690f532576caf652e42b4cb +Author: Keith Packard +Date: Sat Jun 21 00:33:07 2008 -0700 + + [intel] Use IMR instead of IER to pend interrupts during ISR + + Noting that the interrupt mask register was more reliable than the interrupt + enable register for managing interrupts in user_irq_on/user_irq_off, this + patch replaces the remaining IER frobbing with IMR instead. + + The test which exposes IER related failures is: + + $ glxgears & glxgears & glxgears + (reposition the glxgears windows away from the upper left corner) + $ while :; do x11perf -rect100 -reps 800 -repeat 1; sleep 1; done & + $ while :; do runoa; runet; done & + +commit 8be6ec491f7b9c633a426a34006ea4ff5a3f8392 +Author: Keith Packard +Date: Sat Jun 21 00:13:18 2008 -0700 + + [intel-gem] Add /proc/dri/*/i915_gem_interrupt + + This tracks most of the interrupt-related status, including the + interrupt registers in the chip and the sequence number variables. + +commit 33114e4a1167ac79cb53043e77c16cc7fe40a640 +Author: Keith Packard +Date: Sat Jun 21 00:12:21 2008 -0700 + + [intel] Count received interrupts + + Another patch adds this to a /proc/dri file for debugging and monitoring. + +commit f4bd566e0bead0904c38bb3a526eb9b35b215ff5 +Author: Keith Packard +Date: Sat Jun 21 00:10:10 2008 -0700 + + [intel-gem] Remove unused variable. + +commit 54817317e9dd8a791418f97503fe574038dbe4b9 +Author: Keith Packard +Date: Fri Jun 20 21:10:42 2008 -0700 + + [intel-gem] Use polling in i915_gem_idle instead of interrupts. + + While waiting for the hardware to idle on leavevt or lastclose, poll + for the sync sequence number instead of waiting for an interrupt. This + allows the code to bail if the hardware hangs for some reason. Also, this + avoids issues with signals as the exisiting wait function is interruptible. + +commit 71b1623e22c54d42837840a1d0479127a5049caf +Author: Keith Packard +Date: Fri Jun 20 21:07:46 2008 -0700 + + [intel-gem] Add intel-specific /proc entries to help monitor gem operation + + This adds gem_active, gem_flushing, gem_inactive, gem_request and gem_seqno + entries to monitor gem operation and help debug issues. + +commit 2bd9799e4cf0d778e46453422157143e36274062 +Author: Keith Packard +Date: Fri Jun 20 16:40:14 2008 -0700 + + Add device-specific proc_init and proc_cleanup hooks + + This allows device drivers to add proc files + +commit 918420deefb978d4e572121b4273d717bdbfde8e +Author: Keith Packard +Date: Fri Jun 20 00:21:37 2008 -0700 + + [intel-gem] Use shmem_getpage instead of find_or_create_page + + find_or_create_page doesn't quite set up pages correctly; any newly created + pages aren't hooked into the shmem object quite right; user space mmaps of + those pages end up mapping pages full of zeros which then get written to the + real pages inappropriately. This patch requires that the kernel export + shmem_getpage. + +commit 52e5d24fae4af6f2f4a5304a516c8c5ab347a11b +Author: Keith Packard +Date: Fri Jun 20 00:19:42 2008 -0700 + + [intel-gem] Add DRM_IOCTL_I915_GEM_SW_FINISH to flag CPU writes + + When a software fallback has completed, usermode must notify the kernel so + that any scanout buffers can be synchronized. This ioctl should be called + whenever a fallback completes to flush CPU and chipset caches. + +commit 1915de2c56d71bbd04a7c085cbd35fbe8e33af9d +Author: Dave Airlie +Date: Fri Jun 20 15:35:47 2008 +1000 + + drm: only use kernel ioctl cmd when doing a core ioctl. + + Need to overhaul the mess that is driver ioctls + +commit 9d79944a93e8e164e2261cdeb10cbd49ff8f314d +Author: Dave Airlie +Date: Fri Jun 20 15:35:16 2008 +1000 + + r300: fix warning + +commit 8712f0a17bb135d4ad3eb85b30f47c561cf9c148 +Author: Dave Airlie +Date: Fri Jun 20 12:03:41 2008 +1000 + + drm: fix the ioctl to not believe userspace. + + believing userspace causes oopses + +commit f58e21c7d056017340dc0ecac7e53dee2b33fe3b +Author: Jesse Barnes +Date: Wed Jun 18 16:49:51 2008 -0700 + + i915: add blanking support to intelfb + + Got tired of not having my LCD actually turn off when I left the machine at the + console. + +commit 57b8837b4eb3b4972390680ad8042cd6920bf003 +Author: Jesse Barnes +Date: Wed Jun 18 15:31:48 2008 -0700 + + i915: cleanup PCI state before disabling MSI + + Core MSI code will BUG() if an interrupt handler is still registered when + pci_disable_msi() is called. + +commit 86accbcb344ff25fbb47a788bb0f7464b5cd797f +Merge: c843d47 e7424e4 +Author: Jesse Barnes +Date: Wed Jun 18 15:25:54 2008 -0700 + + Merge commit 'origin/drm-gem' into modesetting-gem + + Lots of conflicts, seems to load ok, but I'm sure some bugs snuck in. + + Conflicts: + + linux-core/drmP.h + linux-core/drm_lock.c + linux-core/i915_gem.c + shared-core/drm.h + shared-core/i915_dma.c + shared-core/i915_drv.h + shared-core/i915_irq.c + +commit c843d47b906e57fb3002af4a609d3cb95c5e195d +Author: Jesse Barnes +Date: Wed Jun 18 14:51:46 2008 -0700 + + i915: use WC mapping for framebuffer screen_base + +commit 241ff808b0f7368e3988d51d2ea3775adb75b6f4 +Merge: 4a2e29b 7010d50 +Author: Jesse Barnes +Date: Wed Jun 18 14:01:47 2008 -0700 + + Merge branch 'modesetting-101' into modesetting-gem + +commit 7010d500072977f63a0bac08f2141d69dbd19595 +Author: Jesse Barnes +Date: Wed Jun 18 13:57:39 2008 -0700 + + i915: switch back to fbcon on panic + + Normally when X is running, panic messages will be invisible and the machine + will just appear to hard hang. This patch adds support for switching back to + the fbcon framebuffer on panic (through the use of a panic notifier + registration) so we can see what happened. + + Note that in order to be really useful, X will have to run its VT in something + other than KD_GRAPHICS mode. Also, not all kernel errors result in panics, + some go through BUG() which may trigger another type of event, not resulting in + a switch. + +commit 00f549bd5f40d9ad6ec7164cd01646ed468b9a4a +Author: Zhenyu Wang +Date: Wed Jun 18 14:19:38 2008 +0800 + + i915: Add support for Intel 4 series chipsets + + Signed-off-by: Zhenyu Wang + +commit e7424e4580159b0ac3e232674dff5c862e851dff +Author: Eric Anholt +Date: Mon Jun 16 15:15:02 2008 -0700 + + [intel] Quirk away MSI support on 945G/GM. + + The PCI caps register reports MSI support even though it isn't really there. + +commit c847271179da382af52a6874e2edec586b88af75 +Author: Eric Anholt +Date: Mon Jun 16 13:09:31 2008 -0700 + + [linux] Use the device's irq for handler setup instead of stale dev->irq. + + This fixes registration when MSI is set up after the stub function fills in + dev->irq. Otherwise /proc/interrupts would report attachment to the fasteoi + interrupt. dev->irq is still exposed (and updated at IRQ setup) + for the drivers that use it for whatever reason. + +commit 59112c9e521d1543e8b76635ef223e7f29d35e6a +Author: Jerome Glisse +Date: Sun Jun 15 20:18:29 2008 +0200 + + radeon: *really* fix screen corruption thanks to Lukasz Krotowski + +commit 6f8cc957034a887a9cbd576c1af9922862f6a7a7 +Author: Jerome Glisse +Date: Sun Jun 15 19:31:02 2008 +0200 + + radeon: actualy try to fix the corruption + +commit 9dd58d6568702358bfb3d6d1b6459092cf77ae91 +Author: Jerome Glisse +Date: Sun Jun 15 18:49:47 2008 +0200 + + radeon: fix screen corruption introduced by last patch + +commit 3e48e144992fb11b31875989d45bc8a7c041cdef +Author: Keith Packard +Date: Fri Jun 13 19:49:47 2008 -0700 + + [intel-gem] Execute MI_FLUSH in leavevt_ioctl + + In leavevt_ioctl, queue an MI_FLUSH and then block waiting for it to + complete. This will empty the active and flushing lists. That leaves only + the inactive list to evict. + +commit 19c3418848ccdbb163cd16b354b14b0559813d6c +Author: Keith Packard +Date: Fri Jun 13 19:47:23 2008 -0700 + + [intel-gem] inactive list may contain objects in CPU write domain + + Pin/unpin need to know whether to remove/add objects from the inactive list, + inactive objects cannot be in any GPU write domain as those would be on the + flushing list instead. However, inactive objects may be in the CPU write + domain. + +commit 93c2871eccc1abde0d88ea439cf963c4895a26fc +Author: Keith Packard +Date: Fri Jun 13 19:43:40 2008 -0700 + + [intel-gem] BUG_ON active objects in gem_object_unbind + + Now that gem_object_unbind waits for rendering to complete, objects should + not be active when they are being pulled from the GTT. BUG_ON if this is + broken. + +commit 68856b619bc1a2e91e67764911c8af4e2466fad9 +Author: Keith Packard +Date: Fri Jun 13 19:40:16 2008 -0700 + + [intel-gem] Debugging -- verify inactive list invariants + + Inactive list elements may not be pinned, active or have non-CPU write + domains. + +commit 732b1960742042eb33f49c2b3cdd2d36eadbc920 +Author: Keith Packard +Date: Fri Jun 13 19:37:44 2008 -0700 + + [intel-gem] whitespace fixes + +commit a7139cb8511a9d31d9f79bcaae62020d30e09f90 +Author: Keith Packard +Date: Fri Jun 13 19:35:22 2008 -0700 + + [intel-gem] show total GTT space in /proc/dri/*/gem_objects + +commit 73bc18cad8d1c6b4481a199cebf7f0a28d19c2bb +Author: Keith Packard +Date: Fri Jun 13 17:06:35 2008 -0700 + + [intel-gem] Wait for rendering to complete before unbinding. + + Moving to the CPU domain doesn't ensure that rendering is finished, the + buffer may still be in use as a texture or other data source. + +commit 8b9ab108ec1f2ba2b503f713769c4946849b3cb2 +Author: Keith Packard +Date: Fri Jun 13 16:03:22 2008 -0700 + + [libdrm] Restart all ioctls on signal receipt + + Receiving a signal should be ignored by the library, so just restart any + ioctl which returns EINTR or EAGAIN. + +commit 217beb9c8de01417ac6219b54bd25046da6d4c7a +Author: Keith Packard +Date: Fri Jun 13 15:43:02 2008 -0700 + + [intel-gem] add gtt and pin counts to /proc/dri/*/gem_objects + + Not quite portable, but these are useful for intel. Some more general + mechanism could be done... + +commit 4086cdb6550a4e957fd436c77a6260204e026538 +Author: Keith Packard +Date: Fri Jun 13 15:38:13 2008 -0700 + + [intel-gem] Left the last exec buffer pinned. oops. + + Loop end variable 'pinned' was set one too low. + +commit 29ffa0017d002f9e74de42817b962b6ca2e5f20a +Author: Robert Noland +Date: Fri Jun 13 17:41:20 2008 -0400 + + [FreeBSD] Fix another lock leak + + Reported by vehemens + +commit baf521369478eff2842b99feda16f9d145402d27 +Author: Keith Packard +Date: Fri Jun 13 14:28:18 2008 -0700 + + [intel-gem] Pin objects during execbuffer + + Pinning the objects avoids accidentally evicting them while binding + other objects. + +commit ced9ebf64543b4d64a38feee3293040af953acc0 +Author: Keith Packard +Date: Fri Jun 13 12:06:13 2008 -0700 + + [intel-gem] throttle based on frames rather than time. Reduces jitter. + + Record the last execbuffer sequence for each client. + Record that sequence in the throttle ioctl as the 'throttle sequence'. + Wait for the last throttle sequence in the throttle ioctl. + +commit 6b2cba1ecc5f9f289b5d91e229b7f7b0999bee5b +Author: Keith Packard +Date: Fri Jun 13 11:33:27 2008 -0700 + + [intel-gem] evict_something was failing when wait_request freed objects + + When i915_wait_request clears object from the active list, it may end up + freeing them and not moving them to the inactive list. This ends up + unbinding objects from the GTT without there ever being new objects visible + to i915_gem_evict_something on the inactive list. As the only success + condition required the presence of objects on the inactive list, this would + falsely assume that no GTT space had been made available, and end up + returning -ENOMEM to the application. + +commit 3762c9ea6754763694b1de4df3acd9dc37247f87 +Author: Keith Packard +Date: Fri Jun 13 10:27:39 2008 -0700 + + [intel] Enable MSI for i915 IRQ + +commit 5957470ca3be6c0225985f74b1511401e02c014b +Author: Keith Packard +Date: Tue Jun 10 18:19:19 2008 -0700 + + [intel] Restructure irq to pend all work until after iir write. + + The interrupt identity register must be writen before any work occurs lest + we drop an interrupt on the floor. This patch just shuffles code around to + make sure that IIR is written as early as possible. + +commit 462af73149b9286a74b95b9cda5e4224ebe0dd87 +Author: Keith Packard +Date: Fri Jun 13 09:19:30 2008 -0700 + + [intel-gem] Use a delayed_work instead of a timer + work_struct + + We want request retirement to occur about once a second when the request + queue is non-empty. This was done with a timer that queued a work_struct, + using a delayed_work instead makes a lot more sense. + +commit e5364914ac2b785f9d806c72fff8d2ae914cad61 +Author: Keith Packard +Date: Tue Jun 10 18:11:15 2008 -0700 + + [intel-gem] Reorder i915_add_request to schedule work last + + i915_add_request was calling schedule_delayed_work before adding the request + to the list; it makes more sense to do that last. + +commit f378319b5627d84ca821c8e6a9f2fee612119477 +Author: Keith Packard +Date: Tue Jun 10 17:53:32 2008 -0700 + + Use /bin/pwd instead of trusting shell built-in + +commit df4ef348c8a48cead807a42fcd315f7e422aa156 +Author: Eric Anholt +Date: Fri Jun 13 10:47:33 2008 -0700 + + Fix i915_wait_irq in the presence of interrupt masking. + + In the short-circuit code for the breadcrumb already being new enough, we + need to update the sarea_priv copy of the breadcrumb just as if we had + waited. Otherwise userland error checking will notice that we returned + too early based on its wrong information, and call wait_irq again (leading + to spinning until someone else comes along and updates the sarea_priv). + + This bug was hidden when we had interrupt masking disabled, such as in + master, since the interrupt handler would update sarea_priv. + +commit e558e1d7dacafa1e7f9681f1eaec072d663287de +Author: Eric Anholt +Date: Fri Jun 13 10:04:14 2008 -0700 + + [gem] Catch -EINTR from blocking ioctls and restart them. + + Thanks to Thomas Hellstrom for catching the issue, no thanks to the kernel + developer who authoritatively told me that they would get restarted on their + own. + +commit 0558d99c01c38e24e97b57ef55f66bb94a92e157 +Author: Eric Anholt +Date: Fri Jun 13 09:53:36 2008 -0700 + + [gem] Remove the interrupt handler for retiring requests. + + This was insufficient once we started masking interrupts to only when someone + was waiting for them (and would thus retire requests themselves). It was + replaced by the retire_timer. + +commit c892e26bdfcacfe7213085a08dd82e2cb7faa003 +Author: Eric Anholt +Date: Fri Jun 13 09:49:05 2008 -0700 + + [gem] Don't require the lock in execbuf now that it's not needed for the ring. + +commit 00b406390649175bb432da5693bfbd3360ad21b3 +Author: Jerome Glisse +Date: Fri Jun 13 10:02:41 2008 +0200 + + radeon: bump driver date to know if lockup fix is in + +commit 1aafbb83d97ccc78b78d5cbd311f1239a3dad11e +Author: Jerome Glisse +Date: Fri Jun 13 09:54:05 2008 +0200 + + radeon: r345xx fixe hard lockup + + This patch should fixe hard lockup and convert them in + softlockup (ie you can ssh the box but the gpu is busted + and we are waiting in loop for it to come back to reason). + +commit 5d99e79c3ee027a035d4ef0a920e3fc30bd053c1 +Author: Ian Romanick +Date: Thu Jun 12 15:36:48 2008 -0700 + + xgi: Bump kernel version + + This should have been bumped when the fence interface was changed the + other day. Better late than never, I suppose. + +commit 100d6f3f83b559be000f69c04f9e5596cdc17c77 +Author: Eric Anholt +Date: Thu Jun 12 13:22:40 2008 -0700 + + Bump libdrm version to 2.4.0. + + We need a version to depend on from the other components that require GEM and + the bufmgr code. Some interfaces will be removed before the 2.4.0 release. + +commit cc74ac359053e95fd79d7011a2e18defcefb5c19 +Author: Eric Anholt +Date: Thu Jun 12 10:56:37 2008 -0700 + + Don't clear USER_INTERRUPT if we're not handling it. + + This fixes a regression from commit d434b64f6a760d85295e32298a9a1f3624ee1b69 + which could cause us to fail to wake up for user interrupts if we lost a race. + +commit b2606e325ac02782297def5ce27028c7fe2287c8 +Author: Eric Anholt +Date: Wed Jun 11 16:19:23 2008 -0700 + + [gem] Remove the drm_client_lock_take in set_domain. + + We no longer need to use it to protect against shared ringbuffer access. + +commit 4a2e29bf9982165deeeabb5c585fc0a8a659f380 +Author: Jesse Barnes +Date: Wed Jun 11 15:59:01 2008 -0700 + + Use GEM in modesetting + + Use GEM for ring buffer setup and framebuffer allocation. This means reworking + the hardware status page stuff a bit (just use the basic range allocator for + vram for now) and #ifdef'ing out the TTM & DRI2 code. Works well enough to + load/unload several times and display fbcon on my T61 (though there's still + some unexplained console corruption). + +commit 57b4c4c32d3b474939775042bb8a17423def446d +Author: Eric Anholt +Date: Wed Jun 11 15:58:33 2008 -0700 + + Move the renaming of mm.c symbols to #defines in the header. + + This reduces the diff from Mesa and reduces the illegibility of what I did. + +commit 846d792ac10c4b2738bb5ff59e56df168b9921ff +Author: Eric Anholt +Date: Wed Jun 11 15:51:17 2008 -0700 + + [gem] Another round of cleanups from checkpatch.pl + +commit a07c82183abdcde9777a456d45b7ae741ddfd44c +Author: Alex Deucher +Date: Wed Jun 11 18:25:47 2008 -0400 + + RADEON: use DSTCACHE_CTLSTAT rather than RB2D_DSTCACHE_CTLSTAT + + According to the hw guys, you should use DSTCACHE_CTLSTAT to flush + the 2D dst cache rather than RB2D_DSTCACHE_CTLSTAT. + +commit 2655005762b8915d5f44d1d1ee7e6c2eb34841d7 +Author: Eric Anholt +Date: Wed Jun 11 14:42:40 2008 -0700 + + [gem] Move potentially device-specific ioctls to the intel driver. + + This is the create (may want location flags), pread/pwrite/mmap + (performance tuning hints), and set_domain (will 32 bits be enough for + everyone?) ioctls. Left in the generic set are just flink/open/close. + + The 2D driver must be updated for this change, and API but not ABI is broken + for 3D. The driver version is bumped to mark this. + +commit 2a35d857b35c9d30d073e2372aa302cd999321ba +Author: Eric Anholt +Date: Wed Jun 11 12:20:56 2008 -0700 + + Remove override of drm module list in preparation for merge. + +commit dac3bcb414a21a77847c96740a1578f3488c774f +Author: Eric Anholt +Date: Wed Jun 11 11:28:20 2008 -0700 + + [gem] Remove carefully-sprinkled i915_kernel_lost_context(). + + They are not unnecessary since the kernel's the only thing touching the ring. + +commit f5412a944fa4666e25f4fa27b6ed85c21ccb65a0 +Merge: a1d9600 62a3be9 +Author: Jesse Barnes +Date: Wed Jun 11 10:25:45 2008 -0700 + + Merge commit 'origin/drm-gem' into modesetting-gem + + Use new GEM based ring buffer initialization. Still need to init GEM & use it + for framebuffer allocation etc. + + Conflicts: + + shared-core/i915_dma.c + shared-core/i915_drv.h + +commit 62a3be962f1915d17813ecbfc9544232908b44e4 +Author: Eric Anholt +Date: Tue Jun 10 23:10:33 2008 -0700 + + [intel] Fix BUG_ON trigger in irq masking if you did on/off with irqs disabled. + +commit 2150da5d1a57d25d0f4bc39bb6c883d410f586d1 +Author: Eric Anholt +Date: Tue Jun 10 15:30:23 2008 -0700 + + [gem] Manage the ringbuffer from the kernel in the GEM case. + + This requires that the X Server use the execbuf interface for buffer + submission, as it no longer has direct access to the ring. This is + therefore a flag day for the gem interface. + + This also adds enter/leavevt ioctls for use by the X Server. These would + get stubbed out in a modesetting implementation, but are required while + in an environment where the device's state is only managed by the DRM while + X has the VT. + +commit b535567ee95b8407d7860a4d6350df8e8fbac15a +Author: Ian Romanick +Date: Tue Jun 10 22:18:14 2008 -0700 + + xgixp: Remove dependency on TTM fences + +commit a1d96007241a78dd2b4a718df8e0568fe7994c22 +Merge: c987e76 500c81d +Author: Jesse Barnes +Date: Tue Jun 10 17:31:54 2008 -0700 + + Merge commit 'origin/drm-gem' into modesetting-gem + + Passed the compile test; it's ready to ship. + + Conflicts: + + libdrm/Makefile.am + linux-core/Makefile.kernel + linux-core/drmP.h + linux-core/drm_memrange.c + linux-core/drm_stub.c + shared-core/drm.h + shared-core/i915_dma.c + shared-core/i915_drv.h + shared-core/i915_irq.c + +commit 4f3da2f200577fcfbf913985246b3a4d23c6a818 +Author: Ian Romanick +Date: Mon May 12 15:58:55 2008 -0700 + + xgi: Fix 64-bit kernel / 32-bit user issue. + +commit cdd0cb0ab372ac93adc73945627f4071f86f75c0 +Author: Dave Airlie +Date: Tue Jun 10 16:27:50 2008 +1000 + + ati_pcigart: split out the page insert function + +commit c987e76d953b6aecbfb69058fc4c387aa3fb33c9 +Author: Jesse Barnes +Date: Mon Jun 9 16:20:45 2008 -0700 + + Add EDID quirk handling + + Port over EDID quirks from X.Org so we can handle more monitors. This meant + adding size info to the drm_display_mode struct, but other than that the + changes were isolated to the DRM EDID handling code (as they should be). + +commit 4b8aecbde8e62af5370d5401d49a8ab8d089fe8e +Author: Alex Deucher +Date: Mon Jun 9 16:58:06 2008 -0400 + + RADEON: Add untested support for RS400 chips + + GART setup appears to work the same as RS480 chips. + Also RC4xx chips are actually RS400 based, not RS480 based. + +commit f6982b54c96bc871df94d01abad72a501e87aa65 +Author: Alex Deucher +Date: Mon Jun 9 16:28:35 2008 -0400 + + RADEON: switch IGP gart to use radeon_write_agp_base() + +commit 63eb58040deff42e8272f1a580f7fd947af1b488 +Author: Robert Noland +Date: Sun Jun 8 23:46:14 2008 -0400 + + Fix typo in i915_suspend + + Reported by vehemens + +commit 116870a908edd8da02381d23694b321e8878f92e +Author: Robert Noland +Date: Tue Jun 3 21:15:54 2008 -0400 + + I915 suspend/resume for FreeBSD + +commit d43f3cb0974b635c1a31b839807e5a691c44b4c6 +Author: Dave Airlie +Date: Mon Jun 9 05:32:41 2008 +1000 + + r300/r500: add hier-z regs + +commit 3b6ca4bf3f334341a158a9917ef117c23f145597 +Author: Robert Noland +Date: Wed Jun 4 15:04:41 2008 -0400 + + [FreeBSD] Rework ati_pcigart.c + + This is mostly just a diff reduction with the linux version. + I'm not convinced that it will make anything better. + +commit 96141bd33c0d6c4b95a2adb668538ffc1103cc18 +Author: Robert Noland +Date: Thu Jun 5 12:46:39 2008 -0400 + + [FreeBSD] We need to request busmastering support. + + This seems to be the key to getting at least some radeon + cards working. Most, if not all drivers need it enabled, + so just request it once the driver has attached. + +commit 6d6921719c7d475856199ddbe88bbe11fc882ba6 +Author: Robert Noland +Date: Tue Jun 3 16:21:13 2008 -0400 + + [FreeBSD] Incorporate vblank fixes for bsd. + +commit ec3d9960219e49e1bd24a097e04c3da88e2fcc53 +Author: Robert Noland +Date: Tue Jun 3 13:02:38 2008 -0400 + + [FreeBSD] Forgot to call mtx_destroy on all the locks at unload. + +commit 93c57ff4e5d9f62be0a353222fef564dd9e59e39 +Author: Robert Noland +Date: Mon Jun 2 19:35:00 2008 -0400 + + [FreeBSD] Remove the locks in the vblank_disable_fn + + They are recursive and causing panics with witness enabled. + +commit fc74c2e9d65dbd0c611e1610886df098c6e3273b +Author: Robert Noland +Date: Mon Jun 2 13:12:59 2008 -0400 + + [FreeBSD] Go back to using vbl_lock and move init/destroy to load/unload. + +commit 500c81d194115fb3c4b97d742519689478eeb4e8 +Author: Eric Anholt +Date: Fri Jun 6 17:13:16 2008 -0700 + + [gem] Don't forget to munmap in the non-bo-reuse object-freeing case. + +commit c2fc142ea7e9dd651702773efbc9c3366f977aa6 +Author: Keith Packard +Date: Fri Jun 6 21:54:38 2008 +0100 + + [intel] remove settable use_mi_batchbuffer_start + + The driver can know what hardware requires MI_BATCH_BUFFER vs + MI_BATCH_BUFFER_START; there's no reason to let user mode configure this. + +commit 6cd0ef06a6c2bdcede166d9a2d0434e58e4a01f2 +Author: Keith Packard +Date: Fri Jun 6 13:26:03 2008 -0700 + + [intel] remove settable use_mi_batchbuffer_start + + The driver can know what hardware requires MI_BATCH_BUFFER vs + MI_BATCH_BUFFER_START; there's no reason to let user mode configure this. + +commit 9f46c6935d154743162c6239903a4a9e443907bc +Author: Keith Packard +Date: Fri Jun 6 12:59:52 2008 -0700 + + [intel-gem] Use timers to retire requests periodically. + + Without the user IRQ running constantly, there's no wakeup when the ring + empties to go retire requests and free buffers. Use a 1 second timer to make + that happen more often. + +commit a708106c77f74f146722fba35eae772fb554ee9a +Author: Keith Packard +Date: Fri Jun 6 12:58:41 2008 -0700 + + [intel] free the hardware status page at driver_unload + + This goes with the other hardware status page patch. + +commit 56a96841d01d112d7d4adfebb572016398551ba8 +Author: Keith Packard +Date: Fri Jun 6 12:57:01 2008 -0700 + + [intel-gem] Add explicit throttle ioctl + + Instead of throttling and execbuffer time, have the application ask to + throttle explicitly. This allows the throttle to happen less often, and + without holding the DRM lock. + +commit 329e0862255e8ad27e2aa4e3755421a18ea1acc5 +Author: Keith Packard +Date: Thu Jun 5 16:05:35 2008 -0700 + + [libdrm/intel] Eliminate extra dri_gem_bo_bucket_entry structure + + Place the buffer reuse links right into the dri_bo_gem object. + +commit 5a55b48a410bb25666177c0ea8e5711ea2e3c795 +Author: Keith Packard +Date: Thu Jun 5 15:58:55 2008 -0700 + + [libdrm/intel] Remove unused intel_validate_entry structure + +commit a919ff5d5ec2fe716cbf5c593be7cc0705499107 +Author: Keith Packard +Date: Thu Jun 5 15:58:09 2008 -0700 + + [libdrm/intel] Reuse entire dri_bo_gem structure + + The code was discarding the dri_bo_gem structure and saving only the kernel + handle. This lost the mmap address, causing pain when the next buffer user + wanted to map the buffer. + +commit 5f5badb26f761eec87b951ce1b7b3a51a5060c50 +Author: Keith Packard +Date: Thu Jun 5 14:09:57 2008 -0700 + + [intel] Allocate hardware status page at driver load time + + I couldn't get the re-allocated HWS to work on my 965GM, so I just gave up + and made it persist across the lifetime of the driver instead. + +commit 84162ccb7dc0286336292ac7f8e80678bfc11804 +Author: Keith Packard +Date: Thu Jun 5 13:49:21 2008 -0700 + + Ignore X server provided mmio address + +commit 118baeee1820102177f4f5bb48dd2a1e3d95d21e +Author: Keith Packard +Date: Thu Jun 5 13:47:41 2008 -0700 + + [intel-gem] Dump error status on wait_request failure + +commit 6d4ffd12cd8d3713067adf5fa3bdcb023b0745f1 +Author: Dave Airlie +Date: Fri Jun 6 16:24:27 2008 +1000 + + drm: fix up fb resize again + +commit 00bb548c6129ee712742d0e893aaa50fc65e49fc +Author: Dave Airlie +Date: Fri Jun 6 15:38:53 2008 +1000 + + intel: don't set the mode on the framebuffer if isn't set to scanout our framebuffer + +commit ec774e4d7201cf875a48cd2fb799e8e5b7f30cc8 +Merge: be501f0 03bf1fb +Author: Dave Airlie +Date: Fri Jun 6 15:21:57 2008 +1000 + + Merge remote branch 'origin/modesetting-101' into modesetting-101-fb + +commit be501f00a3c91a8ae78189577873d8a6b8ea1c67 +Author: Dave Airlie +Date: Fri Jun 6 15:21:22 2008 +1000 + + intelfb: add multi fb paths + +commit e6a3a1fdadd162e3cf12e88ad13c4342f9ee23a1 +Author: Dave Airlie +Date: Fri Jun 6 14:55:03 2008 +1000 + + intelfb: remove duplicate define + +commit fc08877b1759f569890665b9d24ea35d11352158 +Author: Dave Airlie +Date: Fri Jun 6 14:53:34 2008 +1000 + + intelfb: admit fbdev is crap and punt on trying to resize to a larger fbdev. + +commit 8387a232a3305d10c4ac4cd08f9ebd0888944e55 +Author: Dave Airlie +Date: Fri Jun 6 12:02:51 2008 +1000 + + intelfb: move mode sets into the intel crtcs + + better place to store them. + +commit 25c1bb334f3a32e3e635e9d5de1abf8abdcc87f0 +Author: Dave Airlie +Date: Fri Jun 6 10:38:35 2008 +1000 + + drm/intel: make hotplug just be an event + +commit 5f94172f81120c56ba07843ff860a9e265dac1f8 +Author: Dave Airlie +Date: Fri Jun 6 10:31:36 2008 +1000 + + intel: if no spare crtc exists don't just take one. + +commit 03bf1fba67413f381d2a548fe08bd634a48fcc48 +Author: Jesse Barnes +Date: Thu Jun 5 15:58:43 2008 -0700 + + sysfs registration/teardown fixups + + A check in drm_sysfs_connector_remove was supposed to allow it to be called + even with unregistered objects, to make cleanup paths a little simpler. + However, device_is_regsitered didn't always seem to return what we thought it + would, so we'd sometimes end up leaving objects lying around rather than + unregistering them. + + Fix this situation up by requiring devices to be registered before being + removed. Any problems resulting from this change should be easier to track + down than the alternative (which is leaving kobjects registered after unload). + +commit 6905c7a29d2a3bc0e605a09b98ac02a4a50893d0 +Author: Dennis Kasprzyk +Date: Thu Jun 5 17:08:44 2008 +0200 + + radeon: Restore software interrupt on resume. + + Fixes performance drop after suspend/resume on some systems. + +commit d198e9b091e919a90895e551e48fb30d36a849ef +Author: Eric Anholt +Date: Thu Jun 5 08:44:46 2008 -0700 + + Add a function to bufmgr_fake to evict all buffers in the GTT. + + This will be used by the X Server for VT switch. + +commit d9ead89c79732124f54b4a9dfe698bc7aad7faee +Author: Dave Airlie +Date: Thu Jun 5 16:32:41 2008 +1000 + + drm/modeset: add more debugging and fixup some fb enable/disabe bits + +commit b31adb005afc5553fb30aa2c1710faee299bc730 +Author: Dave Airlie +Date: Thu Jun 5 15:55:03 2008 +1000 + + drm/modesetting: more fb interface cleanups + +commit efcf066eff690887ace33c0f1192168a31115805 +Author: Dave Airlie +Date: Thu Jun 5 15:21:07 2008 +1000 + + drm/modesetting: attempt to make fb code more sane + +commit f73e54bbf0b97a8f5184ede64d4f263020d623ee +Author: Dave Airlie +Date: Thu Jun 5 13:40:08 2008 +1000 + + drm: modesetting unify the hotplug init paths a lot. + + remove fb callbacks, just probe into the driver to sort it out + +commit 56a1293184e4f628498c88e38e1601349b05ad93 +Author: Dave Airlie +Date: Thu Jun 5 11:43:48 2008 +1000 + + modesetting: fix fb clearing up + +commit 1495dd31d60e588743f20a9e470c8b0045313e7c +Author: Dave Airlie +Date: Thu Jun 5 11:24:57 2008 +1000 + + modesetting: use surface width height for buffer allocs + +commit 1d980669e6d448e15c61507d81552c532b93bcd8 +Author: Dave Airlie +Date: Thu Jun 5 11:20:52 2008 +1000 + + modesetting: add surface width/heights + +commit 967bd219116a4f20aec828b890a225d2f92afd0b +Author: Dave Airlie +Date: Thu Jun 5 11:11:22 2008 +1000 + + modesetting: initial attempt at debonging fb + +commit e90716671d7a5dabf13c22a339f750dba77f438a +Author: Jesse Barnes +Date: Wed Jun 4 12:50:03 2008 -0700 + + i915: use kzalloc to allocate intel_output for lvds + + Better to initialize all the struct fields to 0. Also more consistent with + other output init routines. + +commit 52183fb05b8f8db0705e230fc0b8a436512759a1 +Author: Jesse Barnes +Date: Wed Jun 4 09:38:44 2008 -0700 + + Fix crash in drm_mode_connector_update_edid_property + + We need to initialize the edid_blob_ptr to NULL when we init a connector, + otherwise drm_mode_connector_update_edid_property may think there's a valid + EDID lying around and try to destroy it, causing a crash. + +commit cf1964f971cc298ece91064953f7d00ed13e541d +Author: Dave Airlie +Date: Wed Jun 4 15:17:13 2008 +1000 + + drm: fix hotplug oops + +commit a8725d95bc2b51500ff56c4e6365408d15f3bc6e +Author: Dave Airlie +Date: Wed Jun 4 15:17:00 2008 +1000 + + intel: report a known connector + +commit 0903de0c8f7d2566c1bd65600142a71572eec07e +Author: Keith Packard +Date: Tue Jun 3 21:49:51 2008 -0700 + + Drop struct_mutex while waiting in drm_client_lock_take + + struct_mutex cannot be held while blocking on DRM lock. + +commit 9390bdab7cce67ad0eb8103da8782aec7bfad017 +Author: Dave Airlie +Date: Wed Jun 4 13:53:33 2008 +1000 + + libdrm: shouldn't rely on this + +commit 382aa3ceeb79165a9bdddc8f944de131c8cbf2dd +Author: Dave Airlie +Date: Wed Jun 4 13:49:43 2008 +1000 + + drm: introduce generation counter to interface. + + Idea being if you want to add new crtc/output/encoder dynamically later, + you just increase the generation counter and userspace should re-read + all the resources + +commit 9f31bd09c1e748f72a30f6a0861cd72d93258992 +Author: Dave Airlie +Date: Wed Jun 4 13:16:49 2008 +1000 + + drm/sysfs: don't try an unregister if not registered + +commit 8e4c61e52651c47f3d9fbbe5e80455baff0de2bb +Author: Dave Airlie +Date: Wed Jun 4 13:09:20 2008 +1000 + + intel: use kzalloc + +commit 8690ad8ae0778f2ccd8b428e1c6a8614ebc51707 +Author: Dave Airlie +Date: Wed Jun 4 13:09:05 2008 +1000 + + drm/modesetting: bo not used anymore + +commit 58aca7485a4cd9fcccc6e4044325048abcc2f9c7 +Author: Dave Airlie +Date: Wed Jun 4 13:03:23 2008 +1000 + + drm: remove sysfs in driver for now.. should probably be in helper + +commit fd27591c6cadd2a868f4110b8993a86c37837d3e +Author: Dave Airlie +Date: Wed Jun 4 13:00:31 2008 +1000 + + drm/modesetting: pass object handle to driver !bo + +commit 76a44f14d6339e5bc0c936ef4a360f6c152511bd +Author: Dave Airlie +Date: Wed Jun 4 11:59:28 2008 +1000 + + drm/modesetting: overhaul the fb create/delete. + + Move TTM code into the driver + +commit 40229b6ad539cebad5ebe8ca373796ca2422efdb +Author: Dave Airlie +Date: Wed Jun 4 10:34:34 2008 +1000 + + drm: make mode comparison more betterer. + + This compares the clocks after converting to fb pico timings so we + get the same answer if the X and fb modes are the same. + +commit 8a3b510405f9fc6c920c456e3481bddd296a2af7 +Author: Eric Anholt +Date: Tue Jun 3 14:34:54 2008 -0700 + + Fix libdrm to actually include the new code instead of just building it. + +commit c4857429c716f35e1fa054d1990cae28055d96d7 +Author: Eric Anholt +Date: Tue Jun 3 10:20:49 2008 -0700 + + Fix and hook up bufmgr code to the build. + +commit 6a9eb08a872ac0388aad2c901888888964f14559 +Author: Eric Anholt +Date: Tue Jun 3 09:27:37 2008 -0700 + + Import bufmgr code to libdrm. Not yet hooked up to the build. + +commit ba7263b8c2f8c14c647da725ecbc73fcd456d63c +Author: Michel Dänzer +Date: Tue Jun 3 11:28:10 2008 +0200 + + vblank: Don't wait or update the counter while the CRTC is supposedly disabled. + + Without kernel modesetting, this requires cooperation of the userspace + modesetting driver. We may have to leave the vblank interrupt enabled otherwise + to avoid problems. + +commit 237172b7670611b36d92be3b92983674846f6564 +Author: Michel Dänzer +Date: Tue Jun 3 11:28:10 2008 +0200 + + vblank: Clean up compensation for spurious wraparounds of driver counter. + + Only compensate when the driver counter actually appears to have moved + backwards. + + The compensation deltas need to be incremental instead of absolute; drop the + vblank_offset field and just use atomic_sub(). + +commit d1dcb2b32e0c51d7cbcaa2ba1e0544452cf8f47b +Author: Michel Dänzer +Date: Tue Jun 3 11:28:09 2008 +0200 + + vblank: Special-case driver vblank counter going back by 1. + + Turns out the radeon driver is affected by the same problem that prompted i915 + to revert to less useful counter flipping at the end of the vblank interval. In + the long term, we can hopefully implement more reliable methods to achieve + counter flipping at the beginning of vblank, but otherwise this should be an + acceptable workaround. + +commit 0144ebeb8a713b1420d35004075037cd4b0495a1 +Author: Michel Dänzer +Date: Tue Jun 3 11:28:09 2008 +0200 + + vblank: Don't return current sequence number and time if interrupted by signal. + +commit 6b520005c6714d8a8afa68b8a43065a40da298cc +Author: Michel Dänzer +Date: Tue Jun 3 11:27:39 2008 +0200 + + Revert "don't copy back if an error was returned." + + This reverts commit 6671ad1917698b6174a1af314b63b3800d75248c. + + The vblank ioctl needs to update the userspace parameters when interrupted by + a signal, which was prevented by this. Let's see if this breaks other ioctls... + +commit d5ae19ebcf2dc6402872e0575b5786b6e8117b6f +Author: Dave Airlie +Date: Tue Jun 3 12:42:49 2008 +1000 + + drm: sg alloc should write back the handle to userspace + +commit f1e12d40af6ce9b6159c28529bcbdc877c565c82 +Author: Dave Airlie +Date: Tue Jun 3 12:40:54 2008 +1000 + + drm/ati_pcigart: use proper page mapping function + + This should be pci_map_page not pci_map_single + +commit 867c2bb461e4bf7765fdbf502f625b739ceecb96 +Author: Keith Packard +Date: Mon Jun 2 12:37:10 2008 -0700 + + [intel-gem] reloc_and_validate_object → object_bind_and_relocate + + Just renaming this function and related parameters to match terminology used + elsewhere in the driver. + +commit 1cb2940a252f970bad0f88a5f14b4d39ea53ef1f +Author: Keith Packard +Date: Mon Jun 2 10:59:15 2008 -0700 + + [intel-gem] Propagate set_domain errors. + + set_domain can block waiting for rendering to complete. If that process is + interrupted by a signal, it can return -EINTR. Catch this error in all + callers and correctly deal with the result. + +commit 3ed17803d826b10f8f94d09acf12877e9738823c +Author: Alan Hourihane +Date: Mon Jun 2 10:44:29 2008 +0100 + + more checks for NULL encoder so we don't segfault. + +commit dc022084cda0a5558f033c3caa657d5af84ef544 +Author: Alan Hourihane +Date: Mon Jun 2 10:03:28 2008 +0100 + + Fix warnings + +commit 149b17311ad5f117e8f53a7a8cc032e369b95ed2 +Author: Dave Airlie +Date: Mon Jun 2 16:45:44 2008 +1000 + + drm: initial mode object groups. + + This creates a default group attached to the legacy drm minor nodes. + + It covers all the objects in the set. make set resources only return + objects for this set. Need to fix up other functions to only work on + objects in their allowed set. + +commit 50d3e5bd020d0b6877a5fef441408f16e31121cd +Author: Dave Airlie +Date: Mon Jun 2 16:19:21 2008 +1000 + + drm/modesetting: redo object handles around a core object. + + handle crtc/encoders/connectors/fb/mode/property/blob using this system. + +commit c321bc4f9280fe93e2df2b1c47e13cba7499e486 +Author: Dave Airlie +Date: Mon Jun 2 14:33:42 2008 +1000 + + drm: only report framebuffers available on this fd. + + Not 100% sure this is a good idea, but I think I'd rather things + communicate with bo handles not fb ids. + +commit 4e7b24639808e5e1e2c05143028db1a3bc2812e9 +Author: Dave Airlie +Date: Mon Jun 2 14:04:41 2008 +1000 + + drm: add functions to get/set gamma ramps + +commit 416754f1cc5a55b1c6b2d2fa2f501b18462d62e6 +Author: Robert Noland +Date: Sun Jun 1 19:34:29 2008 -0400 + + [FreeBSD] Declare vblank_disable_fn callout MPSAFE. + +commit 4ce47fd328cd885d66abdd42db1f7c054bd44498 +Author: Robert Noland +Date: Sun Jun 1 16:17:31 2008 -0400 + + [FreeBSD] Get rid of vbl_lock and re-use irq_lock. + +commit eba6cdc936cb33d929997ccb9bade6f75bb40670 +Merge: efb48c6 7fec6c0 +Author: Dave Airlie +Date: Mon Jun 2 12:58:10 2008 +1000 + + Merge branch 'modesetting-101-encoders' into modesetting-101 + +commit 7fec6c0e2a2457925b88ed3bd70d9defde77b81b +Author: Dave Airlie +Date: Mon Jun 2 12:57:09 2008 +1000 + + drm: fixup encoder picking in set_config stage + +commit 46c78a2223802b9105a87b7125fd4872ab69c4ca +Author: Dave Airlie +Date: Mon Jun 2 11:44:35 2008 +1000 + + drm/modesetting: add best encoder finding for modesetting + + This asks the driver to suggest the best encoder for the connector + during the pick crtcs stage. + + Need to also do this during mode setting stages + +commit 0dd000b578adec6ff101c957bce7dc9a32b76713 +Author: Dave Airlie +Date: Mon Jun 2 11:12:28 2008 +1000 + + drm/modesetting: move some connector functions to helper. + + Migrated the output mode collection into the helper. + +commit dba95ec34315d62934ff0e493e085aa6a03cde7c +Author: Dave Airlie +Date: Mon Jun 2 10:41:12 2008 +1000 + + drm: fixup some interfaces so test code works again + +commit e439e74776b215d70d8e34e8aa9cea22179dcbc6 +Author: Dave Airlie +Date: Mon Jun 2 10:05:54 2008 +1000 + + drm/modesetting: another re-org of some internals. + + Move dpms into the helper functions. + Move crtc into the encoder. + Move disable unused functions into the helper. + +commit ac4da869285173ad0ac947bdf41ffe10efe21c05 +Author: Robert Noland +Date: Sun Jun 1 12:56:34 2008 -0400 + + [FreeBSD] Add symlink for radeon_microcode.h + +commit 2186f9f6eff4b3b4f605d35a030c0910646865ab +Author: Robert Noland +Date: Sun Jun 1 12:49:20 2008 -0400 + + [FreeBSD] Call drm_vblank_cleanup during irq uninstall + + I needed to re-arrange some functions for this. + Also needed to call DRM_SPINUNINIT on the vbl_lock during cleanup. + +commit a12cbf8aa5cf21d30bd2c798ff059cb1ba92b382 +Author: Alex Deucher +Date: Fri May 30 18:20:01 2008 -0400 + + RADEON: fix typo in last commit + +commit 461bfa3da6f85b85c21cd84f81bb4eefa5481418 +Merge: 50bce2b 6e8a2cf +Author: Eric Anholt +Date: Fri May 30 14:42:08 2008 -0700 + + Merge commit 'origin/master' into drm-gem + + Conflicts: + + linux-core/Makefile.kernel + shared-core/i915_drv.h + shared-core/nouveau_state.c + +commit 50bce2bc625deb439dd61f504496dddd0cd4f572 +Author: Eric Anholt +Date: Fri May 30 13:47:34 2008 -0700 + + [intel-gem] Only update obj->write_domain if we're actually changing it. + + The problem was revealed where on 965, the display list vertex buffer would see: + + create -> (CPU, CPU) + set_domain (CPU, CPU) -> (CPU, CPU) + set_comain (CPU, 0) -> (CPU, 0) (no clflush occurred) + execbuf (GPU, 0) -> (CPU+GPU, 0) (still no clflush) + + instead of: + + create -> (CPU, CPU) + set_domain (CPU, CPU) -> (CPU, CPU) + set_comain (CPU, 0) -> (CPU, CPU) + execbuf (GPU, 0) -> (CPU+GPU, 0) (clflushed) + +commit 4f92ed34270ae4afaa0ddba38d227c6e359bcc98 +Author: Eric Anholt +Date: Fri May 30 10:04:22 2008 -0700 + + [intel-gem] Add an option to check GTT versus CPU coherency at execbuf time. + +commit efb48c6cf7bbb57e7b2ea6ce7671905e84384963 +Author: Kristian Høgsberg +Date: Fri May 30 14:23:04 2008 -0400 + + Fix ivch i2c read function to use the "special" i2c format. + +commit 6e8a2cff66ac0d6afaf9bb233bc81449c2014078 +Author: Dave Airlie +Date: Fri May 30 20:27:31 2008 +1000 + + r500: attempt to make AGP work by programming agp base in the MC correctly + +commit 5d47185eb69d73dd7e6ee3ddde4d0c7642c2d5b7 +Author: Dave Airlie +Date: Fri May 30 15:32:58 2008 +1000 + + drm: switch possible crtc/clones over to encoders + +commit 30fc88fdf9084ffcb9e76acbdee95d9691ac4ba4 +Author: Dave Airlie +Date: Fri May 30 15:18:07 2008 +1000 + + modesetting: drop crtcs/clones from the connectors + +commit 9d38448ed33aaff324cc4bbe1e0878593e97d07d +Author: Dave Airlie +Date: Fri May 30 15:03:12 2008 +1000 + + modesetting: the great renaming. + + Okay we have crtc, encoder and connectors. + + No more outputs exposed beyond driver internals + + I've broken intel tv connector stuff. + Really for TV we should have one TV connector, with a sub property for the + type of signal been driven over it + +commit 6aeef92c0cad784a5019ea90d97ab81f4e51fdd9 +Author: Dave Airlie +Date: Fri May 30 13:57:27 2008 +1000 + + drm: attach an encoder. + + Time to do some renaming on the connectors I think + +commit 1c4b25a2b1c31df190eab173128702d1b5871906 +Author: Dave Airlie +Date: Fri May 30 13:49:39 2008 +1000 + + drm: fix a couple of bugs in the encoder return to userspace + +commit 9239cf511f65a43eb578fbb6a7c5255e05db2101 +Author: Dave Airlie +Date: Fri May 30 13:31:16 2008 +1000 + + drm: add encoder attach/detach + +commit 4403c59b76c55c9c430decac8bc76e4230a253ab +Author: Dave Airlie +Date: Fri May 30 13:22:51 2008 +1000 + + tests: add basic encoder reading to test + +commit 514147e3f3180b46d3e9e6e906580fe232d4ad26 +Author: Dave Airlie +Date: Fri May 30 12:29:45 2008 +1000 + + drm: add encoder free function + +commit 1542492b797fbdf4970e0213827e2f9887d6174d +Author: Dave Airlie +Date: Fri May 30 12:24:19 2008 +1000 + + drm: init the encoder list/count + +commit 6b5592790dcaed503bec8f441eab52d22b76d7c1 +Author: Dave Airlie +Date: Fri May 30 12:20:36 2008 +1000 + + drm: add red hat copyright. + +commit b72419a8f74bfb1d3b6a5ca1d8f6dfa3c6a84e86 +Author: Dave Airlie +Date: Fri May 30 12:19:13 2008 +1000 + + drm: add encoder ids to the output handling + +commit fae2c17b313e2838652c32ea4a576172b4063639 +Author: Dave Airlie +Date: Fri May 30 12:14:44 2008 +1000 + + drm: add more encoder interfaces + +commit 16a8f824face8067029ef6f3d10f1723d87b23f6 +Author: Dave Airlie +Date: Fri May 30 12:10:01 2008 +1000 + + libdrm: add encoder retrival + +commit 8ae82f3a2feb8b8fe56214c4c9e806bf1f87cbf8 +Author: Dave Airlie +Date: Fri May 30 12:03:36 2008 +1000 + + drm: add encoder / get encoder to the modesetting resources interface + +commit 6b970f193b69a912183dcbf85b9dc51ec99aeefe +Author: Dave Airlie +Date: Fri May 30 11:48:41 2008 +1000 + + drm: remove unused init func from outputs + +commit 9654c776fda55d6420a14449bf2e274839c444a6 +Author: Dave Airlie +Date: Fri May 30 11:47:57 2008 +1000 + + drm/modesetting: add initial encoder structures and setup functions + +commit 98c5cf7f6fc51f1a8f5f90b3895009cd38dd8f22 +Author: Dave Airlie +Date: Fri May 30 11:25:41 2008 +1000 + + modesetting: reorganise out crtc/outputs are allocated. + + Use subclassing from the drivers to allocate the objects. This saves + two objects being allocated for each crtc/output and generally makes + exit paths cleaner. + +commit 3b1e4e6dc38029e697afb8e6ec81ebbed7adf442 +Author: Eric Anholt +Date: Thu May 29 12:53:13 2008 -0700 + + [intel-gem] Write the presumed_offset back out after updating it. + + Otherwise, 965 constant state buffers get re-relocated every exec. Ouch. + +commit 19ff3366e4ed591741af4bcf49991823115bdb17 +Author: Keith Packard +Date: Tue May 27 16:49:49 2008 -0700 + + [intel-gem] Clean up active/inactive/flushing list debugging. + +commit df8cd54286fbae5903d8ede390ec4a11cb6c4b6c +Author: Dave Airlie +Date: Thu May 29 14:02:14 2008 +1000 + + modesetting: reorganise code into core and helper functions. + + This splits a lot of the core modesetting code out into a file of + helper functions, that are only called from themselves and/or the driver. + + The driver gets called into more often or can call these functions from itself + if it is a helper using driver. + + I've broken framebuffer resize doing this but I didn't like the API for that + in any case. + +commit ee5afc63428488c9c39e5ecd7d8cdc646a7b65b7 +Author: Dave Airlie +Date: Thu May 29 13:58:26 2008 +1000 + + modeset: disable radeon ms by default + + as I'm going to break it. + +commit 3a3f39d144c47ce937d6924d344a9ad3d82a2db5 +Merge: 070755a 5b86823 +Author: Alan Hourihane +Date: Wed May 28 21:01:18 2008 +0100 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + + Conflicts: + + shared-core/i915_dma.c + shared-core/i915_drv.h + +commit 070755af3fecefb6b09e8ef98738e4926e4148a7 +Author: Jesse Barnes +Date: Wed May 28 08:24:42 2008 -0700 + + i915: unmap BIOS when we're done with it + + At the moment, we only read it at startup time, so we can just unmap it there + when we're done. + +commit 5b86823fa36513f521412a38c240cb18f02dcc9a +Author: Dave Airlie +Date: Wed May 28 11:12:57 2008 +1000 + + radeon: split microcode out into a separate header file. + +commit e10502002f0ebb2b56b19384b2f2eae7a7a84512 +Author: Eric Anholt +Date: Tue May 27 17:50:39 2008 -0700 + + [intel-gem] Replace idlelock usage with real lock acquisition. + +commit 0c8a8db1b6c97dd0fad18bd72a1bc56e2a673a10 +Author: Dave Airlie +Date: Wed May 28 10:28:13 2008 +1000 + + i915: fix BSD bh, DRI2 not uses anywhere else + +commit c06096d34fa4afb3f24d610ccfb385f92dbc1e83 +Author: Dave Airlie +Date: Wed May 28 10:02:20 2008 +1000 + + radeon: bump release date/version for r500 3D support + +commit 59c953245c583bb1062d3a8409a9b615a3a19654 +Author: Alex Deucher +Date: Tue May 27 18:33:33 2008 -0400 + + RADEON: add get_param for number of GB pipes + +commit df127c303d944720937fa6b54a8a9f84bc2fe518 +Author: Owain Ainsworth +Date: Tue May 27 15:12:35 2008 -0700 + + [BSD] Move unlock in drm_vm.c from accidental platform #ifdeffing. + + Also remove an unreachable unlock. + +commit cc7ad27fe414cdf87b7561778a766a012541f116 +Author: Owain Ainsworth +Date: Tue May 27 15:11:25 2008 -0700 + + [BSD] Fix lock leak in drm_update_draw malloc failure path. + +commit 9a2ae28fbe0e1e5cce0a5d89fbcc84fbdba1206e +Author: Owain Ainsworth +Date: Tue May 27 15:07:04 2008 -0700 + + [BSD] Fix lock leaks in error paths in drm_bufs.c. + +commit 200ac59573b43abd112d27a1ddda3c124ba9db2a +Author: Owain Ainsworth +Date: Tue May 27 14:59:38 2008 -0700 + + [BSD] Remove superfluous recursive locking in drm_add_magic. + +commit e45f95a03b7242115030a74ab27b142bc5c004c4 +Author: Jie Luo +Date: Tue May 27 14:55:01 2008 -0700 + + [i915] Fix typo in (unused) START_ADDR definition. + +commit 8cd045079e21093437b99cb150b97403e945d2c2 +Author: Robert Noland +Date: Fri May 23 14:36:05 2008 -0400 + + [FreeBSD] Add vblank-rework support and get drivers building. + + The i915 driver now works again. + +commit ad8eb0ed01d96cc16cdafd3b48c0f0cd73d315b4 +Author: Eric Anholt +Date: Tue May 27 14:12:51 2008 -0700 + + [FreeBSD] Convert from drm_device_t to struct drm_device for consistency. + +commit 1f4e36081bd6ff7d7b53a62e0c8db7c0f82edf99 +Author: Keith Packard +Date: Mon May 26 17:41:46 2008 -0700 + + [intel-gem] Must hold DRM lock while setting object domain + + Object domain transfer can involve adding flush ops to the request queue, + and so the DRM lock must be held to avoid having the X server smash pointers + badly. + +commit d434b64f6a760d85295e32298a9a1f3624ee1b69 +Author: Keith Packard +Date: Mon May 26 03:25:16 2008 -0700 + + [i915] leave interrupts masked off when not in use. + + The interrupt enable register cannot be used to temporarily disable + interrupts, instead use the interrupt mask register. + + Note that this change means that a pile of buffers will be left stuck on the + chip as the final interrupts will not be recognized to come and drain things. + +commit 7cf3fd29fe058a0bfc2ba7e889d1b360398be161 +Author: Keith Packard +Date: Sun May 25 20:45:20 2008 -0700 + + [intel-gem] Add DRM_I915_GEM_BUSY ioctl to check for idle buffers. + + This new ioctl returns whether re-using the buffer would force a wait. + +commit 6d1d11704ab36e4ee50b2c1d3b984ab6bb691417 +Author: Keith Packard +Date: Sun May 25 20:44:19 2008 -0700 + + [intel-gem] Compute npages instead of nbytes in flush_pwrite + + i915_gem_flush_pwrite optimizes short writes to the buffer by clflushing + only the modified pages, but it was miscomputing the number of pages. + +commit c69b81df62cb7e04f956f2cf77091216754c3632 +Author: Keith Packard +Date: Sun May 25 20:41:42 2008 -0700 + + [intel-gem] replace call to jiffies_to-msec with simple inline + +commit 9fc4ea5c00dfb91ebff893fb5092e768155cc2e2 +Author: Jesse Barnes +Date: Fri May 23 18:42:47 2008 -0700 + + i915: do a better job of parsing VBIOS data + + Add code to get panel modes from the VBIOS if present and check whether certain + outputs exist. Should make our display detection code a little more robust. + +commit b4d8cda8e6d6ea319ab7c471d6d68b8af8693cfe +Author: Jesse Barnes +Date: Fri May 23 18:41:58 2008 -0700 + + drm_mode_debug_printmodeline doesn't need struct drm_device * + + Makes printing modelines from some routines easier. + +commit 8c2b207f9b1fb1cf6df23c7ef73ca57dfb5dd459 +Author: Keith Packard +Date: Thu May 22 23:08:38 2008 -0700 + + [intel-gem] Encourage multiple caches to hold read data + + When reading from multiple domains, allow each cache to continue + to hold data until writes occur somewhere. This is done by + first leaving the read_domains alone at bind time (presumably the CPU read + cache contains valid data still) and then in set_domain, if no write_domain + is specified, the new read domains are simply merged into the existing read + domains. + + A huge comment was added above set_domain to explain how things are + expected to work. + +commit 44ed693ca6f8d19acb39174c6efada070652a027 +Author: Keith Packard +Date: Thu May 22 11:34:56 2008 -0700 + + [gem] Use CPU domain for new or pageable objects + + Newly allocated objects need to be in the CPU domain as they've just been + cleared by the CPU. Also, unmapping objects from the GTT needs to put them + into the CPU domain, both to flush rendering as well as to ensure that any + paging action gets flushed before we remap to the GTT. + +commit 71b09a5f75c6063a592f7be07465761519839bcd +Author: Keith Packard +Date: Thu May 22 10:59:59 2008 -0700 + + [intel-gem] Force ring retire by emiting flush before user-interrupt. + + Commands in the ring are parsed and started when the head pointer passes by + them, but they are not necessarily finished until a MI_FLUSH happens. This + patch inserts a flush after the execbuffer (the only place a flush wasn't + already happening). + +commit a51c3a76ff415104426493a97ac686ccfe3f3926 +Author: Keith Packard +Date: Thu May 22 10:48:32 2008 -0700 + + [intel] Add debug code to verify the cached ring tail pointer. + + Recording the tail pointer in a local variable improves performance, but if + someone messes up and fails to reload at the right time, the driver will + write commands to the wrong part of the ring and scramble execution badly. + + This change (available by setting I915_RING_VALIDATE to 1) checks to make + sure the cached tail pointer matches the hardware tail pointer at each ring + buffer addition, calling BUG_ON when that's not true. + +commit da3f099a7c4a18468ff84819ed39e42bec641e11 +Author: Keith Packard +Date: Wed May 21 00:32:02 2008 -0700 + + [intel-gem] invalidate ring locals for pin/unpin/set_domain/free functions + + Ring locals must be reloaded from hardware in case the X server ran. + +commit 5e662f90d1143de53db866e2b8a94f1bfbe5fc51 +Author: Eric Anholt +Date: Wed May 14 15:13:14 2008 -0700 + + [gem] Release GEM buffers from work task scheduled from IRQ. + + There are now 3 lists. Active is buffers currently in the ringbuffer. + Flushing is not in the ringbuffer, but needs a flush before unbinding. + Inactive is as before. This prevents object_free → unbind → + wait_rendering → object_reference and a kernel oops about weird refcounting. + + This also avoids an synchronous extra flush and wait when freeing a buffer + which had a write_domain set (such as a temporary rendered to and then from + using the 2d engine). It will sit around on the flushing list until the + appropriate flush gets emitted, or we need the GTT space for another + operation. + +commit 49075b678fad6c3a5cadd1af67a37332b9255ace +Author: Dave Airlie +Date: Fri May 23 09:39:54 2008 +1000 + + r500: add two more register ranges for mesa driver to setup + +commit 74a9ea896e4c3f4bb3c7195872755ad40da30828 +Author: Dave Airlie +Date: Thu May 15 11:13:03 2008 +1000 + + drm: fix nouveau warning + +commit 1cde3cc1ac467eb0527ed55127cf3bb983afde80 +Author: Hong Liu +Date: Mon May 19 17:06:40 2008 +0800 + + i915: check dummy page before freeing + + The dummy read page will point to NULL if drm_bo_driver_init failed at + firstopen (modeset is not enabled), and will cause kernel oops at + subsequent drm_lastclose call, so be sure to check it. + +commit e8320a716d97504d91299d20d640b847c86e4b17 +Author: Hong Liu +Date: Mon May 19 17:06:38 2008 +0800 + + i915: init bo mm at driver init only when modeset=1 + + To avoid bo memory manager being inited twice, it will be called + at firstopen when modeset is not enabled. + +commit d6f796857780fc54641047e2aa4e7091376928eb +Author: Eric Anholt +Date: Tue May 20 16:27:05 2008 -0700 + + [gem] Replace ring throttling hack with actual time measurement. + +commit 54fa32cdfe1529023324a0a261ee5d4e033f46ea +Author: Eric Anholt +Date: Wed May 21 15:15:58 2008 -0700 + + [gem] Fix bad test for list_for_each completion. + + Since it's a circular list, the entry won't be NULL at termination. + +commit 7078978db0e014a2621984f6c67ca65fa4f23f3a +Author: Eric Anholt +Date: Wed May 21 15:03:47 2008 -0700 + + [gem] Hold a reference on the object in i915_gem_wait_space. + + Otherwise, in the middle of the function called using it the last ref + might disappear. + +commit f8e38e49dd70bf4a5ef97c29f0c405a1fc5023f5 +Author: Keith Packard +Date: Wed May 21 00:32:02 2008 -0700 + + [intel-gem] invalidate ring locals for pin/unpin/set_domain/free functions + + Ring locals must be reloaded from hardware in case the X server ran. + +commit 91c6c4b2403caca80273e8010e9ced74cf900be3 +Author: Dave Airlie +Date: Wed May 21 20:14:45 2008 +1000 + + rs690/r500: vblank support. + + The new display controller has the vblank interrupts in a different place. + + Add support for vbl interrupts for these chips + +commit af8e087157ef5034fa12d93202037f87da61355d +Author: Eric Anholt +Date: Tue May 20 14:03:27 2008 -0700 + + [gem] Use a separate sequence number field from classic/ttm + + This lets us get some qualities we desire, such as using the full 32-bit + range (except zero), avoiding DRM_WAIT_ON, and a 1:1 mapping of active + sequence numbers to request structs, which will be used soon for throttling + and interrupt-driven list cleanup. + +commit ab36a6f983107971890e81473452b3f0313fb692 +Author: Eric Anholt +Date: Tue May 20 10:52:24 2008 -0700 + + [gem] Rename sequence numbers from "cookie" to "seqno" + +commit 6c3ac484b049681f9f3e692f9a6238ed122a8191 +Author: Eric Anholt +Date: Tue May 20 10:48:36 2008 -0700 + + [gem] Clean up active/inactive list handling using helper functions. + + Additionally, a boolean active field is added to indicate which list an + object is on, rather than smashing last_rendering_cookie to 0 to show + inactive. This will help with flush-reduction later on, and makes the code + clearer. + +commit 83996561061b99bb490fa0692a491ac9e51245a1 +Author: Dave Airlie +Date: Sat May 17 10:22:12 2008 +1000 + + r500: add more register ranges for Mesa driver + +commit 7dced2f33a952ad12aafb7a3e34747156020a3ae +Author: Eric Anholt +Date: Thu May 15 11:21:11 2008 -0700 + + [gem] Hold dev->struct_mutex to protect structure data. + +commit 3ab152da66f6c7bcc68a13efcf4a62800354f13b +Author: Eric Anholt +Date: Thu May 15 09:37:49 2008 -0700 + + [gem] Rename the GTT LRU lists to active (executing) and inactive (idle). + +commit aafafe507ba6d073bad25b74c808b73c428db67f +Author: Eric Anholt +Date: Thu May 15 09:32:34 2008 -0700 + + [gem] typo fix in comment. + +commit a09c0bbe11004a020d0fac47f7517db55fb91754 +Author: Dave Airlie +Date: Wed May 14 22:48:12 2008 +1000 + + ati_pcigart: oops wrong way around not that it actually mattered + +commit 4c6ec02eb8b1a5723f1a00dc420740d440a9ee0d +Author: Dave Airlie +Date: Wed May 14 22:44:22 2008 +1000 + + ati_pcigart: stop working in the evenings you mess up too often + +commit 2712cdeec319d73187a6cccb06522a4125eef619 +Author: Dave Airlie +Date: Wed May 14 22:43:28 2008 +1000 + + Revert "ati_pcigart: fixup properly this version might even work" + + This reverts commit bc0836e12a9790f1cc83f8bc29bc05043c4bc840. + + tree has some kref hacks in it - oops + +commit bc0836e12a9790f1cc83f8bc29bc05043c4bc840 +Author: Dave Airlie +Date: Wed May 14 22:42:21 2008 +1000 + + ati_pcigart: fixup properly this version might even work + +commit dd1f33f83cbbb9917e13f194fadda4f7066ea98a +Author: Dave Airlie +Date: Wed May 14 22:35:32 2008 +1000 + + ati_pcigart: fill out 40-bit gart table support properly + + Thanks to Alex for supplying this info. + +commit caace3692f3121dcc18fa5e9260ffe1a4abbb943 +Author: Alex Deucher +Date: Tue May 13 21:02:17 2008 -0400 + + RS4xx: separate out RS400 and RS480 IGP chips + + RS400 (intel based IGP) and RS480 (AMD based IGP) have + different MC and GART setups. Currently we only support + RS480. + +commit e4f29968f4860008c13635fa0891cb535e672b93 +Merge: ee631e1 5be53a0 +Author: Jesse Barnes +Date: Tue May 13 14:47:17 2008 -0700 + + Merge branch 'modesetting-101' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + +commit ee631e1b8604a176b9118396998ce5bfc6475dae +Author: Jesse Barnes +Date: Tue May 13 14:44:17 2008 -0700 + + i915: register definition & header file cleanup + + It would be nice if one day the DRM driver was the canonical source for + register definitions and core macros. To that end, this patch cleans + things up quite a bit, removing redundant definitions (some with + different names referring to the same register) and generally tidying up + the header file. + +commit 5be53a0881c5248146c585015bf60bb2958773af +Author: Jakob Bornecrantz +Date: Tue May 13 09:24:47 2008 +0200 + + i915: execbuf now works without i915_dma_init being called + +commit d32ce7f621c0d8e42cdf88ce6f1d15638a3d34b7 +Author: Jesse Barnes +Date: Mon May 12 15:47:19 2008 -0700 + + i915: TV hotplug fixes + + In order to avoid recursive ->detect->interrupt->detect->interrupt->... + we need to disable TV hotplug interrupts in + intel_tv.c:intel_tv_detect_type. We also need to enable the TV interrupt + detection and hotplug sequence properly in i915_irq.c. + +commit 6e46a3c762919af05fcc6a08542faa7d185487a1 +Author: Eric Anholt +Date: Mon May 12 15:42:20 2008 -0700 + + [GEM] Update testcases for new API. + +commit f650d7240a5b6eea8e605734f1211c20727c21d7 +Author: Eric Anholt +Date: Mon May 12 12:55:36 2008 -0700 + + [GEM] Typo (and thinking) fixes in drm-gem.txt and doxygen. + +commit 17e8000ac046e912bf02649e67165cafed270e2e +Author: Keith Packard +Date: Mon May 12 13:04:18 2008 -0700 + + [intel] Minor kludge -- wait for the ring to be nearly empty before queuing + + No need to fill the ring that much; wait for it to become nearly empty + before adding the execbuffer request. A better fix will involve scheduling + ring insertion in the irq handler. + +commit 7e7ea313c4a38370194290d05697bdb6a746669d +Author: Keith Packard +Date: Mon May 12 13:03:16 2008 -0700 + + [intel] When polling for ring space, sleep for a lot longer (10ms) + + If the ring is full, the engine will surely be running for more than 10ms. + +commit 6aeff6b9e32b61beed0d5c3d871968fa6217b79d +Author: Keith Packard +Date: Mon May 12 13:01:57 2008 -0700 + + [gem] Set write domain to CPU when doing pwrite. + + Leave the flush call in place, which can fix domains up if necessary. + +commit 6950b7da7157d4d775fc09c7bc31fb0e769c4249 +Author: Keith Packard +Date: Mon May 12 13:00:55 2008 -0700 + + [gem] Clarify use of explicit domain control. Remove Gen3 from I-cache usage. + +commit a51e38548cfdece2978e9b5f0d6f0467ba7a7272 +Author: Hong Liu +Date: Fri May 9 10:06:17 2008 +0800 + + fix kernel oops when removing fb + + drm_crtc->fb may point to NULL, f.e X server will allocate a new fb + and assign it to the CRTC at startup, when X server exits, it will destroy + the allocated fb, making drm_crtc->fb points to NULL. + +commit b2dee13f5d7209b62c5e9ba8cd059717a8302fec +Author: Hong Liu +Date: Fri May 9 10:15:17 2008 +0800 + + free dummy read page if fail to init mm + + Since drm_bo_driver_init will be called in driver_load, we need to free + what it alloced when error to avoid memory leak. + +commit f1b9bbe2b8f2339359afa39bf27702eca6f6c975 +Author: Hong Liu +Date: Mon May 12 16:14:38 2008 +0800 + + modeset init code cleanup + + moving modeset init code into one function and correct error + handling druing i915 init + +commit af60d87869303d7f17352c82d2fb1cebb9a8f7ff +Author: Hong Liu +Date: Mon May 12 14:38:49 2008 +0800 + + fix G33 hardware status page in modeset + + We need to alloc a hw status page bo for G33 if modeset is enabled since the 2D + driver can't alloc gfx memory when working in drm modeset. + +commit 10d754f0a2ba2bdda87c243305c8fc46616e965c +Author: Alex Deucher +Date: Mon May 12 14:49:43 2008 -0400 + + RADEON: fix copy/pasto in last commit + +commit 75bc739bee366b8e0520c61c9b9cc10b94524525 +Author: Alex Deucher +Date: Mon May 12 09:44:20 2008 -0400 + + R3/4/5: init pipe setup in drm + + Similar (broken) code in mesa needs to be removed + +commit e16a7101e809aa816463547e0c0284853b0247ed +Author: Alex Deucher +Date: Mon May 12 09:35:06 2008 -0400 + + RADEON: cleanup radeon_do_engine_reset() + +commit 5532b8d2a006451555c4f1309987e62971660cea +Author: Alex Deucher +Date: Mon May 12 09:30:47 2008 -0400 + + R300+: fixup pixcache flush + +commit 3582e82f140cdae947864af8403674e6e117588e +Author: Alex Deucher +Date: Mon May 12 09:24:13 2008 -0400 + + RS4xx: fix MCIND index mask + +commit d26af273f8558c8ee6eca1914b35bfd174129da7 +Author: Alex Deucher +Date: Mon May 12 09:21:45 2008 -0400 + + RADEON: write AGP_BASE_2 on chips that support it + +commit c307e50724c8d0d88b9ac1788de02b8478261967 +Author: Alex Deucher +Date: Mon May 12 09:18:28 2008 -0400 + + R300+: fixup PURGE/FLUSH macros + +commit fb9eaff74712b7b29a7e76209d803fec21c0318c +Author: Alex Deucher +Date: Mon May 12 09:13:44 2008 -0400 + + Radeon IGP: merge RS4xx/RS6xx gart setup + +commit 68b7f550ba140d275c6f9bb26c2186069354be24 +Author: Alex Deucher +Date: Mon May 12 09:00:40 2008 -0400 + + Radeon IGP: wrap MCIND access + + first step in merging rs4xx/rs6xx gart setup + +commit a34025ce227e8755505b483b1a77c4cf5d7fece5 +Author: Alex Deucher +Date: Mon May 12 08:56:11 2008 -0400 + + Radeon IGP: clean up registers and magic numbers + +commit 3f66a0005c1273b0fc935b9bd62a6fabaf99c2be +Author: Dave Airlie +Date: Mon May 12 16:29:13 2008 +1000 + + drm: remove root only from a lot of drm ioctls to get stuff running as non-root + +commit 1eedeed09192738334570e13acab381441f3d817 +Author: Dave Airlie +Date: Mon May 12 16:28:58 2008 +1000 + + drm: masters are always authenticated + +commit 8f7fc880e8bbe9e59521df707f2ddd3e80e06e6f +Author: Dave Airlie +Date: Mon May 12 16:28:40 2008 +1000 + + drm: fix oops on reading proc file with no master + +commit ff39db099b9ca6c8feee68101a2269345b7bd798 +Author: Keith Packard +Date: Sun May 11 00:10:16 2008 -0700 + + [GEM] Make pread/pwrite manage memory domains. No luck with movnti though. + + pread and pwrite must update the memory domains to ensure consistency with + the GPU. At some point, it should be possible to avoid clflush through this + path, but that isn't working for me. + +commit 1b0bf301431e76712de1ee43681bc818383b2e56 +Author: Keith Packard +Date: Sat May 10 22:04:39 2008 -0700 + + [intel-GEM] exec list can contain pinned, lru cannot. + + The exec list contains all objects, in order of use. The lru list contains + only unpinned objects ready to be evicted. This required two changes -- the + first was to not migrate pinned objects from exec to lru, the second was to + search for the first unpinned object in the exec list when doing eviction. + +commit 1f9eaceb71792879a3ecb0046b64dbf65b870d50 +Merge: 177b8b0 48a8531 +Author: Keith Packard +Date: Sat May 10 21:05:25 2008 -0700 + + Merge commit 'anholt/drm-gem' into drm-gem + +commit 177b8b07033c56c84d335808121690d235516bb5 +Author: Keith Packard +Date: Sat May 10 21:04:42 2008 -0700 + + [GEM] Add drm-gem.txt + + Add some API and implementation documentation for GEM. + +commit a37ac493da1730436028ecc79a38513380ce15d0 +Author: Keith Packard +Date: Sat May 10 21:04:18 2008 -0700 + + [intel-GEM] Clean up GEM ioctl naming. + + Rename 'validate_entry' to 'exec_object', then clean up some field names in + structures (renaming buffer_offset to just offset, for example). + +commit 48a8531aa403ea250696338aa8717e3e36477370 +Author: Eric Anholt +Date: Fri May 9 18:23:51 2008 -0700 + + GEM: Fix arguments to drm_memrange_init so we don't exceed our allocation. + + It takes (offset, size), not (offset, end). + +commit c5c59eab809604e4d0d4d1dc71fc11186d0220f8 +Author: Eric Anholt +Date: Fri May 9 14:34:20 2008 -0700 + + GEM: Separate the LRU into execution list and LRU list. + + Now, the LRU list has objects that are completely done rendering and ready + to kick out, while the execution list has things with active rendering, + which have associated cookies and reference counts on them. + +commit f56f2acb5a3f34ad6916ff315d3d2058bd4b8f9c +Author: Eric Anholt +Date: Fri May 9 15:07:49 2008 -0700 + + GEM: Clear obj_priv->agp_mem when we free it. + + Still managing to get something wrong with this, oopsing down in agp. + +commit f0ae335cd70077043f2f7af39d7edcc529367c61 +Author: Eric Anholt +Date: Fri May 9 15:02:50 2008 -0700 + + GEM: Avoid leaking refs on target objects on presumed offset success. + +commit dce34421947d1828ff76c001281107e937e307d4 +Author: Hong Liu +Date: Fri May 9 10:08:36 2008 +0800 + + fixup i915 workqueue handling when modeset=1 + + Fixup workqueue creation error handling and make sure we destroy the queue on + unload. + +commit 6ee0c09b0e2746022c25962cbfe655f2f1d5c53e +Author: Jesse Barnes +Date: Fri May 9 14:19:39 2008 -0700 + + i915: use BDB TV flag for TV detection + + Even if the TV encoder hasn't been fused off, we may not have a TV connector on + the platform. The BDB in the BIOS should give us this info in some cases. + +commit 12725a37af691345e74fe22d53300abec2581852 +Author: Jesse Barnes +Date: Fri May 9 14:19:00 2008 -0700 + + i915: add basic VBT support + + Map the VBIOS (and therefore VBT) at init time for use by various output + initialization routines. + +commit 1e26ca44c9f3e8a1a30652aa860b405e0248aae1 +Author: Keith Packard +Date: Fri May 9 12:18:09 2008 -0700 + + [gem] API cleanup. allocate->create unreference->close name->flink + + Make the API names a bit more consistent. + +commit eeff906aa0f64da12a0154c66d99e8492dd95107 +Author: Alan Hourihane +Date: Fri May 9 16:36:28 2008 +0100 + + Fix build problems + +commit 7317e774b5cddb7218c1416fa4d9ee98756e4890 +Author: Alan Hourihane +Date: Fri May 9 09:26:17 2008 +0100 + + Fix test applications for recent DRM changes + +commit ec75369b402235d74b06b08907572050962075a6 +Author: Keith Packard +Date: Thu May 8 11:45:53 2008 -0700 + + [i915] clean up whinging from checkpatch.pl + +commit 07ad5ce1e199ebca1e51a831503f923fa49cc57e +Author: Keith Packard +Date: Thu May 8 11:13:29 2008 -0700 + + Clean up whinging from checkpatch.pl in drm_gem.c + + Whitespace changes, a few too-long-lines and some extra braces. + +commit 2f573e6df4890784124eea24ce168702574f0152 +Author: Eric Anholt +Date: Thu May 8 12:46:02 2008 -0700 + + GEM: Fix oops on NULL dereference when we try clflushing when we don't need to. + +commit 7bcbc443f4f5161ab1e1a11cb6694e6d6269377c +Author: Jakob Bornecrantz +Date: Thu May 8 20:10:18 2008 +0200 + + i915: Changed intel_fb to use the new drm_crtc_set_config interface + +commit 9af4c497433398fa4576a7c1c31036448cf4f24c +Author: Keith Packard +Date: Thu May 8 10:44:02 2008 -0700 + + [intel-gem] Move domains to relocation records. add set_domain ioctl. + + Domain information is about buffer relationships, not buffer contents. That + means a relocation contains the domain information as it knows how the + source buffer references the target buffer. + + This also adds the set_domain ioctl so that user space can move buffers to + the cpu domain. + +commit 9d9104ad5fcd2d284a0a87385e9eb1a77adc869e +Author: Jakob Bornecrantz +Date: Thu May 8 15:25:37 2008 +0200 + + i915: Fixed indent in intel_fb.c + +commit ba36d54ad4a3ea52b338d55ca19a864283e7c9ce +Author: Jakob Bornecrantz +Date: Thu May 8 15:00:18 2008 +0200 + + drm: Made set_config use drm_mode_set as a argument + +commit 4466fea7bab2af5c1e25947af474d0ae69df1ffd +Author: Dave Airlie +Date: Thu May 8 17:12:16 2008 +1000 + + Revert "i915: fix vbl swap for multi-master" + + This reverts commit 2a78ad22647933aa8842d534bce6495ff93fbf76. + +commit 2a78ad22647933aa8842d534bce6495ff93fbf76 +Author: Dave Airlie +Date: Thu May 8 16:14:33 2008 +1000 + + i915: fix vbl swap for multi-master + + patch from F9 tree + +commit 442e12412396280eb5164d7b8f6792969c2cf6a0 +Author: Dave Airlie +Date: Thu May 8 16:11:25 2008 +1000 + + drm: check for NULL fb here, shouldn't happen but avoid oops for now + +commit 19abd5c1ac3456e67241fbd2d8cd08148d6de9f9 +Author: Dave Airlie +Date: Thu May 8 16:10:26 2008 +1000 + + drm: set crtc->fb to NULL + +commit 74a49aea6104ebea7525a04760ef21646a3ffaf4 +Author: Dave Airlie +Date: Thu May 8 16:10:06 2008 +1000 + + intel: set correct limits on screen width/height from DDX + +commit 576cba86b704c0de484ba852b8dce5b24d683f7e +Author: Dave Airlie +Date: Thu May 8 16:09:45 2008 +1000 + + drm: fix replacefb to change fb properties + +commit ed072ed075ec431b0746ac1aa8bad5f687d75d8c +Author: Dave Airlie +Date: Thu May 8 14:01:24 2008 +1000 + + drm_mode: initial replacefb implemenation + +commit df46e0691bdd62da8ccc6b3811f57731dd5a2a4b +Author: Dave Airlie +Date: Thu May 8 10:45:18 2008 +1000 + + drm: fix typo from previous merge + +commit 9d1db4ced1cd8e9e23f9ae945625a54d4f7f3721 +Author: Dave Airlie +Date: Thu May 8 10:26:37 2008 +1000 + + cursor: pass handle not BO. + +commit ef204fb5c24f9bd09192a9abebad6a06dd0b88db +Merge: 7f269be b44f2da +Author: Dave Airlie +Date: Thu May 8 10:25:01 2008 +1000 + + Merge remote branch 'origin/master' into modesetting-101 + + Conflicts: + + linux-core/Makefile.kernel + shared-core/i915_drv.h + +commit effc6d998f080ba6f9c81d1b4b0e75a42be0238e +Author: Eric Anholt +Date: Wed May 7 16:00:58 2008 -0700 + + GEM: fix testcases for new ioctl args. + +commit aa0621a19ffcdf2a92eac08fa4950e0423a8dd2b +Author: Arjan van de Ven +Date: Wed May 7 15:54:32 2008 -0700 + + Apply a few stylistic cleanups to match kernel code. + +commit 06e9761f94599c6378c8fa0cdbd1e1c1776bae7a +Author: Eric Anholt +Date: Wed May 7 14:10:04 2008 -0700 + + GEM: Wait for existing rendering to complete before writing relocation data. + + This should already have been generally safe since we don't change contents + and put in new relocations between execbufs, so if we were writing in a new + relocation then we'd already waited rendering to complete when we moved + the target of the relocation. However, doing the right thing will be required + if we do buffer reuse. + +commit 5f5f01ed91f5ad50f2b38e11740a30441ac845a4 +Author: Eric Anholt +Date: Wed May 7 12:46:06 2008 -0700 + + GEM: Extend cache domain stuff for 965. + + One of our MI_FLUSH bits is reserved on 965, being always implied, and there's + a vertex cache that was forgotten. + +commit b44f2da380e78769b58c751e81f376f0fa1f48aa +Author: Dave Airlie +Date: Wed May 7 15:10:23 2008 +1000 + + drm: nopage compat fixup for drm_vm + + The kernel has removed nopage so move the old nopage codepaths into a compat vm file and switch to using the fault paths. + + nopfn is on its way out in the future also, so we should switch to using fault + for that path as well soon + +commit 6a6c37af9ecaabfe1399a1300cadaff730767013 +Author: Keith Packard +Date: Tue May 6 21:59:06 2008 -0700 + + [intel-GEM] ref count objects in gtt-lru. + + If objects on the lru aren't ref counted, they'll get pulled from the gtt as + soon as they are freed. This change does cause objects to get stuck in the + gtt until they're forced out by new requests. The lru should get cleaned + when the irq occurs. + +commit 61253f4f677518537368103799c9510b8b5ad1e3 +Author: Keith Packard +Date: Tue May 6 20:00:23 2008 -0700 + + [intel-GEM] Add memory domain support. + + Memory domains allow the kernel to track which caches to flush and how to + move objects before buffer execution. + +commit 2b9ef32669acf8197cf7d9b73b851c001db494cd +Merge: 631e86c d2373b2 +Author: Keith Packard +Date: Tue May 6 14:43:56 2008 -0700 + + Merge commit 'anholt/drm-gem' into drm-gem + +commit 631e86c5c4ad9b2cdd40749ea3b351204a362c80 +Author: Keith Packard +Date: Tue May 6 14:43:49 2008 -0700 + + Start coding up memory domains + +commit d2373b2a341868882208bb4297ab4f2f51302031 +Author: Eric Anholt +Date: Tue May 6 13:28:26 2008 -0700 + + GEM: Use irq-based fencing rather than syncing and evicting every exec. + +commit dd6976c56f9f14ea8aa630833e9cc9711157d74f +Author: Eric Anholt +Date: Tue May 6 11:25:53 2008 -0700 + + GEM: Skip relocation if presumed offset matches. + +commit 8551bfc6dba03dcd9d182b2099a0906153ecfa01 +Author: Eric Anholt +Date: Tue May 6 11:18:47 2008 -0700 + + GEM: Save the last ioremapped page for relocations in case we need it again. + +commit 91cba3ae17eb34d1836164f86c13a2a8e08c2a29 +Author: Keith Packard +Date: Mon May 5 22:10:02 2008 -0700 + + Dump last batch buffer when hardware lockup is detected. + +commit ed6657fa8e7977b19bb836782ac8e87f0f703cef +Author: Keith Packard +Date: Mon May 5 22:09:34 2008 -0700 + + Monitor ACTHD register while polling for idle ring. + + When batch buffers are executing, the ring may be stuck for a long time. + Monitor the ACTHD pointer which will show if the execution engine is + actually hung. + +commit 2c8f970baaba9c72c882677f40ce8271bff03bac +Author: Keith Packard +Date: Mon May 5 17:17:19 2008 -0700 + + Unlock pages right after getting them. + + pages come back from find_or_create_page locked, but must not stay locked + for long. Unlock them immediately instead of waiting until we're done with + them to avoid deadlock when applications try to touch them. + +commit 5b0d0fa7f81fb297778af97124a2273b2af317bb +Merge: d59a930 dafe48e +Author: Keith Packard +Date: Mon May 5 14:40:20 2008 -0700 + + Merge commit 'anholt/drm-gem' into drm-gem + + Conflicts: + + linux-core/i915_gem.c + +commit dafe48e6239a4e9b49dd87b8c70224e8eeeb6079 +Author: Eric Anholt +Date: Mon May 5 14:38:04 2008 -0700 + + GEM: Replace drm_memrange_for_each with just evicting what we brought in. + + I was wrong about how the data structure worked, and didn't care to fix it + to support debugging code. + +commit d59a9300ec2ec5d6dc606f847a7589c197994793 +Author: Keith Packard +Date: Mon May 5 14:32:01 2008 -0700 + + Remove some debug messages. + +commit f0bc796a028dc7c6281d3d0cb2deef9df37e380a +Author: Keith Packard +Date: Mon May 5 14:22:42 2008 -0700 + + Add object base to relocation store address. + + The relocated value was being written to the wrong location, missing + the object base address. + +commit 4867780bd6900293880d1db963798d075ec9b01a +Author: Keith Packard +Date: Mon May 5 13:32:28 2008 -0700 + + Emit clflush and chipset flush when mapping objects to gtt + +commit 4511e6cd80b4c47a142db48727753da8d0898857 +Author: Keith Packard +Date: Mon May 5 11:27:06 2008 -0700 + + Correct execbuffer offset. Add memory barrier and chipset flush. + +commit b6f173c4300e90be9bdd3b24003b800afd8819c5 +Author: Keith Packard +Date: Mon May 5 10:51:49 2008 -0700 + + Add i915_dispatch_gem_execbuffer (broken). + + This function submits a gem-based execbuffer to the ring. + It doesn't work yet. + +commit d015219bd0b25f367be23e5df8355f479ee53a0f +Author: Dave Airlie +Date: Mon May 5 16:49:04 2008 +1000 + + r500: add allowed range for us config/pixsize + +commit 166ff364fb09ec9885a164fca517c079a1d88718 +Author: Eric Anholt +Date: Fri May 2 17:50:46 2008 -0700 + + Don't forget to set the memrange private, and reset ring on kernel entry. + +commit afe574f328fca42f2fa5fbc1c7a1c13d0f35d2f6 +Author: Eric Anholt +Date: Fri May 2 17:49:52 2008 -0700 + + Don't include the tail guard memrange in foreach callbacking. + +commit 5f0614b86ff5760016bef87c6f6012fe4f42e14e +Author: Keith Packard +Date: Fri May 2 17:13:11 2008 -0700 + + Check for do_mmap errors + +commit ab3549d1336fc6c08581a9fd14a83513649d9187 +Author: Keith Packard +Date: Fri May 2 16:34:16 2008 -0700 + + Add a bit of /proc/dri/*/gem support. Clean up some refcount/pagelock issues. + + Track named objects in /proc/dri/0/gem_names. + Track total object count in /proc/dri/0/gem_objects. + Initialize device gem data. + return -ENODEV for gem ioctls if the driver doesn't support gem. + Call unlock_page when unbinding from gtt. + Add numerous misssing calls to drm_gem_object_unreference. + +commit 39e20bcd5f4bf9fedac80188fda2e9fcab2f0360 +Author: Keith Packard +Date: Fri May 2 12:28:49 2008 -0700 + + Add name/open ioctls, separate handle and pointer ref counts. + + Names are just another unique integer set (from another idr object). + Names are removed when the user refernces (handles) are all destroyed -- + this required that handles for objects be counted separately from + internal kernel references (so that we can tell when the handles are all + gone). + +commit 49e8e3372afcf5fab9ffef5691d87ad8bc19599a +Author: Keith Packard +Date: Fri May 2 10:36:00 2008 -0700 + + Remove drm_driver argument to functions taking drm_gem_object. + + Now that drm_gem_object has a drm_driver * in it, functions don't need both + parameters. + +commit 5b5b68ffd220f43d4da35ac475b8a3dd91ebbfa7 +Author: Keith Packard +Date: Fri May 2 10:34:46 2008 -0700 + + Fix nouveau warning when returning pointers in uint64_t objects. + +commit 0d547c9ed92c0183f2c727496154baa2849f326e +Author: Keith Packard +Date: Thu May 1 20:41:55 2008 -0700 + + Add alignment to all aperture allocation requests. + + When pinning buffers, or using execbuffer, allow the application to specify + the necessary aperture allocation alignment constraints. + +commit 30efad5113944681c1abd6452e10355c105e9c39 +Author: Keith Packard +Date: Thu May 1 20:31:16 2008 -0700 + + Fix gem ioctls to be 32/64-bit clean. + + mixed 32/64 bit systems need 'special' help for ioctl where the user-space + and kernel-space datatypes differ. Fixing the datatypes to be the same size, + and align the same way for both 32 and 64-bit ppc and x86 environments will + elimiante the need to have magic 32/64-bit ioctl translation code. + +commit abc896638fdcd8ccb457ad7b43dbe7ad229ba501 +Author: Keith Packard +Date: Thu May 1 20:12:39 2008 -0700 + + Use krefs for refcounting. + + krefs are way easier than a custom-coded spinlock+int combo. + +commit c10695bb7ab44494badc21c822eac3140cf4e117 +Author: Eric Anholt +Date: Thu May 1 17:31:57 2008 -0700 + + Unbind objects when freeing, fix some error paths, and warn in others. + +commit ddc80651d561ef3820e205255f34dc7c60dc2e7c +Author: Eric Anholt +Date: Thu May 1 17:31:29 2008 -0700 + + Fix offset passed to AGP to be pages instead of bytes. + + Fix some utterly bonged loop while we were staring at it. + +commit 3f641b56c79d48f7e11aa3eb1dc678e09c8e01f7 +Author: Eric Anholt +Date: Thu May 1 16:48:25 2008 -0700 + + Fix missing member settings in obj/obj_priv, and some error paths. + +commit 7d5f783eca3302ec7efa164e2980c75e5e591585 +Author: Eric Anholt +Date: Thu May 1 16:38:37 2008 -0700 + + Make GEM object handles be nonzero. + +commit c530011aaaf485157ba6284c0c32c0db83523b64 +Author: Eric Anholt +Date: Thu May 1 16:35:12 2008 -0700 + + Update mm tests for GEM rename. + +commit d2529d13961f0df00754393e1ad9b72da5e998a4 +Author: Eric Anholt +Date: Thu May 1 16:27:03 2008 -0700 + + Remove _args from gem ioctl argument structure tags. + +commit 793549116ee6e9202fc7e474bd382eb19ffeb87f +Author: Eric Anholt +Date: Thu May 1 15:40:02 2008 -0700 + + Add pin/unpin object ioctls for gem. + +commit ccd1bae0f676490a88240c62f02e072d2cf3b030 +Author: Eric Anholt +Date: Thu May 1 15:22:21 2008 -0700 + + checkpoint: relocations support. + +commit 5af87acbc2025b9f72d51b30f176e9c3909695ac +Author: Eric Anholt +Date: Thu May 1 14:20:44 2008 -0700 + + checkpoint: gtt binding written. + +commit 2140e102f942edf7982cee2a3f00caf234551687 +Author: Eric Anholt +Date: Thu May 1 11:39:06 2008 -0700 + + checkpoint: rename to GEM and a few more i915 bits. + +commit 3ac74f3208ed15a990a0a26742fbfe566f08aa80 +Author: Ben Skeggs +Date: Fri May 2 01:36:30 2008 +1000 + + nv50: enable 0x400500 bit 0 after PGRAPH exception also + + No solid idea about what these 2 bits do, but nv50 can now survive a few + PGRAPH exceptions just as nv40 does :) + +commit 6d8062ac1e048c3643d3a9d2432e497e17f717de +Author: Ben Skeggs +Date: Fri May 2 01:03:51 2008 +1000 + + nouveau: guard against channels potentially not having a context, fix nv50 + +commit 77d20928b330acda5b6ceb469f50757b5300702b +Author: Ben Skeggs +Date: Fri May 2 00:53:42 2008 +1000 + + nouveau: disable all card interrupts when unknown PFIFO IRQ occurs. + + This is possibly temporary. I can trigger an unending IRQ storm on G8x + in some circumstances, and have no idea how to handle that particular PFIFO + exception correctly yet. + +commit 5c4c778c0d7d3f4749efade3b1023b8b22c029a9 +Author: Ben Skeggs +Date: Fri May 2 00:52:21 2008 +1000 + + nouveau: restore original NV_PFIFO_CACHES_REASSIGN value in fifo handler + + Doesn't fix any issue I've seen, but is a potential issue if a FIFO IRQ + occurs during channel creation/takedown. + +commit bfbe4ade3253330bd0c625d50fa2e7b5cb62dada +Author: Ben Skeggs +Date: Fri May 2 00:50:21 2008 +1000 + + nouveau: gather nsource in trap_info() + + The IRQ handling stuff really is a mess.. On the TODO :) + +commit e317dfdabfb836165fbe3b006e53a88a1bc7c264 +Author: Ben Skeggs +Date: Fri May 2 00:06:22 2008 +1000 + + nv50: PGRAPH exception handling completely different from earlier chips + +commit b92efd59565b9c63734b762b9d2be46447309007 +Author: Ben Skeggs +Date: Thu May 1 23:47:42 2008 +1000 + + nv50: I cave... Add nv84 initial context values. + + I swore I'd actually do this properly and not go the horrible route + we did with nv4x, but I won't get around to it just yet with so many + *actually* interesting things to do first.. One day. + + Since someone already added nv86, why not! + +commit 1a8406795052e3ec49e400465f3211d04fd9dd86 +Author: Eric Anholt +Date: Wed Apr 30 16:03:15 2008 -0700 + + Hacking towards hooking up execbuffer. + +commit 81ba8ded7e01b21e600069977e496017c8966d66 +Author: Eric Anholt +Date: Tue Apr 29 13:47:12 2008 -0700 + + Remove the remainder of the mmfs device. + +commit 3148c1636408cc422ab83c149a8963916dd376b0 +Author: Eric Anholt +Date: Tue Apr 29 13:45:43 2008 -0700 + + Move mmfs tests over to be drm tests. + +commit dabd056bf34b389585b618cf03a297877505f06b +Author: Eric Anholt +Date: Tue Apr 29 13:30:44 2008 -0700 + + Move mmfs ioctls into the DRM. Untested. + +commit cb33133ef354b77a8cf06b16ce95a0babbe8bc6f +Author: Jesse Barnes +Date: Tue Apr 29 12:36:04 2008 -0700 + + i915: fix off by one in VGA save/restore of AR & CR regs + + Turns out it's important to save/restore AR14 in particular. + +commit f31e04a96013c059fc90c98a878de14adbea524a +Author: Maarten Maathuis +Date: Tue Apr 29 19:34:22 2008 +0200 + + nouveau: NV9x cards exist as well. + +commit 3ad8db2071d30c198403e605f2726fc5c3e46bfd +Author: Eric Anholt +Date: Mon Apr 28 16:54:53 2008 -0700 + + Rename drm_mm.c and its fuctions to drm_memrange. + + It's not really a graphics memory allocator, just something to track ranges + of address space. It doesn't involve actual allocation, and was consuming + some desired namespace. + +commit 7f269bec7ed49385de394fdbd970f463ef2060f0 +Merge: 55a9941 7f8e406 +Author: Thomas Hellstrom +Date: Mon Apr 28 12:10:44 2008 +0200 + + Merge branch 'master' into modesetting-101 + + Conflicts: + + linux-core/Makefile.kernel + linux-core/drm_compat.c + linux-core/drm_fops.c + linux-core/drm_lock.c + shared-core/drm.h + shared-core/i915_dma.c + shared-core/i915_drv.h + shared-core/i915_irq.c + +commit 7f8e4060859651993921281445ec00940c577222 +Author: Jesse Barnes +Date: Sun Apr 27 09:42:17 2008 -0700 + + Use fixed sized types in new ioctls + + Make both crtc and the command argument 32 bits to avoid any 32-on-64 compat + issues. + +commit b45fe49bcd989be4e1327c13dd734410b395761c +Author: Jesse Barnes +Date: Sat Apr 26 17:11:18 2008 -0700 + + Enum-ectomy of vblank modesetting ioctl + + Enum can be of pretty much any size since C leaves the choice of size up to the implementation. So avoid using it in new interfaces like the vblank pre- & post-modeset ioctl. Thanks to hch for spotting this. + +commit 22877864c204139fe1c46899bedd237e38f0e849 +Author: Eric Anholt +Date: Wed Apr 23 14:52:30 2008 -0700 + + Add mmap ioctl to mmfs. + +commit 8c741ed54e1be63528e79222b600f37506c6d6d2 +Author: Eric Anholt +Date: Wed Apr 23 13:06:58 2008 -0700 + + Add pread/pwrite ioctls to mmfs. + +commit c1fec43b553ea93460b58995a1229e84d8bb45b4 +Author: Eric Anholt +Date: Wed Apr 23 11:32:31 2008 -0700 + + Extend the mmfs basic test to do a couple of ioctls. + +commit 8665b666c7e2ecdee7d27e1ad540910a0223ba6d +Author: Eric Anholt +Date: Wed Apr 23 11:22:59 2008 -0700 + + Move mmfs.h userland interface to shared-core. + +commit 47a2b7dc03e35d4eaf8148b87aeea8dd96723b4d +Author: Eric Anholt +Date: Tue Apr 22 16:08:23 2008 -0700 + + Initial add of mmfs module. + +commit c82894034f611696c54c5aaf2112be638aa2cb35 +Author: Eric Anholt +Date: Tue Mar 4 15:08:24 2008 -0800 + + Clarify that drm_agp_ttm_backend is associated with a drm_ttm. + + On first looking at it I assumed it was an aspect of the ttm backend as a + whole rather than specific allocations from a backend. + +commit 55a9941977953d16b36bbf3e1dcad392ac70e1ef +Author: Kristian Høgsberg +Date: Wed Apr 23 12:43:52 2008 -0400 + + Make via compile. + + Chase the lock to it's new location. + +commit 33fa02f2d850da252d5ddd9ef7428b02de7bd6a7 +Author: Kristian Høgsberg +Date: Wed Apr 23 12:42:26 2008 -0400 + + Make radeon_ms compile. + + Remove lock functions and use pci_map_rom() instead of pci_map_rom_copy(). + +commit 10b9a116a7b7fe3acf0848de9e0cf40f8e1bcd75 +Author: Thomas Hellstrom +Date: Wed Apr 23 17:33:09 2008 +0200 + + Don't disable IRQs, just tasklets, when taking the drm lock spinlock. + +commit 9ba3aaaa1a22663ec3d8d9d1792edf10a25d0ad7 +Author: Jakob Bornecrantz +Date: Wed Apr 23 12:43:30 2008 +0200 + + Fixed unlock check on EAGAIN + +commit feff72929e94b6c17e352a2ec86b3440b9edf059 +Author: Xiang, Haihao +Date: Wed Apr 23 17:17:16 2008 +0800 + + i915: fix for compatibility mode + +commit 8dc4d4fa1f1394c2faed89760e1183287577fed3 +Author: Jesse Barnes +Date: Tue Apr 22 18:41:28 2008 -0700 + + i915: allocate devname at init time + + Since it'll be freed at unload time, we should alloc devname rather than + pointing to the DRIVER_NAME string. + +commit b57e1f7efd6e27efbf960ab11323981e016ea86e +Author: Hong Liu +Date: Fri Apr 18 16:52:04 2008 +0800 + + add sysfs entry for DVO output + + forget to add it in the previous DVO porting patch. + + Signed-off-by: Hong Liu + +commit 8a390e058fcea70b0c3a912543816bdf4c3e7c4c +Author: Hong Liu +Date: Fri Apr 18 16:49:23 2008 +0800 + + clear interrupt status before install irq + + On my 865G machine, it seems the CPU will receive interrupt before + irq_postinstall is called. This will cause kernel oops because vblank is not + inited at that time. Clear interrupt status before install seems fixing this + problem. + + Signed-off-by: Hong Liu + +commit c250104c8f81026b4191ec8b2a709ff7ab5baedb +Author: Hong Liu +Date: Fri Apr 18 16:26:41 2008 +0800 + + fix removing output_attrs + + fix a typo in removing output sysfs. + + Signed-off-by: Hong Liu + +commit b3967765c082c4fae1954ec70474fb428ef42c70 +Author: Pekka Paalanen +Date: Sun Apr 20 20:47:38 2008 +0300 + + linux-core Makefile: add GIT_REVISION + + This tries to automatically fetch a git revision string and if succeeds, + it #defines GIT_REVISION string macro. Packagers can override it by + 'make GIT_REVISION=foo'. + + Update Nouveau to use GIT_REVISION, if defined, instead of DRIVER_DATE + in struct drm_driver. + + Signed-off-by: Pekka Paalanen + +commit ce8c8425185cfe0390230b7b537f2e0514c721c6 +Author: Dave Airlie +Date: Tue Apr 22 16:08:17 2008 +1000 + + i915: gfx hw and i945gme fixes from upstream + + From Jesse and Zhenyu originally. + +commit f0e38f521790becbf9ca13ef5c579d12c6985d52 +Author: Keith Packard +Date: Sun Apr 20 16:10:05 2008 -0700 + + [I915] Handle tiled buffers in vblank tasklet + + The vblank tasklet update code must build 2D blt commands with the + appropriate tiled flags. + +commit 21dbba5a227e20dd64ce300cc78927e139a684dd +Author: Keith Packard +Date: Sun Apr 20 01:55:57 2008 -0700 + + On I965, use correct 3DSTATE_DRAWING_RECTANGLE command in vblank + + The batchbuffer submission paths were fixed to use the 965-specific command, + but the vblank tasklet was not. When the older version is sent, the 965 will + lock up. + +commit 21a93915d8a21518c5da76a739f9459ed7f99d6a +Author: Hong Liu +Date: Thu Apr 17 16:51:00 2008 +0800 + + Porting DVO stuff + + Ported from Xorg intel 2d driver. Changed interfaces definitions, which needed + to be changed later if other device wants to use these DVO stuff. + +commit 1ad1bd5bd95db71500edfcea8b46421d7f3cdb15 +Author: Thomas Hellstrom +Date: Mon Apr 14 13:52:33 2008 +0200 + + Fix buffer object map wait error. + Add some branch prediction hints. + +commit c5955c652302d66719984cb5a218cb590c74ad42 +Author: Thomas Hellstrom +Date: Mon Apr 14 12:10:50 2008 +0200 + + Fix buffer object creation validation. + + BO lock fixes. + +commit c9b73ef6daff75df27d17260a9fc84e68f1b21b4 +Author: Thomas Hellstrom +Date: Sun Apr 13 14:49:14 2008 +0200 + + Unlock the BO mutex while waiting for idle, unmapped, unfenced. + + Move unfenced checking into idle checking. + Never time out while waiting for software events like unmapped or unfenced. + +commit 65dd0e68ff0e0e354925adb7d5fffeb0ffbb485c +Author: Thomas Hellstrom +Date: Fri Apr 11 09:36:12 2008 +0200 + + Fix up buffer manager locking. + +commit b986d7d2c9090fc62c1853f62886dd124e8066c1 +Author: Keith Packard +Date: Thu Mar 27 11:40:04 2008 -0700 + + Save and restore dsparb and d_state regs + +commit 6cc2d7e7ae92bbac630d0053fc214521ce610dc6 +Merge: 5891b0b 3b32ee3 +Author: Jerome Glisse +Date: Sat Apr 12 00:15:47 2008 +0200 + + Merge branch 'modesetting-101' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + +commit 5891b0bd2ae441d738e78737a4c4826bd2e60b43 +Author: Jerome Glisse +Date: Sat Apr 12 00:15:12 2008 +0200 + + radeon_ms: rework command submission ioctl & cleanup + +commit 3b32ee36ae58f733f281a2fa569ea8a8a926bb6d +Author: Jesse Barnes +Date: Thu Apr 10 20:31:31 2008 -0700 + + Fixup Intel TV property code + + Use the new TV property creation routine and fixup the set_property code + to actually do a mode set call when properties change. + +commit 83c3acb7da1043a63d260d5443f7149b2c664b08 +Author: Jesse Barnes +Date: Thu Apr 10 20:30:12 2008 -0700 + + Split TV property creation into its own routine + + It needs to take arguments from the caller about supported TV formats, + so declare it in drm_crtc.h and export it. + +commit bee546ad696e3157b878dfa90e563786b5b5c7ac +Author: Jesse Barnes +Date: Thu Apr 10 19:02:53 2008 -0700 + + Remove structure fields & code + + Cleanup some random cruft left over from the initial port. + +commit ebd154497383e3bcb6b5c6284148aff3633a5d99 +Author: Jesse Barnes +Date: Thu Apr 10 11:27:39 2008 -0700 + + Fix masking in get_load_detect_pipe + + Start i at -1 so that the masking works right. + +commit 0a6e301e6de3421f116d1b5d8205ca4f442091e2 +Author: Jesse Barnes +Date: Thu Apr 10 11:23:55 2008 -0700 + + Keep display info in struct display_info + + Some fields had snuck into the drm_output structure. Put them back and + fill in more stuff from the EDID block. + +commit 386ea38b8e3af9bc9166d4ab63c4beb7e0e2267b +Author: Jesse Barnes +Date: Wed Apr 9 14:12:56 2008 -0700 + + Add TV out hotplug detection + + Doesn't yet work on my i915 test machine, but most of the necessary bits + should be there. + +commit b3737f3fd9210aead1f7fc4187dd05eea77ed0a6 +Author: Jesse Barnes +Date: Wed Apr 9 14:09:29 2008 -0700 + + Fix TV load detection + + Now that we can allocate load detect pipes, we can perform TV out load + detection correctly. Call the new routines and enable proper TV + detection. + +commit 6c92689dcc627886c32afd4eca8f0da25bd07183 +Author: Jesse Barnes +Date: Wed Apr 9 14:07:55 2008 -0700 + + Port pipe reservation code for load detection + + TV out needs to do load detection, which means we have to find an + available pipe to use for the detection. Port over the pipe reservation + code for this purpose. + +commit 256a96135e6b48f5d3545896f7226edea8c70a0c +Author: Jesse Barnes +Date: Wed Apr 9 14:06:36 2008 -0700 + + Add newline to debug output for output add + +commit 61a81a043cce747a32e514bf0e78fe3993a62f00 +Author: Alan Hourihane +Date: Wed Apr 9 22:07:40 2008 +0100 + + Older kernels don't have kobject_uevent_env(), so punt + the event for these older kernels. + +commit fa116081a919e716eb95fcfa421d93f10f6f0a4f +Author: Jesse Barnes +Date: Wed Apr 9 11:30:15 2008 -0700 + + Fixup sysfs output registration + + Put off registering new outputs with sysfs until they're properly configured, + or we may get duplicates if the type hasn't been set yet (as is the case with + SDVO initialization). This also means moving de-registration into the cleanup + function instead of output destroy, since the latter occurs during the normal + course of setup when an output isn't found (and therefore not registered with + sysfs yet. + +commit e3c7a0fcb0122400e5b5035125ad4fa88599f28a +Merge: a2edd07 779e826 +Author: Jesse Barnes +Date: Tue Apr 8 12:48:41 2008 -0700 + + Merge branch 'modesetting-101' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + +commit a2edd07f20df67e741026097c5d46f12296d7c9d +Author: Jesse Barnes +Date: Tue Apr 8 12:44:52 2008 -0700 + + Add devname in modeset case + + If the driver is 'modeset' enabled, it'll register it's interrupt + handler at load time. Set the devname in this case so that + /proc/interrupts makes sense. + +commit 5a3ce06f3a3dfa9412b9660c1e1f35d24c815dbb +Author: Jesse Barnes +Date: Tue Apr 8 12:42:23 2008 -0700 + + Improved DRM sysfs support + + This patch ties outputs, output properties and hotplug events into the + DRM core. Each output has a corresponding directory under the primary + DRM device (usually card0) containing dpms, edid, modes, and connection + status files. + + New hotplug change events occur when outputs are added or hotplug events + are detected. + +commit 779e826c1e2c127f4950c78a56cc314c43b7eb56 +Author: Jerome Glisse +Date: Tue Apr 8 02:18:14 2008 +0200 + + radeon_ms: command buffer validation use array of function pointer + +commit db61f02bd7e4b9d5ac416f1ef98bac1bd4d984bc +Author: Patrice Mandin +Date: Mon Apr 7 22:24:24 2008 +0200 + + Missing KERNEL_VERSION macro + +commit fee64980c4581f1c3cac4be834fa5fb663c2029b +Author: Jerome Glisse +Date: Mon Apr 7 20:49:36 2008 +0200 + + radeon_ms: another fb fix reset mode if fb changed + +commit 27c3785d3f12743a9e160238a4d00353060ec2f2 +Author: Hasso Tepper +Date: Mon Apr 7 15:27:43 2008 +0300 + + Add DragonFly BSD support for device creation + + DragonFly behaves just like FreeBSD in this regard. + +commit dfa9f0399223d86a6478bf93be879da476f93eda +Author: Ben Skeggs +Date: Mon Apr 7 13:29:11 2008 +1000 + + nouveau: enable accelerated move to sysmem + +commit c12b60b5094fe97db60cd0f18fafd1720679bd38 +Author: Ben Skeggs +Date: Mon Apr 7 13:05:51 2008 +1000 + + nouveau: enable m2mf for tt<->vram moves, fix fence_poll + +commit 060e725a0e8aa1f1157f97ca8e7dfa60d02d17ac +Author: Jerome Glisse +Date: Sun Apr 6 19:23:20 2008 +0200 + + radeon_ms: fix framebuffer code + +commit 91bfd69745dbb62dc28c57f940ff44da867e96ea +Author: Jerome Glisse +Date: Sun Apr 6 19:01:31 2008 +0200 + + radeon_ms: check for NULL fb + +commit e89710bef7691e4e9d0bc7d427542bfae6ce4258 +Author: Thomas Hellstrom +Date: Sun Apr 6 11:21:22 2008 +0200 + + Place highmem pages last in the ttm page array. + +commit c3888b97f60fbbc0b1382e5a16689eecaa2f79a5 +Author: Thomas Hellstrom +Date: Sun Apr 6 10:32:02 2008 +0200 + + Use clflush() when available for cache flushing. + +commit 51a0fdcf3fef5af57938d9958efd698e96d78803 +Author: Thomas Hellstrom +Date: Sun Apr 6 09:46:29 2008 +0200 + + [I915] Fix VRAM eviction. + +commit 87ae5b22e3120d205f520a99cea31743903d49a2 +Author: Thomas Hellstrom +Date: Sun Apr 6 09:33:50 2008 +0200 + + Fix emergency allocation accounting. + +commit 1692d30cea263a084bfea824cd8638000e97bc57 +Author: Maarten Maathuis +Date: Sat Apr 5 21:02:00 2008 +0200 + + nv50: primitive i2c interrupt handler + +commit dfc8d2b2fe70a84de53f72f0eeff911c58469089 +Author: Jerome Glisse +Date: Thu Apr 3 03:15:47 2008 +0200 + + radeon_ms: add crtc set base callback & fix palette + +commit 4dfb959238cbaac6b4db425d9349c7907f4e32fd +Author: Jerome Glisse +Date: Thu Apr 3 03:14:52 2008 +0200 + + radeon_ms: fixes fb handling + +commit 3fc444a5e8e35ffec7a1426c80c9644e5777ddbe +Author: Maarten Maathuis +Date: Thu Apr 3 01:13:31 2008 +0200 + + nv50: primitive display interrupt handler. + +commit 960042345866ff4ab7d76b56e4af60e800c60a36 +Author: Jerome Glisse +Date: Mon Mar 31 21:50:02 2008 +0200 + + radeon_ms: small fix & cleanup to command checking + +commit 562f95ea96f08e1d73a872dc87237614292c873a +Author: Dave Airlie +Date: Mon Mar 31 11:34:48 2008 +1000 + + nouveau: fix return from function.. + + dude kernel moduless use kernel errors :) + + this fixes an oops on init when this codepath hits. + +commit 09e637848a6afa54a091c4c70fdfbfbdce7ac805 +Author: Jerome Glisse +Date: Mon Mar 31 00:55:05 2008 +0200 + + radeon_ms: initial pass at command buffer validation + +commit 22d931f9664e1857e07ce7ab8aad760a4a22f15e +Author: Thomas Hellstrom +Date: Sun Mar 30 21:30:43 2008 +0200 + + Initialize the fence::error member. + +commit 1f4ba62567d32fdd32786273326e1aab17d5d412 +Author: Thomas Hellstrom +Date: Sun Mar 30 15:14:45 2008 +0200 + + [i915] Report buffer state _after_ fence submission to user-space. + This fixes a problem where the wrong bo->fence_type was reported, and + also saves some memory space. + [bo core] export the drm_bo_fill_rep_arg function. + +commit b8567bafff58cfb9d77145088fd5b8ad2e5cde6b +Author: Thomas Hellström +Date: Thu Mar 6 17:35:56 2008 +0100 + + Don't call fence::poll during irq if there are no waiters. + +commit cf3c0123a038a825d478fa10e29cd7490bab369e +Author: Maarten Maathuis +Date: Sun Mar 30 14:50:41 2008 +0200 + + nouveau: forgot to add a break + +commit 68b83a88135cd236be220dafde65c877e396eb0d +Author: Maarten Maathuis +Date: Sun Mar 30 14:46:45 2008 +0200 + + nouveau: Add ctx values for nv86. + + - Note that this may not work for all nv86. + +commit 2d9eccfd056425e4ebdf1a7b879979fd0a9d1340 +Author: Jerome Glisse +Date: Sun Mar 30 12:45:57 2008 +0200 + + radeon_ms: add hang debuging helper functions + +commit 753a4bdf1b554490f7b288c0203050b5114433c3 +Author: Dave Airlie +Date: Sun Mar 30 07:33:39 2008 +1000 + + drm/r300: fix wait interface mixup + + This interface was defined completely wrong, however userspace has only + ever used 4 values from it (0x1, 0x2, 0x3 and 0x6), so fix the interface to do what userspace actually expected but define new defines for new users to use + it properly. + +commit 1674d2817929fe4ee4e1c4762e89600119dbdc50 +Author: Oliver McFadden +Date: Sat Mar 29 17:25:44 2008 +0000 + + r300: Correctly translate the value for the R300_CMD_WAIT command. + + Previously, the R300_CMD_WAIT command would write the passed directly to the + hardware. However this is incorrect because the R300_WAIT_* values used are + internal interface values that do not map directly to the hardware. + + The new function I have added translates the R300_WAIT_* values into appropriate + values for the hardware before writing the register. + + Thanks to John Bridgman for pointing this out. :-) + +commit 0da289bafd2da72a14f3d5cf82fec836d30f7b8d +Author: Jerome Glisse +Date: Thu Mar 27 20:08:37 2008 +0100 + + radeon_ms: this is a modesetting driver, bring things up to date + +commit acb6c9ef97df999f3fa87639b1bb4f2840970f71 +Author: Dave Airlie +Date: Thu Mar 27 15:55:49 2008 +1000 + + drm: remove authentication on master exit. + + using contexts for this is bad for multiple masters + +commit a81d07f64d7557da3c4888867a20d2eec94b4ec1 +Author: Stuart Bennett +Date: Tue Mar 25 18:30:05 2008 +0000 + + nouveau: nv20 bios does not initialise PTIMER + + The wait functions depend on PTIMER, so write the old (incorrect, but working) values for uninitialised hw + +commit b0817a42e789a83454e6acba0578116829e2bf51 +Author: Dave Airlie +Date: Mon Mar 24 18:52:26 2008 +1000 + + i915: fix oops on agp=off + + Kernel bug 10289. + +commit 4323ee3e5b263a1dc8cfdf72485a20a3c1d8f144 +Merge: a244d29 36e11dd +Author: Dave Airlie +Date: Mon Mar 24 18:47:50 2008 +1000 + + Merge branch 'r500-fp' + +commit a244d2905052d3263bdcc26b295558a354702b89 +Author: Ben Skeggs +Date: Mon Mar 24 03:22:42 2008 +1100 + + nouveau: silence warning + +commit 24ba0c9c3bd0f160eb0c3a820fd407998f85fd55 +Author: Ben Skeggs +Date: Mon Mar 24 03:20:59 2008 +1100 + + nv40: voodoo - not quite. + +commit 6f4b3de284e93e8fdb133f0aadfc86d298f45916 +Author: Ben Skeggs +Date: Mon Mar 24 03:13:05 2008 +1100 + + nv40: allocate massive amount of PRAMIN for grctx on all chipsets. + + More or less a workaround for issues on some chipsets where a context + switch results in critical data in PRAMIN being overwritten by the GPU. + + The correct fix is known, but may take some time before it's a feasible + option. + +commit 36e11dd3801734ff5af9f5edb7aa698f0e2c49c2 +Author: Dave Airlie +Date: Fri Mar 21 16:59:52 2008 +1000 + + r500: fragment program upload is also used to upload constants. + + Limit frag address to 8 bits + +commit 71b66b00435a10e762a4bb7abedb263196942da4 +Merge: 6ef119a 607964e +Author: Jerome Glisse +Date: Thu Mar 20 17:44:32 2008 +0100 + + Merge branch 'modesetting-101' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + +commit 6ef119abf5d19c85fe039fd19d12e9bd64fd44df +Author: Jerome Glisse +Date: Thu Mar 20 17:43:43 2008 +0100 + + radeon_ms: fix fence + +commit 316979356f05796c5bd5a47dfc29fe48d6874b49 +Author: Dave Airlie +Date: Thu Mar 20 14:20:53 2008 +1000 + + drm: fixup r500fp submission + +commit 1021799b6ca6b195ad2d5f002e45668f69c44651 +Author: Stuart Bennett +Date: Tue Mar 18 23:12:28 2008 +0000 + + nouveau: do not set on-board timer's numerator/denominator to bad values + +commit 9e4f9082872838084a3c4f9661d65c12768d3dc4 +Author: Alex Deucher +Date: Wed Mar 19 15:37:56 2008 -0400 + + RADEON: switch over to new production microcode + + This needs to be tested thoroughly before pushing to the + kernel. + +commit d8af16d2a75f38dacb9b87a4b317790c88c6ba40 +Author: Alex Deucher +Date: Wed Mar 19 14:57:42 2008 -0400 + + RADEON: production microcode for all radeons, r1xx-r6xx + + This updated microcode is not in use yet. + +commit a3c808d8feff9dc379f71f971ca20ec3c686b0c0 +Author: Dave Airlie +Date: Wed Mar 19 16:10:37 2008 +1000 + + move some more r300 regs into not allowed on r500 + +commit d18c2c684229ec6923e1a578ae837f34e6b97422 +Author: Dave Airlie +Date: Tue Mar 18 09:07:45 2008 +1000 + + drm: add new rs690 pci id + +commit 602800a280ecaf562427eada19b118b990ab26e1 +Author: Thomas Hellstrom +Date: Mon Mar 17 11:37:10 2008 +0100 + + Evict cached_mapped relocatee before applying reloc. + + Fix that got left out after the intel-post-reloc merge. + +commit 607964ed9e5f6d86a0960bef2341e7f5de9c71da +Author: Dave Airlie +Date: Mon Mar 17 16:37:46 2008 +1000 + + drm: add master set/drop protocol + + this may not survive long - just need something for testing + +commit 2d0411cb7544ea45b5879d4f454cb9ee3c9ff5fb +Author: Dave Airlie +Date: Mon Mar 17 16:34:15 2008 +1000 + + i915: safety check the sarea map still exists + +commit e6be93b2a6f508b2284a6d352f5f0640ef1a542a +Author: Dave Airlie +Date: Mon Mar 17 16:33:15 2008 +1000 + + drm: pick correct master for cleaning up + + When a master is exiting, make sure we clean it up and not the currently + in charge master. + +commit d1513528d7e1a7bd119468087baa6839897627f4 +Author: Dave Airlie +Date: Mon Mar 17 16:32:27 2008 +1000 + + drm: select the correct master to attempt to remove the lock from. + + When destroying DRI sarea, make sure you use the master associated with the + sarea and not the one currently in charge + +commit 3add9494037e7c88b5e5a476001176784d743a26 +Author: Dave Airlie +Date: Mon Mar 17 11:08:03 2008 +1000 + + initial r500 RS and FP register and upload code + +commit 1f96e9a98245b18c99cc6a7e66372a076b9abf6b +Author: Dave Airlie +Date: Mon Mar 17 07:05:46 2008 +1000 + + drm/pcigart: fix the pci gart to use the drm_pci wrapper. + + This is the correct fix for the RS690 and hopefully the dma coherent work. + + For now we limit everybody to a 32-bit DMA mask but it is possible for + RS690 to use a 40-bit DMA mask for the GART table itself, + and the PCIE cards can use 40-bits for the table entries. + + Signed-off-by: Dave Airlie + +commit 1a2d8c4bfa96dd176ec084811ad286f95968ee52 +Author: Thomas Hellstrom +Date: Sun Mar 16 20:07:14 2008 +0100 + + Avoid unnecessary waits for command regulator pause. + +commit 3a3a9485aadced820f7619ef7f2a11e72782769f +Author: Thomas Hellstrom +Date: Sun Mar 16 11:44:35 2008 +0100 + + [via] Remove some leftover vars. + +commit b81d7b3b8d7ca83a9b79d2dbea22f00e78180516 +Author: Thomas Hellstrom +Date: Sun Mar 16 11:39:18 2008 +0100 + + [via] Allow a little larger stride for SG DMA DownloadFromScreen. + +commit 7d3d15e67de27f7c47859f36bb55002f0c9d52d6 +Author: Thomas Hellstrom +Date: Sun Mar 16 11:37:17 2008 +0100 + + [via] The millionth fixup for the millionth-1 attempt to stabilize the AGP + DMA command submission. It's worth remembering that all new bright ideas on how + to make this command reader work properly and according to docs + will probably fail :( Bring in some old code. + +commit 563fe9dcd4d08de8864ade161258df891f3db471 +Author: Thomas Hellstrom +Date: Sun Mar 16 11:29:57 2008 +0100 + + [via] Fix driver after vblank-rework merge. + +commit afa803ee40c1d06066f58a34761be58ba03badb5 +Author: Dave Airlie +Date: Sun Mar 16 15:01:27 2008 +1000 + + ati: fix rs690 igp gart by allocating the page table in 32-bit memory + +commit 5b1d9263d3c108be7360ccd3aeed4cc3a0bf1ada +Author: Dave Airlie +Date: Sun Mar 16 14:00:16 2008 +1000 + + drm/rs690: set AGP_BASE_2 to 0 + +commit dd9eb923edd15284113dc12c05fb341ad60f1b46 +Author: Dave Airlie +Date: Sun Mar 16 12:58:07 2008 +1000 + + drm: set rs690 gart base completly. + + The docs state bits 4-11 represent bits 32-39 of a 40-bit address + +commit 76946ed83df2e39e3867538e54dc743fecb4f8e8 +Author: Dave Airlie +Date: Sun Mar 16 12:56:11 2008 +1000 + + drm: this u32 should be a dma_addr_t + + doesn't fix anything but just making it consistent + +commit 1ea8a470fe9103036817ae3a960522c37901bddc +Author: Alan Hourihane +Date: Fri Mar 14 00:25:42 2008 +0000 + + fix build problems + +commit ae1bb96a7e24362500e02cf3a86bd268c2dcc835 +Author: Mike Isely +Date: Fri Mar 14 09:53:05 2008 +1000 + + drm: Fix race that can lockup the kernel + + The i915_vblank_swap() function schedules an automatic buffer swap + upon receipt of the vertical sync interrupt. Such an operation is + lengthy so it can't be allowed to happen in normal interrupt context, + thus the DRM implements this by scheduling the work in a kernel + softirq-scheduled tasklet. In order for the buffer swap to work + safely, the DRM's central lock must be taken, via a call to + drm_lock_take() located in drivers/char/drm/drm_irq.c within the + function drm_locked_tasklet_func(). The lock-taking logic uses a + non-interrupt-blocking spinlock to implement the manipulations needed + to take the lock. This semantic would be safe if all attempts to use + the spinlock only happen from process context. However this buffer + swap happens from softirq context which is really a form of interrupt + context. Thus we have an unsafe situation, in that + drm_locked_tasklet_func() can block on a spinlock already taken by a + thread in process context which will never get scheduled again because + of the blocked softirq tasklet. This wedges the kernel hard. + + To trigger this bug, run a dual-head cloned mode configuration which + uses the i915 drm, then execute an opengl application which + synchronizes buffer swaps against the vertical sync interrupt. In my + testing, a lockup always results after running anywhere from 5 minutes + to an hour and a half. I believe dual-head is needed to really + trigger the problem because then the vertical sync interrupt handling + is no longer predictable (due to being interrupt-sourced from two + different heads running at different speeds). This raises the + probability of the tasklet trying to run while the userspace DRI is + doing things to the GPU (and manipulating the DRM lock). + + The fix is to change the relevant spinlock semantics to be the + interrupt-blocking form. After this change I am no longer able to + trigger the lockup; the longest test run so far was 20 hours (test + stopped after that point). + + Note: I have examined the places where this spinlock is being + employed; all are reasonably short bounded sequences and should be + suitable for interrupts being blocked without impacting overall kernel + interrupt response latency. + + Signed-off-by: Mike Isely + +commit 631c6af4d926fd1fe73f017cfb032538cee7ea7d +Author: Alan Hourihane +Date: Thu Mar 13 11:47:37 2008 +0000 + + Fix green offset + +commit 9be916f3537599489e083437c9a948eb93004904 +Author: Alex Deucher +Date: Wed Mar 12 11:16:12 2008 -0400 + + Fix chip family for RV550 + +commit 1766e1c07b03c6ccf545469663334be762c0bddf +Author: Ben Skeggs +Date: Wed Mar 12 23:37:29 2008 +1100 + + nv50: force channel vram access through vm + + If we ever want to be able to use the 3D engine we have no choice. It + appears that the tiling setup (required for 3D on G8x) is in the page tables. + + The immediate benefit of this change however is that it's now not possible + for a client to use the GPU to render over the top of important engine setup + tables, which also live in VRAM. + + G8x VRAM size is limited to 512MiB at the moment, as we use a 1-1 mapping + of real vram pages to their offset within the start of a channel's VRAM + DMA object and only populate a single PDE for VRAM use. + +commit 88bd1e4a350d011ec44f6786e0bfdf8fb386800c +Merge: 2a618e5 612c22f +Author: Thomas Hellstrom +Date: Wed Mar 12 11:34:29 2008 +0100 + + Merge branch 'intel-post-reloc' + + Conflicts: + + linux-core/drm_compat.c + linux-core/drm_compat.h + linux-core/drm_ttm.c + shared-core/i915_dma.c + + Bump driver minor to 13 due to introduction of new + relocation type. + +commit b6dc381fabb199e70dc681e44e31452af8536313 +Merge: 7f04dd0 2a618e5 +Author: Alan Hourihane +Date: Wed Mar 12 10:18:33 2008 +0000 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + + Conflicts: + + shared-core/i915_dma.c + shared-core/i915_drv.h + shared-core/i915_irq.c + +commit 7f04dd06e6003dd492ae5ddc876121a686f49157 +Author: Alan Hourihane +Date: Wed Mar 12 09:47:52 2008 +0000 + + Add sample code to test hotplug events + +commit 2a618e5a7f6d26fe85e7d931d0ef08d9f18b1b7c +Author: Thomas Hellstrom +Date: Wed Mar 12 10:36:40 2008 +0100 + + Bug # 14712 + Disable page saving for GPU read-only TTMs. + +commit 5bebcd7a0b548b29a9859b2949b06662968cc868 +Author: Thomas Hellstrom +Date: Wed Mar 12 10:19:36 2008 +0100 + + Dont allow !sysadmin clients to alter the memory type of + NO_EVICT buffers. + +commit 88be276a427124cc545a7d89b137e4ae6dd79acb +Author: Alan Hourihane +Date: Thu Jan 17 13:04:42 2008 +0000 + + Fix for debug memory routines + +commit 32625774072f905d15024cc40ce7fd364d9ee4cd +Author: Alan Hourihane +Date: Thu Jan 17 13:04:23 2008 +0000 + + Add error message + +commit c0a1cd052ac44d1b342fa3f26afe1bd21d92b194 +Author: Thomas Hellstrom +Date: Thu Jan 17 13:10:36 2008 +0100 + + Add an emergency pinnable memory quota for root-only processes. + +commit 7bcce66a1d5c93ff9b9f20d45d5b2c33c8ca8da9 +Author: Thomas Hellstrom +Date: Wed Mar 12 10:07:56 2008 +0100 + + Fix kernel crash when we hit OOM conditions. + (Alan Hourihane) + +commit f1a681ebe5573c2ec7806ba4cb754314baef6935 +Author: Thomas Hellstrom +Date: Wed Mar 12 10:02:09 2008 +0100 + + Avoid duplicate calls to drm_ttm_bind in some cases. + +commit fa1d88e3b2de843f33c9d77c9d95db762a950a14 +Author: Thomas Hellstrom +Date: Wed Mar 12 09:56:06 2008 +0100 + + Make sure other TTM memory types than TT is really unbound when evicted. + +commit 8a18d123f55a7fb11ce333f0b1095020918b8616 +Author: Thomas Hellstrom +Date: Thu Feb 28 09:08:52 2008 +0100 + + Avoid large kmallocs. + +commit 981f515e2bd4d570ea33bb74ae82cd5b56cc9121 +Author: Dave Airlie +Date: Wed Mar 12 14:48:01 2008 +1000 + + drm: fix fd closing ordering. + + If the master fd goes away before the aiglx fd, we try and get a lock + that actually doesn't exist. + +commit cf1a2499ed9a0051bcd8627136fb53b496b6484c +Author: Alan Hourihane +Date: Tue Mar 11 21:24:29 2008 +0000 + + global hotplug events happen in the pipe A stat register, + they are not pipe A specific. Remove pipe B code. + +commit 903d9231d6f998657cc80ee6f20ded4df68e691b +Author: Alan Hourihane +Date: Tue Mar 11 20:29:37 2008 +0000 + + Add support for monitor hotplug signals/waits + + Also adjust i915 irq handling as it follows the 16bit'ism's + of the i8xx series. + +commit f13936f7fc4d4932d5c511ccec29f1c4d24dc2dc +Author: Stuart Bennett +Date: Tue Mar 11 00:33:58 2008 +0000 + + nouveau: move AGP reset to mem_init_agp + + Also, power cycle PGRAPH when resetting AGP -- it seems to fix problems encountered by p0g on nv25 + +commit 5a7f4b3074d5cda909fc7329bc91da11d89181e1 +Author: Dave Airlie +Date: Tue Mar 11 16:05:26 2008 +1000 + + drm: fix oops on unload. + + if we are unloading the module, there is no master so therefore no lock + +commit 52748d17923b7e501b707b950227864c0b64d8a1 +Author: Dave Airlie +Date: Tue Mar 11 11:49:27 2008 +1000 + + drm: hopefully fix cursors on 965 + +commit a7e6ca62ad0d9c3c45fd9e1d81b59c2db2d714cf +Merge: a7dc4d0 9f19e79 +Author: Jerome Glisse +Date: Mon Mar 10 23:36:27 2008 +0100 + + Merge branch 'modesetting-101' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + +commit a7dc4d08b9b4f8fe6fcaa4c778f6dd3718d1e36a +Author: Jerome Glisse +Date: Mon Mar 10 23:35:07 2008 +0100 + + rradeon_ms: rework fence code and bring radeon ms up to date + +commit 07ba3b7193f1a50c3ef0509f9e37dab41457f81b +Author: Dave Airlie +Date: Mon Mar 10 18:30:17 2008 +1000 + + remove unneeded load call + +commit 2848f048616c2c97f02701386ee73137a1307e2c +Author: Keith Packard +Date: Thu Jan 24 11:46:45 2008 -0800 + + Switch from PIPE_VBLANK to PIPE_EVENT interrupts. + + My 965GM gets interrupts stuck when using the old PIPE_VBLANK interrupt. + Switch to the PIPE_EVENT interrupt mechanism, and set the PIPE*STAT + registers to use START_VBLANK on 965 and VBLANK on previous chips. + +commit ce3733572e4eea6d9adb167d8fccac745455445b +Author: Dave Airlie +Date: Sat Mar 8 08:30:03 2008 +1000 + + drm/radeon: check sarea_priv exists + +commit 9f19e79f955281b9de393219e4ad9835ffe29c49 +Author: Dave Airlie +Date: Fri Mar 7 17:09:51 2008 +1100 + + drm: we already worked out the pitch. multiplying by 4 is just madness.. + +commit 1ccccbd4ce3463edb459eb193feb572938fce19e +Author: Ben Skeggs +Date: Fri Mar 7 15:08:59 2008 +1100 + + nouveau: redo channel idle detection + + Will hopefully work a bit better than previous code, which depended on + knowing the channel's most recent PUT value. Some chips always return + 0 on reading these regs, and currently userspace is the only other entity + which knows the value. + +commit cd924de02927a091c517b0ac6b9cd8f065ce448c +Author: Ben Skeggs +Date: Fri Mar 7 14:38:05 2008 +1100 + + nouveau: don't touch NV_USER regs on channel destroy. + + Not only was this entirely pointless, it actually causes my NV30GL to + die randomly when channels are destroyed. + +commit 33cb42a9f7c7c4f4dd91756af55de7352944efa4 +Author: Dave Airlie +Date: Fri Mar 7 13:03:42 2008 +1100 + + make startup of Xorg smoother if the mode doesn't change. + + just flip the framebuffer in when required. + +commit cf28ca4212662c3c7e4bfbe51aee307ac539fb3d +Author: Dave Airlie +Date: Fri Mar 7 13:03:32 2008 +1100 + + actually turn the irq off + +commit 348d95e00be73b650dabcf121e6b18d669bf4192 +Author: Dave Airlie +Date: Fri Mar 7 12:25:26 2008 +1100 + + worst merge effort ever + +commit 47b7ec71fefc2574293c48172c563f549c31f87a +Author: Dave Airlie +Date: Fri Mar 7 12:15:38 2008 +1100 + + drm/modesetting: fixup irq removal on exit + +commit f96baf1e1ec10768ea2027f75ebaef46f7d7f30a +Merge: ccae12a 2540ea7 +Author: Dave Airlie +Date: Fri Mar 7 11:59:21 2008 +1100 + + Merge branch 'master' of ../../drm into modesetting-101 + +commit 2540ea7dc6c0c4f0ebca3370d6ec7359e4276e13 +Author: Dave Airlie +Date: Fri Mar 7 09:29:35 2008 +1000 + + flush_agp_mappings commit + +commit ccae12a837e7b17c4e9211295ecbd18807020742 +Author: Dave Airlie +Date: Fri Mar 7 08:58:24 2008 +1000 + + I really screwed up that merge somehow + +commit add7d21c79e2bd2012d92bb0043023230ec9aa74 +Author: Dave Airlie +Date: Fri Mar 7 08:56:20 2008 +1000 + + drm: fixup for new sysfs API + +commit 48a166af14d7455835b9dc2ffd831347d18635d2 +Author: Dave Airlie +Date: Fri Mar 7 08:49:27 2008 +1000 + + woah somehow got these upstream + +commit 92a30dd608c2838dea97efc04e1447056f37d0b5 +Author: Dave Airlie +Date: Thu Mar 6 14:43:23 2008 +1000 + + drm/bo: allow non-suser priv to add kernel BOs. + + modprobe can be run with dropped capabilities we still want the kernel bos + to work. + +commit fef1c93aa87a1ccbc473749a7e42557fc90a1fca +Author: Alan Hourihane +Date: Wed Mar 5 10:33:57 2008 +0000 + + build fix + +commit b87c7ff79ee88ec39a285bc17bd2996252b9fd48 +Author: Alan Hourihane +Date: Wed Mar 5 10:33:16 2008 +0000 + + Add property info. + + fix bo handle + +commit 1a959a2095aef397ea14a6f6cbdf2a035ec0eb5c +Author: Alan Hourihane +Date: Tue Mar 4 17:53:04 2008 +0000 + + Check mode before adding to EDID + +commit 8bfe29d9e44690a3896406acb25ca654dfad054d +Author: Alan Hourihane +Date: Tue Mar 4 17:52:37 2008 +0000 + + Use ARRAY_SIZE + +commit 3ea1902be993e88c068ce67355e2b3d253d1c9f2 +Author: Alan Hourihane +Date: Tue Mar 4 17:51:56 2008 +0000 + + propogate failed fixups back up + +commit 5662934ee467c3a29f9551a40fc7b2f6ee16280a +Author: Alan Hourihane +Date: Tue Mar 4 17:50:59 2008 +0000 + + Fix connector description table + +commit 44a2209790e3f9651b72a884cc8539144b619d1c +Merge: e00dea8 d5c0101 +Author: Dave Airlie +Date: Thu Mar 6 05:39:07 2008 +1000 + + Merge branch 'master' of ../../drm into modesetting-101 + + Conflicts: + + shared-core/drm.h + +commit d5c0101252e9f48ef1b59f48c05fea7007df97f0 +Author: Dave Airlie +Date: Mon Feb 18 10:39:21 2008 +1000 + + ttm: make sure userspace can't destroy kernel create memory managers + + this adds something to say the kernel initialised the memory region not + the userspace. and blocks userspace from deallocating kernel areas + +commit 180c9188f4cb7163f1e3e7d5098eaabf29a98540 +Author: Dave Airlie +Date: Wed Feb 20 13:27:10 2008 +1000 + + drm/ttm: add ioctl to get back memory managed area sized + + taken from modesetting branch but could be useful outside it. + +commit e00dea812ddb9b483de9f58f7a7aa7105427512d +Merge: f78cdac 1257459 +Author: Dave Airlie +Date: Thu Mar 6 05:26:23 2008 +1000 + + Merge branch 'master' of ../../drm into modesetting-101 + + Conflicts: + + linux-core/drmP.h + linux-core/drm_drv.c + linux-core/drm_proc.c + linux-core/drm_stub.c + linux-core/drm_sysfs.c + +commit 12574590cdf7871755d1939463ca6898251fd0d1 +Author: Dave Airlie +Date: Thu Mar 6 05:21:50 2008 +1000 + + drm: reorganise minor number handling using code from modesetting branch + + Rip out the whole head thing and replace it with an idr and drm_minor + structure. + +commit a875821f7b19a1bcee238cef5c3b507d2869542d +Author: Benjamin Herrenschmidt +Date: Wed Mar 5 19:25:03 2008 +1000 + + drm: Fix for non-coherent DMA PowerPC + + This patch fixes bits of the DRM so to make the radeon DRI work on + non-cache coherent PCI DMA variants of the PowerPC processors. + + It moves the few places that needs change to wrappers to that + other architectures with similar issues can easily add their + own changes to those wrappers, at least until we have more useful + generic kernel API. + + Signed-off-by: Benjamin Herrenschmidt + +commit 638353103d009d44bd5bdbe97cc7cef1bf011cdf +Author: Xiang, Haihao +Date: Wed Mar 5 15:08:46 2008 +0800 + + i915: Evict if relocatee buffer is CACHED_MAPPED before + writting relocations, otherwise the GPU probably sees some + inconsistent data. Fix fd.o bug#14656 + +commit f78cdac8e512642db1aaf09bf9178e23ede25586 +Author: Dave Airlie +Date: Wed Mar 5 15:28:59 2008 +1000 + + fixup previous merge + +commit 4dbf447f4305e3c2aa8914b5ccfc07d9bf8ef28e +Author: Dave Airlie +Date: Wed Mar 5 15:28:38 2008 +1000 + + drm: fixup compat with old x.org drivers + +commit 4aa7efe398911bd58fb348703444a92114e45114 +Author: Dave Airlie +Date: Wed Mar 5 10:41:54 2008 +1000 + + libdrm: fix warnings in mode code + +commit 43891ff2d0176f013796b3c2a340b7d379d703ee +Merge: 81db485 a6a2f2c +Author: Dave Airlie +Date: Wed Mar 5 10:37:02 2008 +1000 + + Merge remote branch 'origin/master' into modesetting-101 + + Conflicts: + + linux-core/drm_compat.c + +commit 81db48536c9d7bb23c448af6a6f1de81df755585 +Author: Dave Airlie +Date: Wed Mar 5 10:31:43 2008 +1000 + + remove unused functions + include header file + +commit a6a2f2c8c491617de702dc7d62bb55cbada4d42b +Author: Eric Anholt +Date: Tue Mar 4 13:45:41 2008 -0800 + + Clarify when WAIT_LAZY is relevant to users. + +commit 3332a0add63162222bd9c829117cd7e30d981aa7 +Author: Eric Anholt +Date: Wed Jan 30 19:02:56 2008 -0800 + + Remove unused DRM_FENCE_FLAG_WAIT_IGNORE_SIGNALS. + +commit d41846adb72ba89c94ea1164e366032b1d36bd55 +Author: Eric Anholt +Date: Tue Mar 4 13:35:23 2008 -0800 + + Clarify through the names what drm_ttm_alloc_pages() and friend actually did. + + These are all about the page directory (pointers to pages) rather than the + actual pages backing the allocation. + +commit eedf3fa2f08eb774a36109c2fbda7207bf83fbe9 +Author: Eric Anholt +Date: Tue Mar 4 12:16:51 2008 -0800 + + Don't shortcut the info syscall for drmBOBusy on nonshareable objects. + + This broke the results when you're trying to check if a buffer you dispatched + some time ago is done being rendered from. + +commit 63fd6f284ddd1096d34b39941683ae244c1e01fc +Author: Zou Nan hai +Date: Mon Mar 3 14:49:49 2008 +0800 + + [i915] 2D driver may reset Frame count value, this may lead driver + to leap it's vblank count a huge value. + This will stall some applications that switch video mode if vblank_mode is set to a non zero value in drirc. + +commit 9c5ba9f5d153877ab2e7cb623cab5607aa5cd4a8 +Author: Alan Hourihane +Date: Sun Mar 2 21:48:40 2008 +0000 + + Add FENCE registers to MMIO list + +commit 09999c90ab1bf3f7d8b277895c962c8a7b3afc18 +Author: Patrice Mandin +Date: Fri Feb 29 21:57:40 2008 +0100 + + FIX_KMAP_BEGIN requires CONFIG_HIMEM (see include/asm-i386.h/fixmap.h) + +commit 612c22f131a25915196e69d7ec1adb6f4ec84a60 +Author: Thomas Hellstrom +Date: Fri Feb 29 15:38:55 2008 +0100 + + Working revision. + +commit 1d068973d5f5e6d8d14b4c0c6e28588107aafc6f +Author: Thomas Hellstrom +Date: Fri Feb 29 13:31:14 2008 +0100 + + Fix compilation breakage on x86-64. + +commit 2305100c0fce9ec86a22660e5fed54791cff030b +Author: Thomas Hellstrom +Date: Fri Feb 29 13:25:55 2008 +0100 + + More post-ioctl work. + +commit 0e72819629741339af46d0e303f33482acdf0972 +Author: Dave Airlie +Date: Fri Feb 29 14:07:29 2008 +1000 + + drm: change fb api to take a bo handle not the bo pointer. + +commit cdbd616ea5f0ee491ff82cac74b918a14b039917 +Author: Dave Airlie +Date: Fri Feb 29 10:16:24 2008 +1000 + + agp: export the correct symbol + +commit 8ef838e5ff7b3c005d7fbc725e17bcccd0e1e1eb +Author: Thomas Hellstrom +Date: Thu Feb 28 13:47:15 2008 +0100 + + Add a compat kmap_atomic_prot_pfn to do quick kernel map / unmaps of + + PCI- or high memory. + This is substantially more efficient than drm_bo_kmap, + since the mapping only lives on a single processor. + Unmapping is done use kunmap_atomic(). Flushes only a single tlb() entry. + + Add a support utility int drm_bo_pfn_prot() that returns the + pfn and desired page protection for a given bo offset. + + This is all intended for relocations in bound TTMS or vram. + Mapping-accessing-unmapping must be atomic, either using preempt_xx() macros + or a spinlock. + +commit 28d4d02d6791c15f61b718039f1d4b907f0e31e9 +Author: Thomas Hellstrom +Date: Thu Feb 28 14:05:53 2008 +0100 + + Initial commit. + +commit 40c9e6a26dd251fe2bf207bb259ba7e4a7704fbe +Author: Thomas Hellstrom +Date: Thu Feb 28 13:47:15 2008 +0100 + + Add a compat kmap_atomic_prot_pfn to do quick kernel map / unmaps of + PCI- or high memory. + This is substantially more efficient than drm_bo_kmap, + since the mapping only lives on a single processor. + Unmapping is done use kunmap_atomic(). Flushes only a single tlb() entry. + + Add a support utility int drm_bo_pfn_prot() that returns the + pfn and desired page protection for a given bo offset. + + This is all intended for relocations in bound TTMS or vram. + Mapping-accessing-unmapping must be atomic, either using preempt_xx() macros + or a spinlock. + +commit 01dcc47d895997f77c9457558e974d41c23ed4e1 +Author: Dave Airlie +Date: Thu Feb 28 16:24:17 2008 +1000 + + drm: add modesetting as a driver feature. + + This change adds a driver feature that for i915 is controlled by a module + parameter. You now need to do insmod i915.ko modeset=1 to enable it the + modesetting paths. + + It also fixes up lots of X paths. I can run my new DDX driver on this code + with and without modesetting enabled + +commit 132ba667f4a88bb182e2d2abc7c4e60699398380 +Author: Dave Airlie +Date: Thu Feb 28 12:59:39 2008 +1000 + + drm: add a check for if modesetting is supported. + + This is Linux only code, it just uses sysfs to see if a control + device has been registered on the requested PCI ID + +commit fd595fa4dc6f788a8a1e1b56178e15f411706cb9 +Author: Thomas Hellstrom +Date: Wed Feb 27 21:44:40 2008 +0100 + + Reinstate buffer idle before applying relocations. + +commit 72983ff30183745cd96760aa07b857c44daebde7 +Author: Thomas Hellstrom +Date: Wed Feb 27 19:46:28 2008 +0100 + + Don't wait for buffer idle before applying relocations. + +commit 75c9e0d3462f04766d490fac5cc93569957a8365 +Author: Jerome Glisse +Date: Tue Feb 26 23:30:45 2008 +0100 + + radeon: remove TTM from an earlier merge + +commit 1e66322633943bc27bf5e68609f564fa95e6e6a1 +Merge: 73cb02b e87cec1 +Author: Alan Hourihane +Date: Tue Feb 26 15:42:41 2008 +0000 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + + Conflicts: + + shared-core/i915_dma.c + +commit 73cb02b5430b3881cbce5fb4852ac573c11ff831 +Author: Alan Hourihane +Date: Tue Feb 26 15:21:44 2008 +0000 + + DRM_INFO -> DRM_DEBUG + +commit 191385d51880d5757c8038ff4b46ee5ccb3561c1 +Author: Alan Hourihane +Date: Tue Feb 26 15:20:59 2008 +0000 + + DRM_INFO -> DRM_DEBUG + +commit 89f65c50d70fd2165433ead3cfaa88ee9519e261 +Author: Alan Hourihane +Date: Tue Feb 26 15:20:29 2008 +0000 + + define PRETHAW + +commit 2476cb209ebbb11edace4bbce0cfaff4e1599dca +Author: Alan Hourihane +Date: Fri Feb 22 11:46:22 2008 +0000 + + Implement short circuit for base change only + + Allow mode to be set with fb_id set to -1, meaning set + the mode with the current fb (if we have one bound). + + Allow intelfb to hook back up it's fb if modesetting + clears it (maybe temporary). + + Move any crtc->fb related register changes to set_base + in intel_fb. + + General intelfb cleanups. + +commit e87cec19687089f9f268ec0eb81b57e6fb8de6a9 +Author: Thomas Hellstrom +Date: Tue Feb 26 10:47:05 2008 +0100 + + [i915] Relocation fixes. + +commit b92e343dc46212b665f0465274ef6767882bb10c +Author: Dave Airlie +Date: Tue Feb 26 16:19:54 2008 +1000 + + i915: fix typos + +commit 35d1b13b4a574faf3a95bf3b7cdd14897ef07f67 +Author: Dave Airlie +Date: Tue Feb 26 16:11:39 2008 +1000 + + i915_mmio: add overlay regs + +commit 879fb12e289e8997ef325dd5b0068d0d4d6c26df +Author: Dave Airlie +Date: Tue Feb 26 17:11:03 2008 +1100 + + drm: fix pick crtcs mode selection code + +commit 56bb29cf37c27b283efcd1a32d3583393e5208ea +Author: Thomas Hellstrom +Date: Tue Feb 26 00:01:09 2008 +0100 + + Make the execbuffer code reasonably safe against errors. + + In particular -EAGAINs, which should be common during Xserver operation. + Also handle the fence creation failure case. + +commit d6098db1409e8ee45052920d3acdd3b6f2cb80aa +Author: Roland Scheidegger +Date: Sat Feb 23 11:01:36 2008 +0100 + + fix texture uploads with large 3d textures (bug 13980) + + Texture uploads could hit the blitter coordinate limit, adjust the texture + offset when uploading the pieces. Make sure to check the end address of the + upload too. + +commit 20d0e539160fcbdd65ecbe188ac1ce2800af1b5c +Author: Jesse Barnes +Date: Fri Feb 22 13:57:38 2008 -0800 + + i915: put ARX back into index mode before doing restore + + Fixes resume from hibernate in some configurations. + +commit 0d32015974f019e8d2ea1eb48acd9e082389d9c5 +Author: Maarten Maathuis +Date: Fri Feb 22 13:41:05 2008 +0100 + + nouveau: Remove some random (french) comment. + +commit 7e5f9c8bd33c503fef9bea20b955a5a48e255621 +Author: Maarten Maathuis +Date: Fri Feb 22 13:35:13 2008 +0100 + + nouveau: A single define of dma skips is more than enough. + +commit b7086e6ae5632ad3c0f7c54ffd641519959d84a6 +Author: Kristian Høgsberg +Date: Fri Feb 22 11:22:52 2008 -0500 + + Fix one last occurance of struct _drm_i915_batchbuffer. + + Thanks to Todd Merrill for pointing it out. + +commit a72399da2a89aecdcf293bc262d76d8c6e10d0ef +Author: Alan Hourihane +Date: Fri Feb 22 11:38:08 2008 +0000 + + silence warning + +commit b0fee67a305cf37cf2a71d6c3753fba825400b71 +Author: Kristian Høgsberg +Date: Fri Feb 22 00:12:39 2008 -0500 + + i915: Remove leading underscore from struct tags. + + This matches the changes in mesa to use the system drm includes + for the definitions of the drm ioctl structs. + +commit fad1db2d73f8dd95f17db10c7ea381c7774e3c29 +Author: Dave Airlie +Date: Thu Feb 21 15:58:56 2008 +1000 + + modesetting: fix memory leak and misallocation + +commit cdad850ebc3570e5ff5a0996f36832c965aa8a1d +Author: Dave Airlie +Date: Wed Feb 20 13:27:10 2008 +1000 + + add ioctl to get back memory managed area sized - used for kernel inited areas + +commit 0d1cb1e8408d497fec66d9f31603f93800049c75 +Author: Dave Airlie +Date: Wed Feb 20 13:26:40 2008 +1000 + + hopefully shit works now without this... + +commit e85ec6693ac85a75da1f4b20beee255b6672cb33 +Merge: ea3de6d 32c6792 +Author: Alan Hourihane +Date: Thu Feb 21 23:56:27 2008 +0000 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + +commit 32c67922b722e375268789600cd89b80749e7a71 +Author: Kristian Høgsberg +Date: Thu Feb 21 15:31:48 2008 -0500 + + Don't free irq resources until after we've unregistered the handler. + +commit ea3de6daa4226cdcc4b50c339e0df6130014d2fe +Merge: 3f6c8f6 374b41e +Author: Alan Hourihane +Date: Thu Feb 21 11:37:07 2008 +0000 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + + Conflicts: + + linux-core/drm_sysfs.c + +commit 374b41e5bcdb5c22471c8c16dd794ac54c4f76d2 +Author: Michel Dänzer +Date: Thu Feb 21 11:49:38 2008 +0100 + + linux: Clean up vblank related resources from drm_irq_uninstall(). + + This fixes at least two problems: + + * The vblank_disable_fn timer callback could get called after the DRM was + de-initialized, e.g. on X server shutdown. + * Leak of vblank related resources when disabling and re-enabling the IRQ, e.g. + on an X server reset. + +commit 9d1061b8cfaf91bff6b55398c6059be97c2e0165 +Author: Alan Hourihane +Date: Wed Feb 20 22:22:49 2008 +0000 + + fix SAREA + +commit 3f6c8f64aa8c3a9e427d453433e828693fb4e017 +Author: Alan Hourihane +Date: Wed Feb 20 22:22:49 2008 +0000 + + fix SAREA + +commit 88cb873045b76bf947f45fb127baa96f055ad32c +Author: Alan Hourihane +Date: Wed Feb 20 19:54:36 2008 +0000 + + minor test fixes + +commit 66cd6bd66667433f56feecdcc94a2bb228d5a7ca +Author: Alan Hourihane +Date: Tue Feb 19 15:32:00 2008 +0000 + + compatibility code for pci_get_bus_and_slot() + +commit e484681a43964502bf7e61a1701bb85ab6befab3 +Author: Dave Airlie +Date: Wed Feb 20 11:44:10 2008 +1000 + + remove more offset + +commit 8844245cfcc5b19caafc772fd457401ab3253a28 +Author: Dave Airlie +Date: Wed Feb 20 10:51:19 2008 +1000 + + drm/fb: get rid of offset from structure use bo offset + +commit 2c409f9a07a9d815b95fc8a5a4705d7988afe5df +Author: Dave Airlie +Date: Mon Feb 18 10:39:21 2008 +1000 + + ttm: make sure userspace can't destroy kernel create memory managers + +commit 6c41e5381fb8ea890943b6679fe6ae7ac4cfea4d +Author: Dave Airlie +Date: Wed Feb 20 10:02:20 2008 +1000 + + drm: add support for passing state into the suspend hooks. + + fix i915 driver to use state for hibernate save avoidance. + + Signed-off-by: Dave Airlie + +commit 8caf6e95712bfae8d1a42ffabafcbb9686766116 +Author: Alan Hourihane +Date: Tue Feb 19 15:17:24 2008 +0000 + + Fix up conflicts for DRI2 (untested) + +commit f24ed2ad6c66e50268fd175146a1661ae4bbd350 +Merge: 2b1c9cd 5d8c754 +Author: Alan Hourihane +Date: Mon Feb 18 22:35:46 2008 +0000 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + + Conflicts: + + linux-core/i915_fence.c + linux-core/via_fence.c + shared-core/i915_dma.c + shared-core/i915_drv.h + shared-core/i915_irq.c + +commit 5d8c754bc2c720d70bbdeca6b294660105717a62 +Author: Keith Packard +Date: Sat Feb 16 19:19:29 2008 -0800 + + [915]: more registers for S3 (DSPCLK_GATE_D, CACHE_MODE_0, MI_ARB_STATE) + + Failing to preserve the MI_ARB_STATE register was causing FIFO underruns on + the VGA output on my HP 2510p after resume. + +commit cd87e6352bf529ae0bc57e8434ddfccec3660d9a +Author: Stephane Marchesin +Date: Sat Feb 16 03:50:10 2008 +0100 + + nouveau: no GART on ia64 either. + +commit 2b1c9cd696049d23845870329d2b61a5873f7b13 +Author: Jesse Barnes +Date: Fri Feb 15 16:13:21 2008 -0800 + + i915: initial (and untested) TV out support + + Ported from xf86-video-intel. Still need to tie in TV modes somehow, though + preferably w/o using the properties mechanism. + +commit 15cbde683f5006b541b22c41ff840aefb017ff8e +Author: Ben Skeggs +Date: Sat Feb 16 04:33:27 2008 +1100 + + nv40: actually init all tile regs. + +commit 088b38382962a9dccca59a53af2444a1fe8bc18f +Author: Dave Airlie +Date: Fri Feb 15 16:42:44 2008 +1000 + + fb: fixup the offset by getting it from the right place + +commit 222092a1a810b67b014ad6881f0c028ec6563329 +Author: Dave Airlie +Date: Fri Feb 15 16:15:04 2008 +1000 + + various fixes from trying to get userspace started + +commit 75b01cf996f2efdd72c5280238460443d5d1fbc7 +Author: Dave Airlie +Date: Fri Feb 15 10:04:28 2008 +1000 + + switch naming to new proposed scheme + +commit f2f8ace3e1342d83096bf392922130d39cd86ec2 +Author: Dave Airlie +Date: Fri Feb 15 09:57:30 2008 +1000 + + remove drm_minors_limit + +commit 8bf8cd63bb4631b57ceb27058f81d767a94edc74 +Author: Dave Airlie +Date: Thu Feb 14 07:37:34 2008 +1000 + + missing bits + +commit 373dbcf8b25750967e9ba24433cff872df41cb74 +Author: Kristian Høgsberg +Date: Tue Feb 5 13:27:16 2008 -0500 + + i915: Add a dri2 init path that gets the lock from the dri2 sarea. + +commit db3f03ae3538bea3d29ef66ac24d9a1f54cff418 +Author: Kristian Høgsberg +Date: Tue Feb 12 16:08:18 2008 -0500 + + i915: Only look up dev_priv->mmio_map if it's not already set up + +commit ee15459483d50b2efe630051b45f36cfbb351683 +Author: Kristian Høgsberg +Date: Tue Feb 5 12:27:48 2008 -0500 + + i915: Add I915_PARAM_CHIPSET_ID param to get chipset ID. + +commit 4feb0638f1a8eb8527647ff47312ee61e3f683f9 +Author: Kristian Høgsberg +Date: Tue Feb 5 12:25:22 2008 -0500 + + i915: Make sarea_priv setup optional. + +commit a4fc1d7ac6be8d2648acda463723d56c68e4122e +Author: Dave Airlie +Date: Wed Feb 13 16:30:15 2008 +1000 + + start moving over to proper hierarchy wrt master accesses + +commit 0fbee62ec14d08714dbc558dd20cc00b9a79c042 +Author: Dave Airlie +Date: Wed Feb 13 15:19:42 2008 +1000 + + major port of multi-master ideas into modesetting + +commit db85ed25afc616acfaadb21facf6066354f9d490 +Author: Dave Airlie +Date: Wed Feb 13 12:20:02 2008 +1000 + + Revert "After the previous revert fix libdrm to start at minor 1" + + This reverts commit f51dc37d75b0b1b8e5636f8f2c201e29986517ea. + + Conflicts: + + tests/modedemo/demo.c + +commit f276c845bde4c712aa383540a2dd2055ecc00031 +Author: Dave Airlie +Date: Wed Feb 13 12:12:52 2008 +1000 + + drm: re-write minor number allocation to use an idr. + + Fixup the minor number allocation scheme to use an idr and move the control + nodes up higher. + +commit 04257f1a5a28550dc430d8051bb58fd0ac34e77d +Author: Jerome Glisse +Date: Sat Feb 9 18:23:35 2008 +0100 + + radeon_ms: bring radeon_ms up to date with lastest changes + +commit d63b57749f097b36df04c6beff9b35a1dd859523 +Author: Jesse Barnes +Date: Thu Feb 7 17:33:28 2008 -0800 + + Restore pipeconf regs unconditionally + + On many chipsets, the checks for DPLL enable or VGA mode will prevent the + pipeconf regs from being restored, which could result in a blank display or X + failing to come back after resume. So restore them unconditionally along with + actually restoring pipe B's palette correctly. + +commit db2a1a223b94a5da9c5483b7963660c70052f025 +Author: Jakob Bornecrantz +Date: Thu Feb 7 23:32:59 2008 +0100 + + Added you can now clone displays in modedemo + +commit f51dc37d75b0b1b8e5636f8f2c201e29986517ea +Author: Alan Hourihane +Date: Thu Feb 7 22:21:50 2008 +0000 + + After the previous revert fix libdrm to start at minor 1 + and fixup the demos + +commit fe83c068612dd1abef8cf6d224b6b0330604a8f1 +Author: Alan Hourihane +Date: Thu Feb 7 21:13:36 2008 +0000 + + Revert "DRM_CONTROL_ALLOW logic was reversed" + + This reverts commit 7af1bb874d9b8b1b8760ad200cee587c41c23434. + +commit 6f19473191ae543fcc199d252c5865c0734d38ad +Author: Jesse Barnes +Date: Thu Feb 7 11:21:09 2008 -0800 + + Fix saveGR array size + + Make sure we have enough room for all the GR registers or we'll end up + clobbering the AR index register (which should actually be harmless + unless the BIOS is making an assumption about it). + +commit 8b6c96dedd4ba5dfbfec6a7c831d566e31d28781 +Author: Jesse Barnes +Date: Thu Feb 7 10:48:08 2008 -0800 + + i915: save/restore interrupt state + + On resume, if the interrupt state isn't restored correctly, we may end + up with a flood of unexpected or ill-timed interrupts, which could cause + the kernel to disable the interrupt or vblank events to happen at the + wrong time. So save/restore them properly. + +commit 79d69285202b55f269aa88a6bcda257257c9dee3 +Author: Jesse Barnes +Date: Thu Feb 7 10:40:06 2008 -0800 + + Fix vblank enable/disable callbacks + + There were two problems with the existing callback code: the vblank + enable callback happened multiple times per disable, making drivers more + complex than they had to be, and there was a race between the final + decrement of the vblank usage counter and the next enable call, which + could have resulted in a put->schedule disable->get->enable->disable + sequence, which would be bad. + + So add a new vblank_enabled array to track vblank enable on per-pipe + basis, and add a lock to protect it along with the refcount + + enable/disable calls to fix the race. + +commit 2ceafcccb77723a464abd51d07e664933e117b6e +Author: Jakob Bornecrantz +Date: Thu Feb 7 19:32:20 2008 +0100 + + Wrong open call + +commit c8b45e9362aa16fed08540996af6d0b1e2e730d0 +Author: Jakob Bornecrantz +Date: Thu Feb 7 19:25:52 2008 +0100 + + Added userspace part of hotplug ioctl and demo + +commit 0618ac8a07d834e469cb96818a1dfee6f50662b8 +Author: Jakob Bornecrantz +Date: Thu Feb 7 19:24:58 2008 +0100 + + Added kernel part of hotplug ioctl + +commit 34b76e0fac579e4afd269ebd3cbcbdd0416ec944 +Author: Jakob Bornecrantz +Date: Thu Feb 7 19:23:27 2008 +0100 + + Added hotplug ioctl + +commit 87d5f9cb2d2812c1da726e38965f0eb78c2b8dfa +Author: Jakob Bornecrantz +Date: Thu Feb 7 19:22:38 2008 +0100 + + Small update to modedemo + +commit 516c7a7b28ebf4bba797eaa718450b51aa772c6e +Author: Alan Hourihane +Date: Tue Feb 5 15:30:28 2008 +0000 + + update app to cycle through 4 fbdev's + +commit 127cb1ff9a7bbb7af73cc418a7adc30d68c454d2 +Author: Alan Hourihane +Date: Tue Feb 5 15:24:29 2008 +0000 + + tweak it + +commit 936e32b08c05c9658cc51cd8fe118e0342733a79 +Author: Alan Hourihane +Date: Tue Feb 5 15:18:05 2008 +0000 + + make modefb/modedemo match each others test output. + +commit 5997e10ca75ac87fd54b3bc0035938e1a9ad7929 +Author: Alan Hourihane +Date: Tue Feb 5 15:15:13 2008 +0000 + + consistency + +commit 7af1bb874d9b8b1b8760ad200cee587c41c23434 +Author: Alan Hourihane +Date: Tue Feb 5 15:12:46 2008 +0000 + + DRM_CONTROL_ALLOW logic was reversed + +commit 53937a189f8dbe2dd82fb97c0e88454d29a6c7cd +Author: Alan Hourihane +Date: Tue Feb 5 10:12:21 2008 +0000 + + build fix for older kernels + +commit de0084590bc34c2c23cb3d7a754f3e98059f4cf2 +Author: Alan Hourihane +Date: Tue Feb 5 10:11:46 2008 +0000 + + fix some warnings + +commit 5e81a40f3b531ef95f84581a40b5a5badd9ee986 +Author: Alan Hourihane +Date: Tue Feb 5 10:11:24 2008 +0000 + + build fix for older kernels + +commit f2c706e24782940582b75d5286f9bbf2fe37f0cd +Author: Alan Hourihane +Date: Tue Feb 5 10:11:01 2008 +0000 + + Fix function declaration + +commit 7cc825f5946659ad586fd4aa4fd867a1373f3373 +Author: Alan Hourihane +Date: Tue Feb 5 10:10:36 2008 +0000 + + Add missing round_jiffies_relative() for older kernels + +commit 76748efae2f51409813eeb6b91b783c73cb2845e +Author: Thomas Hellstrom +Date: Tue Feb 5 10:35:56 2008 +0100 + + i915: Re-report breadcrumbs on poll to the fence manager, + + since a breadcrumb may actually turn up before a corresponding fence object + has been placed on the fence ring. + +commit c9772f8c037667ed3586337f90904e7978f8ab14 +Author: Alan Hourihane +Date: Tue Feb 5 09:28:51 2008 +0000 + + consistency + +commit 709aa4629321533bfa30c72c4e33f229c895358a +Author: Alan Hourihane +Date: Tue Feb 5 09:28:32 2008 +0000 + + Remove duplicate + +commit d8bbd02a6086ebe302859cec22c503d32ed77dc6 +Author: Jakob Bornecrantz +Date: Mon Feb 4 20:51:59 2008 +0100 + + Modedemo now uses two crtc and output pairs + +commit a0781e762295ce3d5f6e839d437a0de505cefa3b +Author: Stuart Bennett +Date: Mon Jan 28 22:59:26 2008 +0000 + + nouveau: make nv34 work every time, not just every 2nd time + + And make nv30_graph_init a bit more like mmio-traces + +commit 733e07663e50087ca1e9af8e9b5def556521e3b5 +Author: Maarten Maathuis +Date: Sat Feb 2 12:46:31 2008 +0100 + + nouveau: NV40 can/should now be able to run after the blob. + + - Moved the fix from the ddx to drm, because it seemed more appropriate. + - Don't be shy, report if it works for you or not. + +commit c77b0937f290568604961fa0013691349c5fcf3b +Author: Thomas Hellstrom +Date: Thu Jan 31 14:11:12 2008 +0100 + + Add an fence_class_manager::last_queued_sequence member, since a + sequence number may actually turn up before the corresponding fence + object has been queued on the ring. + + Fence drivers can use this member to determine whether a + sequence number must be re-reported. + +commit 47ee6237fe86a8621744bbd6cecb8b5e58848b05 +Author: Thomas Hellstrom +Date: Wed Jan 30 22:14:02 2008 +0100 + + i915: Avoid calling drm_fence_flush_old excessively. + +commit f1edb7ad91d8b92057ffa02eb162e3740d05a147 +Author: Thomas Hellstrom +Date: Wed Jan 30 22:06:02 2008 +0100 + + Simplify the fencing code and differentiate between flushes and + waiting types. + Add a "command_stream_barrier" method to the bo driver. + +commit abed0995585050d5fd179958d01f14f7e430e795 +Author: Jakob Bornecrantz +Date: Wed Jan 30 16:16:10 2008 +0100 + + Fix for cursor off + +commit 841ef9eb8da8058d6495e9f8e1b14af2709dfaa1 +Author: Jakob Bornecrantz +Date: Wed Jan 30 15:47:26 2008 +0100 + + ModeFB demo now display cursor + +commit 9a7e45858d8faa7afbe31b130d2de1be781085da +Author: Ben Skeggs +Date: Wed Jan 30 11:40:13 2008 +1100 + + nv40: some more nv67 changes + + With some luck the drm-side will be OK now for this chipset. + +commit 0744cb153aabd290fd4832288a530adeb5561e2c +Author: Mirko +Date: Tue Jan 29 10:11:27 2008 -0500 + + Add new RV380 pci id + + bug 14289 + +commit 01f6afcfea9d315ad1473045da141bfc95bcb7e6 +Author: Jesse Barnes +Date: Mon Jan 28 21:05:22 2008 -0800 + + Fix hibernate save/restore of VGA attribute regs + + In hibernate, we may end up calling the VGA save regs function twice, so we + need to make sure it's idempotent. That means leaving ARX in index mode after + the first save operation. Fixes hibernate on 965. + +commit b9b6f9234dd9e702a7d58978cbd88dc297b2b51a +Author: Jakob Bornecrantz +Date: Mon Jan 28 22:06:09 2008 +0100 + + Misc panning fixes for intel_fb + +commit a2254c5a9670a3e865f0eb5acd46e905c9b146ce +Author: Jakob Bornecrantz +Date: Mon Jan 28 03:12:29 2008 +0100 + + Added cursor support + +commit b8755ff7c33baac2abe5b5fe00897b33a896a098 +Author: Maciej Cencora +Date: Sun Jan 27 12:50:31 2008 +1000 + + drm: add initial rs690 support for drm. + + This adds support for configuring the RS690 GART. + +commit 6bfb9b639ab2ab71969eeeb72105ce7e0c487462 +Author: George Sapountzis +Date: Fri Jan 25 16:54:29 2008 +0200 + + mach64: fix after vblank-rework + + don't disable vblank interrupts (similar to r128) + +commit 98361cf28c62530e34758b27aa1eea805269e0e5 +Author: Dave Airlie +Date: Fri Jan 25 16:34:05 2008 +1000 + + if irq already enabled well just keep trucking + +commit fa7b779c91cbac16ec699efab4ee150412d4ba74 +Author: Dave Airlie +Date: Fri Jan 25 16:32:09 2008 +1000 + + don't reinit ring if already initialised + +commit e7a41d7f5be49241480a20eb733262712e0f8dcb +Merge: fb9ea12 bfdddd2 +Author: Dave Airlie +Date: Fri Jan 25 15:27:53 2008 +1000 + + Merge remote branch 'origin/master' into modesetting-101 + + Conflicts: + + linux-core/drm_bo.c + linux-core/drm_drv.c + shared-core/drm.h + shared-core/i915_dma.c + shared-core/i915_drv.h + shared-core/i915_irq.c + shared-core/radeon_irq.c + +commit bfdddd218ec3e7ce3f8e765b93af35661a7bf0fd +Author: Jesse Barnes +Date: Thu Jan 24 20:59:51 2008 -0800 + + Fixup modeset ioctl number & typedef usage + + Should be 0x08 rather than 0xa0, and shouldn't use typedefs. + +commit e3c42f00042ffacc7868ed608b9ecf786dcc4e4a +Merge: c7ee6cc 5b99306 +Author: Eric Anholt +Date: Thu Jan 24 12:32:08 2008 -0800 + + Merge commit 'airlied/i915-ttm-cfu' + + This requires updated Mesa to handle the new relocation format. + +commit c7ee6cc269c26d8e7ed98a16a272eca63daab201 +Author: Jesse Barnes +Date: Thu Jan 24 08:57:04 2008 -0800 + + Remove broken 'in vblank' accounting + + We need to return an accurate vblank count to the callers of + ->get_vblank_counter, and in the Intel case the actual frame count + register isn't udpated until the next active line is displayed, so we + need to return one more than the frame count register if we're currently + in a vblank period. + + However, none of the various ways of doing this is working yet, so + disable the logic for now. This may result in a few missed events, but + should fix the hangs some people have seen due to the current code + tripping the wraparound logic in drm_update_vblank_count. + +commit 5b9930645227d52f47b6dc85cd1aee65bb5820ad +Author: Dave Airlie +Date: Thu Jan 24 15:18:09 2008 +1000 + + i915: fix missing header when copying data from userspace + +commit 34b71eb45124b32377b82b4d3737537b9195b0a7 +Author: Dave Airlie +Date: Thu Jan 24 14:37:40 2008 +1000 + + i915 make relocs use copy from user + + Switch relocs to using copy from user and remove index and pass buffer + handles in instead. + +commit b5a34f5da50e22ecb80853f0f422beb90857dc2d +Author: Jesse Barnes +Date: Wed Jan 23 08:39:57 2008 -0800 + + Fix thinko in get_vblank_counter + + Should use vtotal not htotal to figure out if we're in a vblank period. + +commit cb917843711ab5fe22f311cbd3eb597bce105df5 +Author: Jesse Barnes +Date: Wed Jan 23 08:38:01 2008 -0800 + + Fix IS_I915G macro + + One to many parantheses... + +commit 7c726086dd6591c7b32bffdcfd8e180309aad14d +Author: Maarten Maathuis +Date: Wed Jan 23 16:40:19 2008 +0100 + + nouveau: Fix warning in nouveau_mem.c + +commit c57f43e3a266d247c8a2be6fd7702caab2dc009b +Author: Dave Airlie +Date: Wed Jan 23 16:45:09 2008 +1000 + + i915/flush: get the ret the right way around + +commit 2f19fe44983647328a97cb4ce513d773459ca853 +Author: Dave Airlie +Date: Wed Jan 23 16:44:51 2008 +1000 + + drm/i915: add support for E7221 + +commit 531f25cfe9d0319f78fe58260bfed08d5e3e8bcc +Author: Jesse Barnes +Date: Tue Jan 22 15:16:01 2008 -0800 + + Correct vblank count value + + The frame count registers don't increment until the start of the next + frame, so make sure we return an incremented count if called during the + actual vblank period. + +commit 893e311999d1565943899d73c56c674fc9b6e502 +Author: Jesse Barnes +Date: Tue Jan 22 13:11:29 2008 -0800 + + i915 irq fixes + + Ack the IRQs correctly (PIPExSTAT first followed by IIR). Don't read + vblank counter registers on disabled pipes (might hang otherwise). And + deal with flipped pipe/plane mappings if present. + +commit 0cd4cbc9a6330bd619608f274592082de7c05bcf +Merge: 128a8f7 5231a52 +Author: Jesse Barnes +Date: Tue Jan 22 09:42:37 2008 -0800 + + Merge branch 'master' into vblank-rework, including mach64 support + + Conflicts: + + linux-core/drmP.h + linux-core/drm_drv.c + shared-core/i915_drv.h + shared-core/i915_irq.c + shared-core/mga_irq.c + shared-core/radeon_irq.c + shared-core/via_irq.c + + Mostly trivial conflicts. + + mach64 support from Mathieu Bérard. + +commit 5231a524f53babd127a576d7567671dafb29651b +Author: Dave Airlie +Date: Tue Jan 22 14:39:28 2008 +1100 + + Revert "Fix pipe<->plane mapping vs. vblank handling (again)" + + This reverts commit bfc29606e4a818897eebca46a5e23bbe7bc3ce25. + + This regresses i915 here for me I can't get greater than 0.333 fps with gears + +commit 616cef5ec84b97eb676ee7cc6699451d778fad3b +Author: Stephane Marchesin +Date: Mon Jan 21 21:11:47 2008 +0100 + + nouveau: don't forget NV80. + +commit 641c9a2ecccb4fd51e2453c18df5d1e6a209d6e3 +Author: Stephane Marchesin +Date: Mon Jan 21 21:01:28 2008 +0100 + + nouveau: new card family for old card designs. + +commit fb9ea12438de95a6ac085879e079055eaea3daf8 +Author: Jakob Bornecrantz +Date: Fri Jan 18 15:00:31 2008 +0100 + + Made radeon_ms not always compile + +commit c6f175cbea1dba3fc26426243acc55b89b8a8064 +Author: Kyle McMartin +Date: Thu Jan 17 18:51:56 2008 -0500 + + i915: fix invalid opcode exception on cpus without clflush + + i915_flush_ttm was unconditionally executing a clflush instruction + to (obviously) flush the cache. Instead, check if the cpu supports + clflush, and if not, fall back to calling wbinvd to flush the entire + cache. + + Signed-off-by: Kyle McMartin + +commit 44a9fa8cc6c7d598163d1885bf69e4bf747a004b +Author: Eric Anholt +Date: Mon Jan 7 13:10:50 2008 -0800 + + Add additional explanation of DRM_BO_FLAG_CACHED_MAPPED before I forget again. + +commit ac6b3780c816f81c8159ff5ba07a77563e26a1c5 +Author: Zhenyu Wang +Date: Wed Jan 9 11:30:35 2008 +0800 + + i915: Add chipset id for Intel Integrated Graphics Device + + This adds new chipset id in drm. + + Signed-off-by: Zhenyu Wang + +commit 6ba979ea467ef6ff76c32ee63ee9a6d4073ec672 +Author: Jerome Glisse +Date: Tue Jan 15 16:01:39 2008 +0100 + + radeon_ms: use radeon connector type insted of drm + +commit 20a8e2d30e99a3248e6f02f792a29d20ec9f2ce5 +Author: Jerome Glisse +Date: Tue Jan 15 14:30:40 2008 +0100 + + radeon_ms: cope with lastest drm modesetting change + +commit f1f934c8c97d6664fb5e1920a41154c09cc7f293 +Author: Jerome Glisse +Date: Tue Jan 15 14:05:25 2008 +0100 + + radeon_ms: add rom parsing & adapt code + + Add rom (only combios for now) parsing and use informations + retrieve instead of hardcoded table. Shuffle code around a + bit. + +commit 88c511e49dce869d1c4e3271bf642cbb22fef0cf +Author: Thomas Hellstrom +Date: Tue Jan 15 10:03:41 2008 +0100 + + Properly propagate the user-space fence flags. + This avoids a sync flush when user-space has already programmed + and MI_FLUSH in the batchbuffer. + +commit 099e89edf094ec231621b67129e9226ba50e99ad +Author: Thomas Hellstrom +Date: Tue Jan 15 09:46:59 2008 +0100 + + Define i915_compat.c upper_32_bits for kernels < 2.6.21 + +commit 806c1929dcd344f6eab3133584a9c4ce9f3f47bc +Author: Zou Nan hai +Date: Tue Jan 15 09:19:02 2008 +0800 + + this is to fix a deadloop in drm hang system issue. + (1 << bits) is an undefined value when bits == 32. + gcc may generate 1 with this expression + which will lead to an infinite retry loop in + drm_ht_just_insert_please. + Because of the different implement of hash_long, + this issue is more frequenly see on 64 bit system + +commit 62df4f0a48776e55443d7f61a41e1ed0fb77b6ed +Author: Dave Airlie +Date: Mon Jan 14 19:36:10 2008 +1000 + + fixup i915 compat resource allocation + +commit 269d518008a20dc81231574f2d07d101553d3824 +Author: Stephane Marchesin +Date: Mon Jan 14 03:16:40 2008 +0100 + + nouveau: make mem alloc debug a little more verbose. + +commit e6fc47129ffe972bbee1c08fd822a8c171f21322 +Author: Jakob Bornecrantz +Date: Fri Jan 11 17:33:00 2008 +0100 + + Fix for X axis panning problem + +commit f07942f74a08e4c65e3b5e5c46f543686ae30c2b +Author: Jakob Bornecrantz +Date: Fri Jan 11 17:13:48 2008 +0100 + + Panning now works without modeset + +commit 12a47cd136803883231c9763f2007216236ec3b2 +Author: Jakob Bornecrantz +Date: Fri Jan 11 04:23:32 2008 +0100 + + Updated the modedemo test + +commit 0b69c1d1d6a09d55d3367296dfdf23269f2721ea +Author: Jakob Bornecrantz +Date: Fri Jan 11 02:55:00 2008 +0100 + + Added fixed misc framebuffer problems + +commit f0b7c45653b510693821ad68a20a3820c29195ef +Author: Ben Skeggs +Date: Fri Jan 11 12:51:08 2008 +1100 + + nv05: enable ctx/op methods, and ignore patch valid failures. + + Yes, I'm quite aware "real" nv04 doesn't support this, hopefully the GPU + will just ignore those PGRAPH_DEBUG_3 bits on that hw. + +commit 0a4df3372aec219298e3787f6f377941bc51bfcb +Author: Jakob Bornecrantz +Date: Thu Jan 10 05:03:13 2008 +0100 + + Updated test mode and added modedemo + +commit e04d942ee8e74fce90e332446e740a100d782033 +Author: Dave Airlie +Date: Wed Jan 9 18:11:17 2008 +1100 + + fixup crtcinfo on modes from userspace + +commit 87a32efcdde124df59656e00a402ba50a0ba1e45 +Author: Dave Airlie +Date: Wed Jan 9 18:11:04 2008 +1100 + + add control node open + +commit 73bf5e867089b58b2c4baaa833d15a2b1fb268a4 +Author: Dave Airlie +Date: Wed Jan 9 16:44:31 2008 +1100 + + add internals for opening a control node + +commit 8d6e3c208f8090ccc32ef3a38c58f2aca7f4be2a +Author: Dave Airlie +Date: Wed Jan 9 16:43:51 2008 +1100 + + allow control getversion + +commit ebbc2e0a2e19f5e0fdc06af0951d7fc2cc9ddcbe +Author: Dave Airlie +Date: Wed Jan 9 16:31:37 2008 +1100 + + add control ioctls + +commit 135f51306b08f9863d77ac85b69989288c62f147 +Author: Dave Airlie +Date: Wed Jan 9 16:21:56 2008 +1100 + + drm: only call suspend/resume on control node + +commit 5f15f317fb304f6a2321c033d401f603b365f2d0 +Author: Stuart Bennett +Date: Mon Jan 7 17:38:18 2008 +0000 + + nouveau: AGP reset correction - don't touch FW bit + +commit 0bfd09f719fb1de3e489fe513a122f29cdcef0c3 +Author: Ben Skeggs +Date: Mon Jan 7 18:56:44 2008 +1100 + + nv50: more small changes + +commit 942b500e24fba25e3e047c7756b75a2782076512 +Author: Ben Skeggs +Date: Mon Jan 7 18:18:51 2008 +1100 + + nv50: oops, lost some state saving along the way somewhere. + + xf86-video-nv will now work again after nouveau. + +commit 3d248cd7e4538ced5c0b652a784eb4ef309d5e11 +Author: Ben Skeggs +Date: Mon Jan 7 17:23:31 2008 +1100 + + nv50: hook up timer funcs... + +commit 7a4ba7273c740503b6f254f74b2e06312c15790a +Author: Ben Skeggs +Date: Mon Jan 7 17:10:36 2008 +1100 + + nv50: abort on chips without ctx ucode + +commit 15f8fd34df11d9fceb3f813c9478ffe66cae3473 +Author: Ben Skeggs +Date: Mon Jan 7 17:07:59 2008 +1100 + + nv50: some needed ctx vals + +commit fa5e18679fcdb7bd2d69c605183b0b205416bf2b +Author: Ben Skeggs +Date: Mon Jan 7 16:55:20 2008 +1100 + + nv50: use dummy page in gart tables + + Just to be safe, we don't really know exactly how the tables work yet, so + we can't be certain there's a way to say "page not present". + +commit 3d3d509dcae7f26cfcbe63e527a16f181a24e37c +Author: Ben Skeggs +Date: Mon Jan 7 16:52:47 2008 +1100 + + nv50: some cleanups + small changes + +commit cd19dcef4f7cc454f68618a0a1e903f159db21ad +Author: Stephane Marchesin +Date: Mon Jan 7 06:11:33 2008 +0100 + + Nouveau: ppc oops. + +commit de522ae742bd058780135eb21fe287e9a9dc263a +Author: Stephane Marchesin +Date: Mon Jan 7 05:54:05 2008 +0100 + + Nouveau: move PPC bios copy to firstopen. + +commit bd5d760a105e0a7aec00791d397511a0f7bc27ea +Author: Jeremy Kolb +Date: Sun Jan 6 10:09:47 2008 -0500 + + nouveau: Add ctx_voodoo for NV86 + +commit f5e5e5c0ea7d7a69f7bf16c718bf757fbb4b541d +Author: Pekka Paalanen +Date: Fri Jan 4 23:47:57 2008 +0200 + + drm: One forgotten rename of 'mask' to 'proposed_flags'. + + Due to commit d1187641d64f442968a3b9ea6a19de6cdd45acd4. + +commit d3da253adbf471c9af9c68b2ff67cbf516856352 +Author: Dave Airlie +Date: Fri Jan 4 17:49:40 2008 +1100 + + drm: add initial support for a drm control device node + +commit df9cfeff37d40722df4e8a785478ac41246ca51f +Author: Dave Airlie +Date: Fri Jan 4 17:48:42 2008 +1100 + + crtc: fixup allocation size + +commit 30fba69a68efc196908dab22581d1b99cf8750ae +Author: Xavier Bachelot +Date: Fri Jan 4 16:29:04 2008 +1000 + + via: add P4M900 pci id. + + bug 12108 + +commit 10937cf20b6814e4cf68114fab4619fad94eafcb +Author: Dave Airlie +Date: Fri Jan 4 16:12:24 2008 +1100 + + drm: move drm_head to drm_minor and fix up users + +commit 71adbfc874517efbba8b9f7c3f90baad0d7fb707 +Author: Stuart Bennett +Date: Thu Jan 3 16:57:55 2008 +0000 + + [PATCH] nouveau: reset AGP on init for < nv40 + + This is necessary for AGP to work after running bios init scripts on nv3x, and + is seen in mmio traces of all cards (nv04-nv4x) + + I'm not making the equivalent change to nv40_mc.c, as early cards (6200, 6800gt) + use the 0x000018XX PBUS and later cards use the 0x000880XX PBUS and I don't know + the effects of using the wrong one + +commit 381724a35b662302b70f9a5c04f1412ff2c2ad5b +Author: Stuart Bennett +Date: Thu Dec 27 01:10:52 2007 +0000 + + [PATCH] nouveau: Fix nv20/30 context loading + + Don't set the context as valid until it has been loaded + +commit 78d6649069a40c5c30ecc482eea803a5dc89c080 +Author: Dave Airlie +Date: Thu Jan 3 17:44:04 2008 +1000 + + mach64: some more minor cleanups + +commit 97b8c9591cfeb88d02bd9255adf8a1f9aaa72630 +Author: Dave Airlie +Date: Thu Jan 3 17:10:30 2008 +1000 + + mach64: cleanup some of the macro formatting + +commit 9ab620d661253f9b08f683a2a6f9ddee002015bc +Author: Márton Németh +Date: Thu Jan 3 16:56:04 2008 +1000 + + drm: cleanup DRM_DEBUG() parameters + + As DRM_DEBUG macro already prints out the __FUNCTION__ string (see + drivers/char/drm/drmP.h), it is not worth doing this again. At some + other places the ending "\n" was added. + + airlied:- I cleaned up a few that this patch missed also + +commit 5e99b42b043e36a8db4a27522be27944a344715e +Merge: b9417f4 96a0005 +Author: Dave Airlie +Date: Thu Jan 3 16:05:13 2008 +1000 + + Merge branch 'r500-support' + +commit 96a00054beb84050d618c8418e2da999530b117f +Author: Dave Airlie +Date: Thu Jan 3 16:03:05 2008 +1000 + + remove duplicate pciids + +commit b9417f41418321d5081547a3a3386dcccae7541f +Author: Xiang, Haihao +Date: Wed Dec 26 17:13:58 2007 +0800 + + i915: return fence argument from i915_execbuffer ioctl32 routine + +commit 5d8d64ad3881c10bc3cd3fd5cab1ac14268da5ce +Author: Xiang, Haihao +Date: Tue Dec 25 16:57:14 2007 +0800 + + i915: i915_execbuffer ioctl32 routine, fix #13732 + +commit da3601e43ae75695f3b080904b1e090c8eb1cd8e +Author: Keith Packard +Date: Sun Dec 16 22:00:45 2007 -0800 + + Change drm_bo_type_dc to drm_bo_type_device and comment usage of this value. + + I couldn't figure out what drm_bo_type_dc was for; Dave Airlie finally clued + me in that it was the 'normal' buffer objects with kernel allocated pages + that could be mmapped from the drm device file. + + I thought that 'drm_bo_type_device' was a more descriptive name. + + I also added a bunch of comments describing the use of the type enum values and + the functions that use them. + +commit d1187641d64f442968a3b9ea6a19de6cdd45acd4 +Author: Keith Packard +Date: Sun Dec 16 20:16:50 2007 -0800 + + Rename inappropriately named 'mask' fields to 'proposed_flags' instead. + + Flags pending validation were stored in a misleadingly named field, 'mask'. + As 'mask' is already used to indicate pieces of a flags field which are + changing, it seems better to use a name reflecting the actual purpose of + this field. I chose 'proposed_flags' as they may not actually end up in + 'flags', and in an case will be modified when they are moved over. + + This affects the API, but not ABI of the user-mode interface. + +commit 37fb2ac4071f62bad2c36cc9ca84f9c8feee6bf5 +Author: Keith Packard +Date: Sun Dec 16 01:47:51 2007 -0800 + + Use dummy_read_page for unpopulated kernel-allocated ttm pages. + + Previously, dummy_read_page was used only for read-only user allocations; it + filled in pages that were not present in the user address map (presumably, + these were allocated but never written to pages). + + This patch allows them to be used for read-only ttms allocated from the + kernel, so that applications can over-allocate buffers without forcing every + page to be allocated. + +commit 881ee70ab7bab5d6f6140dc9bf1e19c7b5844084 +Author: Keith Packard +Date: Sun Dec 16 01:12:07 2007 -0800 + + Move dummy_read_page from drm_ttm_set_user to drm_ttm_create. + + I'm hoping to use the dummy_read_page for kernel allocated buffers to avoid + allocating extra pages for read-only buffers (like vertex and batch buffers). + This also eliminates the 'write' parameter to drm_ttm_set_user and just + has DRM_TTM_PAGE_WRITE passed into drm_ttm_create. + +commit 6d44f48002c19d67187adb660ef74dd1870d52c2 +Author: Keith Packard +Date: Sun Dec 16 00:54:25 2007 -0800 + + Clean up and document drm_ttm.c APIs. drm_bind_ttm -> drm_ttm_bind. + + Aside from changing drm_bind_ttm to drm_ttm_bind, this patch + adds only documentation and fixes the functions inside drm_ttm.c + to all be prefixed with drm_ttm_. + +commit 219ba5cd9aff2dc79e414bbe2e9f90406f7543df +Author: Dave Airlie +Date: Fri Dec 21 18:38:55 2007 +1000 + + s/TRUE/true + +commit 21b01cd4b54781cfab038016c2d644069d522787 +Author: Jerome Glisse +Date: Thu Dec 20 12:35:54 2007 +0100 + + radeon_ms: update to follow lastest modesetting change + +commit d8c94a84b7f8da5fdf32a0799eaac72a1fc3007d +Author: Jerome Glisse +Date: Wed Dec 19 18:27:38 2007 +0100 + + radeon_ms: add sarea & install header + +commit 629231c62675fe09f4eb948861a21980a9b79a5a +Merge: ea915c7 6d03411 +Author: Dave Airlie +Date: Tue Dec 18 19:18:21 2007 +1100 + + Merge branch 'modesetting-airlied' into modesetting-101 + +commit 6d03411e5faa124bac014ebacec470ffd7cf2ce4 +Author: Dave Airlie +Date: Tue Dec 18 19:18:05 2007 +1100 + + HERE BEZ HACKZ.. magic variable to make shit work + +commit a19e0efb0e03dbaad68e281b7e018663fb8c3589 +Author: Dave Airlie +Date: Tue Dec 18 19:17:11 2007 +1100 + + lockdep warned about a possible locking dependency + +commit 01f905c1779279811d4f0467da4bdf33ff786c86 +Author: Dave Airlie +Date: Tue Dec 18 19:16:51 2007 +1100 + + we should not be unlocking this here + +commit b13dc383df85d75cb1ea422f4d13efc2a4a8a732 +Author: Dave Airlie +Date: Tue Dec 18 17:41:20 2007 +1100 + + remove output names + +commit ea915c77e169a50ca7dc557512212eafa93e2205 +Author: Jakob Bornecrantz +Date: Tue Dec 18 02:52:09 2007 +0100 + + Fixed build + +commit bdbc34e297bd7e4cb036df6244dfb0d816eed36d +Author: Jakob Bornecrantz +Date: Tue Dec 18 02:09:48 2007 +0100 + + Fix and cleanup of Hotplug + +commit e239882b1e90cba0297118ec7dc432bea06b0bd0 +Author: Jakob Bornecrantz +Date: Tue Dec 4 15:36:36 2007 +0100 + + Modesetting Hotplug + +commit 2db6400396ea5c8a5ce54fe9e211b9d01a11d506 +Author: Li Zefan +Date: Mon Dec 17 09:50:45 2007 +1000 + + drm: don't cast a pointer to pointer of list_head + + The casting is safe only when the list_head member is the first member of + the structure. + +commit 6180dbda203161b8926513cca4ee963bbbf18cc9 +Author: Jesper Juhl +Date: Mon Dec 17 09:45:03 2007 +1000 + + While reading some code I stumbled across the use of 'err' in + drivers/char/drm/mga_dma.c::mga_do_cleanup_dma() and I think there's a small + problem. + + The variable is only used inside #if __OS_HAS_AGP which is fine, but all + that + ever happens is an assignment to the variable - it is never actually used + for + anything. The variable is nicely initialized to zero which is also what the + return statement at the end of function returns (always at the moment). + + It looks to me like that function should be returning 'err' instead of + always + just returning 0. Here's a patch to do that. + + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + +commit 0b031dbd63bbb3e0ba6d39e1e5c4eb4e87985158 +Author: Keith Packard +Date: Fri Dec 14 13:19:35 2007 -0800 + + Document drm_ttm_set_user. + + Add a comment explaining the parameters for this function + +commit 9d17373ffbba3cc4ee5f63ff02ff24d48ab99fe0 +Author: Keith Packard +Date: Fri Dec 14 13:19:09 2007 -0800 + + Document drm_buffer_object_validate function. + + Just add documentation for this function, no code changes. + +commit 7461519fed25f6d63415a9dd4b915c6cc668a69c +Author: Keith Packard +Date: Fri Dec 14 12:49:22 2007 -0800 + + Document fence_class mess in drm_bo_setstatus_ioctl + + drmBOSetStatus does not bother to set the fence_class parameter. + Fortunately, drm_bo_setstatus_ioctl doesn't end up using it as it + calls drm_bo_handle_validate with use_old_fence_class = 1. + +commit 5f23519b14e54823c94f5db5ad81e6bd5ffd3877 +Author: Keith Packard +Date: Fri Dec 14 12:45:55 2007 -0800 + + Document drm_bo_handle_validate. Match drm_bo_do_validate parameter order. + + Document parameters and usage for drm_bo_handle_validate. Change parameter + order to match drm_bo_do_validate (fence_class has been moved to after + flags, hint and mask values). Existing users of this function have been + changed, but out-of-tree users must be modified separately. + +commit b5181d2506be332db8b07c02cdf37c6e25545c4d +Author: Keith Packard +Date: Fri Dec 14 12:33:35 2007 -0800 + + Document drm_bo_do_validate. Remove spurious 'do_wait' parameter. + + Add comments about the parameters to drm_bo_do_validate, along + with comments for the DRM_BO_HINT options. Remove the 'do_wait' + parameter as it is duplicated by DRM_BO_HINT_DONT_BLOCK. + +commit b0bc5f1ae559c705565e516ebb289bf072559dec +Author: Keith Packard +Date: Fri Dec 14 11:42:17 2007 -0800 + + Make ttm create/destroy APIs consistent. Pass page_flags in create. + + Creating a ttm was done with drm_ttm_init while destruction was done with + drm_destroy_ttm. Renaming these to drm_ttm_create and drm_ttm_destroy makes + their use clearer. Passing page_flags to the create function will allow that + to know whether user or kernel pages are needed, with the goal of allowing + kernel ttms to be saved for later reuse. + +commit 449a3b19ff6e5bd054e7da3086e2d16604fae7ed +Author: Patrice Mandin +Date: Sat Dec 15 10:23:30 2007 +0100 + + Revert "nouveau: nv30: missing ramin init, does it brake other hw?" + + This reverts commit 46235ea4595152d8dd5f016c18c6845a77db30b0. + +commit f62a300547b1f495472f773587cd20c6c9da06aa +Merge: 8d2da20 35a8b61 +Author: Alan Hourihane +Date: Thu Dec 13 10:41:23 2007 +0000 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + +commit 35a8b61317b57fcaaf5f7df06b0e2b532eddb9cb +Author: Alan Hourihane +Date: Thu Dec 13 10:40:36 2007 +0000 + + catch an out of memory condition + +commit 7dcaf0cdbb57dcf85aa8798736948c280d3966b2 +Author: Keith Packard +Date: Tue Dec 11 20:21:23 2007 -0800 + + Make relocation validate client computed values when debugging + +commit 4ec8f58d042d7fe0dab570fed35a438759645ca8 +Author: Keith Packard +Date: Thu Dec 6 15:12:21 2007 -0800 + + i915: wait for buffer idle before writing relocations + + When writing a relocation entry, make sure the target buffer is idle, + otherwise the GPU may see inconsistent data. + +commit 9ee511d786b1a87944f043c1a16057e8dfc48668 +Author: Keith Packard +Date: Tue Dec 4 20:54:53 2007 -0800 + + Bump driver minor for relocation optimzations + +commit 57b9a54eb668477407c8be54c041d7a9f92c1f51 +Author: Keith Packard +Date: Tue Dec 4 12:22:30 2007 -0800 + + Allow relocation to be skipped when buffers don't move. + + One of the costs of superioctl has been the need to perform relocations + inside the kernel. The cost of mapping the buffers to the CPU and writing + data is fairly high, especially if those buffers have been mapped and read + by the GPU. + + If we assume that buffers don't move around very often, we can have the + client compute the relocations itself using the previous GPU address. When + that object doesn't move, the kernel can skip computing and writing the + updated data. + + Here's a patch which adds a new field to struct drm_bo_info_req called + 'presumed_offset', and a new DRM_BO_HINT_PRESUMED_OFFSET that is set when + this field has been filled in by the client. + + There are two separate optimizations performed when the presumed_offset is + correct: + + 1. i915_exec_reloc checks to see if all previous buffer offsets were guessed + correctly. If so, there's no need for it to look at *any* of the + relocations for a buffer. When this happens, it skips the whole + relocation process, simply returning success. + + 2. i915_apply_reloc checks to see if the target buffer offset was guessed + correctly. If so, it skips mapping the relocatee, computing the + relocation and writing the value. If no relocations are needed, the + relocatee should never be mapped to the CPU, and so the kernel shouldn't + need to wait for any fences to pass. + +commit 8d2da202337300e821f4867cb2654b41ff6053b6 +Merge: f99dea7 cfa21b2 +Author: Dave Airlie +Date: Tue Dec 11 16:58:00 2007 +1000 + + Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + + Conflicts: + + linux-core/drm_drv.c + shared-core/drm.h + shared-core/i915_dma.c + +commit f99dea7db00dd46aa96eaed3a61dff9c956fd86f +Author: Dave Airlie +Date: Tue Dec 11 15:56:48 2007 +1000 + + modesetting: fixup property setting and add connector property + +commit 3b6786e3e6523b1ceca3645ea4c6081f170d2134 +Author: Dave Airlie +Date: Tue Dec 11 14:46:51 2007 +1000 + + modesetting: add dpms property and initial settable property ioctl + +commit 814f695135f21aadeba77a3114df505d81a8d433 +Merge: e51b3c8 cfa21b2 +Author: Dave Airlie +Date: Mon Dec 10 15:53:59 2007 +1000 + + Merge branch 'master' into r500-support + +commit cfa21b22b43c7113107b5eb086b5f4d4ec36dc0a +Author: Dave Airlie +Date: Mon Dec 10 10:13:52 2007 +1000 + + drm: move agp include outside CONFIG_AGP as it isn't dependant on agp in kernel + +commit 7d08b816b7af3cd415bebf65f44313415fea091a +Author: José Fonseca +Date: Sat Dec 8 19:21:27 2007 +0000 + + mach64: comment bus master / ring buffer behavior and security + +commit 9d064966d8495038921d0e731c0bfca0cd58d244 +Author: Jerome Glisse +Date: Sat Dec 8 00:45:33 2007 +0100 + + radeon_ms: fix pll computation to follow hw constraint + +commit bfc29606e4a818897eebca46a5e23bbe7bc3ce25 +Author: Jesse Barnes +Date: Fri Dec 7 14:24:45 2007 -0800 + + Fix pipe<->plane mapping vs. vblank handling (again) + + If drmMinor >= 6, the intel DDX driver will enable vblank events on both + pipes. If drmMinor >= 10 on pre-965 chipsets, the intel DDX driver will + swap the pipe<->plane mapping to allow for framebuffer compression on + laptop screens. This means the secondary vblank counter (corresponding + to pipe B) will be incremented when vblank interrupts occur. + + Now Mesa waits for vblank events on whichever plane has a greater + portion of the displayed window. So it will happly ask to wait for the + primary counter even though that one won't increment. + + So we can fix this in either the DDX driver, Mesa or the kernel (though + I thought we already had several times). + + Since current (and previous) userspace assumes it's talking about a pipe + == plane situation and now uses planes when talking to the kernel, we + should probably just hide the mapping details there (indeed they already + are hidden there for vblank swaps), which this patch does. + + So as far as userland is concerned, whether we call things planes or + pipes is irrelevant, as long as kernel developers understand that + userland hands them planes and they have to figure out which pipe that + corresponds to (which will typically be the same on 965+ hardware and + reversed on pre-965 mobile chips). + +commit a693e8ab12432787a3c02fa5b8f7649a08122012 +Author: Jerome Glisse +Date: Thu Dec 6 23:36:58 2007 +0100 + + radeon_ms: fix fbcon by fixing palette + +commit a39560e767f8d66508f7cf98222199b2cc96fcaf +Author: Jerome Glisse +Date: Thu Dec 6 23:19:52 2007 +0100 + + radeon_ms: update to lastest fb change + +commit 931b4a84a09e29570dfef1da96acc5b894529bc3 +Merge: 3a51a80 9814e87 +Author: Jerome Glisse +Date: Thu Dec 6 22:42:17 2007 +0100 + + Merge commit 'origin/modesetting-101' into modesetting-radeon + +commit 3a51a8077bf55ba9d18805f2f03b78eb980fa982 +Author: Jerome Glisse +Date: Thu Dec 6 22:38:44 2007 +0100 + + radeon_ms: avoid to unintialize things which haven't been initialized + +commit f1a99ddc14ebca303f20b6c23bd289fc887243ae +Author: Dave Airlie +Date: Thu Dec 6 16:03:28 2007 +1000 + + take down stuff after asking driver to unload + +commit 9814e87016ff90556ae34e3395c10d29add2ba08 +Author: Dave Airlie +Date: Thu Dec 6 11:47:29 2007 +1000 + + retab intelfb code + +commit 8020724615eb6f334d5f90b1e83e6a46d4a126ac +Author: Dave Airlie +Date: Thu Dec 6 11:46:54 2007 +1000 + + check previous mode first + +commit 1ba2bb3a7e77576333b09f296abac4c01c895c48 +Author: Dave Airlie +Date: Thu Dec 6 11:35:37 2007 +1000 + + oops initialise variable to false + +commit 67f6eb1eb8d3dc5bb5fdb097655d3da326f637c1 +Author: Dave Airlie +Date: Thu Dec 6 10:44:51 2007 +1000 + + add property blobs and edid reporting support + +commit a64a4373e85a321a359e147b2c7220d501dff06a +Author: José Fonseca +Date: Wed Dec 5 22:53:02 2007 +0000 + + mach64: make buffer emission macros normal functions + +commit 46ecd12c07f921bb015f87cb07ddb02baa94b382 +Author: José Fonseca +Date: Wed Dec 5 00:10:39 2007 +0000 + + mach64: use utf-8 + +commit e38749ebe5ece08ec63dfd37aca28108ad5cc7ab +Author: Kristian Høgsberg +Date: Wed Dec 5 14:43:22 2007 -0500 + + Remove references to the sarea_priv perf_boxes field. + + This field isn't touched or read by any other code in the stack so it's + time to retire these last few references. + +commit c9cda51af5a8bea1d30ce575ae260de52950fe2f +Author: Dave Airlie +Date: Wed Dec 5 16:31:35 2007 +1000 + + more WIP on blobs.. + + I'm going to pass back a list of blob ids and lengths in the getproperty. + will need another ioctl to return the blob data as it is variable length. + +commit 1a6c95ef711fce807659ab5e4fe480d65ac233b6 +Author: Dave Airlie +Date: Wed Dec 5 16:03:05 2007 +1000 + + arrgggh.. make all ioctl structs 32/64-bit compatible hopefully. + + This also starts to add blob property support. + + someone needs to check this work for other things like ppc/x86 alignment diffs + +commit f7432d187e4b5e13c9e450bf12d5ab8c18ea5146 +Author: Jesse Barnes +Date: Tue Dec 4 14:38:00 2007 -0800 + + Don't free driver mapped locks + + This fix is actually a bit of a cleanup too--it moves lock freeing to + drm_rmmap_locked and out of drm_lastclose. This makes it symmetrical with + addmap and also prevents the lock from being incorrectly freed from driver + mappings. + +commit 34797ff67c16beb9c331920f663bdf8387c14c78 +Author: Jerome Glisse +Date: Sun Dec 2 23:48:45 2007 +0100 + + radeon_ms: radeon modesetting first commit. + + This should work on all radeon but there is still many things todo: + - add crtc2 + - tmds + - lvds + - add bios data table so we don't need to hardcode dac/crtc infos + - separate clock control to make power saving easier & cleaner + - tiling (warning tiling shouldn't be enable in double scan or interlace) + - surface reg manager (this goes along with tiling) + - suspend/resume hook + - avivo & r500 family support + - atom bios support (for posting card mostly) + - finish superioctl skeleton + - what else ? :) + +commit 2f6e53342156ecb0e61a13816043445032c2b539 +Author: Dave Airlie +Date: Wed Dec 5 04:54:58 2007 +1000 + + patch from -mm kernel to use upper_32_bits + +commit 1a07dd5ffd014aae8f767ab1f5166131aa27ef3f +Author: Dave Airlie +Date: Mon Dec 3 15:28:26 2007 +1000 + + hooks up sync and flags and also clocks to get mode matching better + +commit 9a843d3bc79ae529f56e2f19e463b1b31c869a5b +Author: Dave Airlie +Date: Mon Dec 3 15:27:57 2007 +1000 + + add flags to mode debug print + +commit 34bb2e733a612de49a390babddd8477825deb895 +Author: Dave Airlie +Date: Mon Dec 3 15:27:49 2007 +1000 + + mode: copy back the mode if is valid correctly + +commit 96df9b11ad8974d7a2a0a589114cbbb04a584f18 +Author: Dave Airlie +Date: Mon Dec 3 13:42:32 2007 +1000 + + finish of mode add/remove, just have attach/detach modes + +commit 91cd3e3c097d581ea75ec4bcbc1ba8d23b471a2e +Author: Dave Airlie +Date: Wed Nov 28 15:18:25 2007 +1000 + + modesetting API change for removing mode ids and making modes per output. + + so really want to get a list of modes per output not the global hammer list. + also we remove the mode ids and let the user pass back the full mode description + + need to fix up add/remove mode for user modes now + +commit 690dd04d1b9a4da92139793d3f5129a80f9c7353 +Author: Robert Noland +Date: Sun Dec 2 01:45:09 2007 -0500 + + bsd: Replace other occurrences of msleep with mtx_sleep + +commit fbc307274f7cb29f986daae3d8e367d53172e3ba +Author: Robert Noland +Date: Sun Dec 2 01:23:11 2007 -0500 + + bsd: Now make secondary vblank work + + We needed to specifically check for driver support and test the correct + vbl_received value. Also pulled over support for _DRM_VBLANK_NEXTONMISS + from the linux code. + +commit 787d500c15c964f2a715ea0c949177c1d38dc367 +Author: Robert Noland +Date: Sat Dec 1 17:09:49 2007 -0500 + + bsd: Hook secondary vblank support. + +commit e6ca3f5754d649b6290ea017f815aeb18d565718 +Author: Robert Noland +Date: Sat Dec 1 16:35:48 2007 -0500 + + bsd: Fix typo in i915_drv.c + +commit 0c3e5261b63f6a642f4c62d287e56a52954c2b06 +Author: Robert Noland +Date: Sun Nov 25 12:54:31 2007 -0500 + + mtx_sleep is preferred to msleep + + Calling semantics are the same and both were introduced in 5.0 + +commit b2f8368b571efe610750640c5f10f4c4e0bf7133 +Author: Robert Noland +Date: Sun Nov 25 12:50:07 2007 -0500 + + Clarify order of operations + +commit 453a295c829dd9e07175f4b2e8fe7e179e5a4d79 +Author: Robert Noland +Date: Sat Nov 24 01:56:05 2007 -0500 + + DRM_DEBUG already prints the function name. + +commit d6295cc9ffe9f36f78131f8049baf24e77d35e15 +Author: Robert Noland +Date: Sat Dec 1 02:40:13 2007 -0500 + + drm: Add _DRM_DRIVER map flag. + + This flag indicates that the driver is responsible for the map. + +commit 83e62be6f449ad480eb590ee9d4131974c9920e2 +Author: Robert Noland +Date: Sat Dec 1 02:32:23 2007 -0500 + + bsd: Move counter initialization to load time. + +commit 887b920a7fd2cfa70b41425d26e4d3707d4075b9 +Author: Maarten Maathuis +Date: Fri Nov 30 22:50:34 2007 +0100 + + nouveau: Properly identify NV40 and NV44 generation. + +commit 309b2c4c05d02a7e7311a9491b74044f6c7f06a4 +Author: Jiri Slaby +Date: Thu Nov 29 09:55:38 2007 +1000 + + Beside the emitted warning, the added cast (u64 -> unsigned) strips out + part of address on 64 bit. Cast to unsigned long instead. + + Signed-off-by: Jiri Slaby + +commit 32c9a109b10c087f63964b4b055603feee522cc0 +Author: Dave Airlie +Date: Thu Nov 29 09:47:24 2007 +1000 + + drm: enable udev node creation + +commit 4602b6687ebb0dcf5047f2c3d88dccd751558c81 +Author: Dave Airlie +Date: Thu Nov 29 09:46:02 2007 +1000 + + drm: oops not a cleanup.. + +commit 9be085cbf44ac8bd3bc6fe3e9b55df6fec7ac389 +Author: Robert C. Noland III +Date: Wed Nov 28 00:33:42 2007 -0500 + + Fix up drm_ati_pcigart_info + +commit dc338921f94daad17055105a38214483d5ac33e1 +Author: Dave Airlie +Date: Thu Nov 29 09:37:51 2007 +1000 + + drm: more cleanups + +commit e9fa8fe7342fad710bee4f65bc23ec06d3020f05 +Author: Dave Airlie +Date: Wed Nov 28 22:46:06 2007 +1000 + + i965: oops force mi batchbuffer start + +commit 617cbeed2ae71c5560f597db49637df10edd8a52 +Author: Jesse Barnes +Date: Tue Nov 27 12:39:09 2007 -0800 + + Don't use panel fitter if we're programming a native mode + + Fix from the DDX driver. + +commit b3af2b59a77a6916ea7151236d3da9bde6a537fc +Author: Dave Airlie +Date: Tue Nov 27 14:31:02 2007 +1000 + + drm/modesetting: add initial gettable properites code. + + This allow the user to retrieve a list of properties for an output. + Properties can either be 32-bit values or an enum with an associated name. + Range properties are to be supported. + + This API is probably not all correct, I may make properties part of the general + resource get when I think about it some more. + + So basically you can create properties and attached them to whatever outputs you want, + so it should be possible to create some generics and just attach them to every output. + +commit e51b3c8ff4bb88bc0f57473b7c3fe7fcd6b1a916 +Author: Dave Airlie +Date: Tue Nov 27 08:43:14 2007 +1000 + + r500: add a bunch of all r5xx pci ids.. + + fix up a range that may be needed for r500 mesa + +commit f9ac54b0319b273de83a004d6cfdf46a3b9d6ced +Author: Dave Airlie +Date: Mon Nov 26 15:06:42 2007 +1100 + + fb: make fb interface use user mode attach/detach for adding modes + +commit 362f4283205a01b2a60a49838721e9fff9ae1a4c +Author: Dave Airlie +Date: Mon Nov 26 14:28:48 2007 +1100 + + add _ioctl to the end of two more ioctls + +commit 53b4e0cb789151164a0a43b55058319667847aaf +Author: Dave Airlie +Date: Mon Nov 26 14:05:49 2007 +1100 + + drm: make fb modes use usermode add/remove interface + + this stops usermode from getting a mode in the crtc it can't make sense off. + +commit a20587e3950f849deb1e723a0b4455a19f7b3fb8 +Merge: 8fd8bf5 5dc5c36 +Author: Dave Airlie +Date: Thu Nov 22 17:17:06 2007 +1100 + + Merge branch 'origin' into modesetting-101 + + Conflicts: + + linux-core/drmP.h + shared-core/i915_dma.c + shared-core/i915_drm.h + shared-core/radeon_drv.h + +commit 5dc5c36e624e5393b5427a159ad34e5fc358cc9f +Author: Dave Airlie +Date: Thu Nov 22 16:10:36 2007 +1000 + + drm: major whitespace/coding style realignment with kernel + +commit 7bf05708b686ec8822cc1ac7c8b647d4f7110bff +Author: Dave Airlie +Date: Thu Nov 22 13:29:17 2007 +1000 + + drm: cleanup drm_regman.c coding style + +commit 6ff4a70a2be606c02f2b27f92ebdb9a8ec11cbe0 +Author: Dave Airlie +Date: Thu Nov 22 09:17:34 2007 +1000 + + i915: add context handle to superioctl struct + + This will be used later for lockless operation. + +commit 66079b91f38cd8e21ae4c8ea1e74c56d44b82329 +Author: Dave Airlie +Date: Thu Nov 22 08:15:12 2007 +1000 + + r500: add pci id for X1650 + +commit 09e51db77b049765117d3cfa8b59fab0b73e6c93 +Author: Jerome Glisse +Date: Sun Nov 18 19:16:40 2007 +0100 + + drm: don't reset to 0 irq_enabled when client open file descriptor + +commit 8fd8bf599b42b6caa062afabdfce7385d59a7695 +Author: Jerome Glisse +Date: Sun Nov 18 19:16:40 2007 +0100 + + drm: don't reset to 0 irq_enabled when client open file descriptor + +commit 5ec64d4a30ff6170e8b9f87fa52fd9cc0b5ddb9c +Author: Dave Airlie +Date: Wed Nov 21 13:02:19 2007 +1000 + + r500: suggestion from glisse to not add cliprect offset on r5xx + +commit dc0ec76d60093e4f7d9b886c5a6afcb0cc8a46bf +Author: Dave Airlie +Date: Tue Nov 20 08:44:33 2007 +1000 + + radeon: add initial r5xx support + +commit 3fc3fc082adfa9a7dfe45ea8fb7a9fb6e7019ff6 +Author: Eric Anholt +Date: Mon Nov 19 08:41:23 2007 -0800 + + Fix capitalization of __linux__ define. + +commit f29b2a583d6f9d2cd02d58e915a0ca1cdee0919e +Author: Jerome Glisse +Date: Mon Nov 19 14:37:21 2007 +0100 + + drm: fix dead lock in drm_buffer_object_transfer + +commit 648b5b582a4fc5a925e7c3010d5a21b24daca572 +Author: Jerome Glisse +Date: Mon Nov 19 14:37:21 2007 +0100 + + drm: fix dead lock in drm_buffer_object_transfer + +commit a74181ddb2776d7ffbcb10d8103950bd3d88b00d +Author: Robert Noland +Date: Tue Nov 13 17:50:46 2007 -0500 + + Bug #13233: Fix build on FreeBSD. + +commit c12a3a3ce08cbbba118acd8742b2ef990b417eea +Author: Robert Noland +Date: Sun Nov 18 22:40:13 2007 -0800 + + Bug #13233: Chase move of agp headers on FreeBSD. + +commit a90510966e12e20d3c51d224dda607ac9951d039 +Author: Dave Airlie +Date: Sun Nov 18 19:25:31 2007 +1000 + + radeon: refactor out the fb/agp location read/write. + + Add a new get param to get the fb location into userspace. Mesa currently + hits MMIO to do this, but this isn't always possible. + +commit e0ab2034c3d87b9a1bbd86bfccd806793ce7c5b4 +Author: Jesse Barnes +Date: Fri Nov 16 13:58:43 2007 -0800 + + Fix connection status ABI + + Userspace expects a 1 based enum for connection status so fix up the kernel + definition. + +commit 96e136c4794f9f57e18c1f984a27bbad4b5e1500 +Author: Jesse Barnes +Date: Fri Nov 16 13:57:42 2007 -0800 + + Fix typo in copy_to_user calls + + We want to copy to card_res->modes + copied, not &card_res->modes + copied. + +commit 307fc3c92c85ded23de414b0d1a3d48f934c666d +Author: Stephane Marchesin +Date: Fri Nov 16 15:02:25 2007 +0100 + + nouveau: also mention the number of succcessfully copied bios bytes. + +commit f2c8d39a0f99dab9d69d927214c8c66aabb70c5c +Author: Jeremy Kolb +Date: Thu Nov 15 22:09:59 2007 -0500 + + nouveau: rename + +commit a3e627f8d66b5e9e896837824ce76664e5997b27 +Author: Jeremy Kolb +Date: Thu Nov 15 20:46:49 2007 -0500 + + nouveau: flip buffer into gart. + +commit 7ec4ebe95e7eec6625d68ae6300255901b69d5c7 +Author: Jesse Barnes +Date: Thu Nov 15 17:14:03 2007 -0800 + + Use user copy routines for writing modes & ids back to userspace + + Since the drm_mode_card_res structure contains user pointers, we have to use + put_user and copy_to_user to write stuff out. The DRM ioctl wrapper will only + take care of copying the base drm_mode_card_res struct, not the included + arrays. + +commit baf5d20297577c81d0a6be1abcc45555ed83643c +Author: Stephane Marchesin +Date: Thu Nov 15 20:42:38 2007 +0100 + + nouveau: be verbose about PPC bios for now. + +commit 9b2a95bc6c9ddbf481d5f6017d9e85ed4def095d +Author: Stephane Marchesin +Date: Thu Nov 15 18:01:26 2007 +0100 + + nouveau: revert the nv34 context size change, it was not the culprit after all. + +commit 3c998d8fcbb7745fd949347823eca678c6f904b8 +Author: Stephane Marchesin +Date: Thu Nov 15 16:00:25 2007 +0100 + + nouveau: use get_property instead of of_get_property on pre-2.6.22 kernels. + +commit d1b0258b32ad2af99f3aff4f0aedea676d0ff421 +Merge: ca499f4 6206091 +Author: Thomas Hellstrom +Date: Thu Nov 15 10:42:47 2007 +0100 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + +commit 6206091e5f300616c27dc834922f2976d97f72d4 +Author: Thomas Hellstrom +Date: Thu Nov 15 10:38:55 2007 +0100 + + mm fixups. + +commit ca499f4d14ae29159f13957f2adc0536c71bf6d4 +Author: Dave Airlie +Date: Thu Nov 15 19:22:01 2007 +1100 + + libdrm: return crtc id to userspace + +commit f32688d3d011d631c18d584603d684edd9b9b512 +Author: Dave Airlie +Date: Thu Nov 15 18:31:50 2007 +1100 + + libdrm: add crtc/output ids to userspace interface + +commit 1e8984a3674c89c3b5ef9b6d3747fb75e10774b3 +Author: Dave Airlie +Date: Thu Nov 15 18:31:23 2007 +1100 + + drm: send correct fb id to userspace + +commit 2520d3fd99636e493060d51b1c3287a5faac22bf +Author: Dave Airlie +Date: Thu Nov 15 16:52:04 2007 +1100 + + modes: pass type to userspace for preferred showing + +commit 7136f55faaf3afefe522ec978a4cbc906dace861 +Author: Dave Airlie +Date: Thu Nov 15 16:51:48 2007 +1100 + + drm: don't remove mappings added by the driver + +commit 12cbe1365b38ae04ad4979123eb5b4e9538ee533 +Author: Dave Airlie +Date: Thu Nov 15 16:51:35 2007 +1100 + + intel: fixup || vs | + +commit d275bb8fb87d8dc23e9a62c5f82627e36c8dc589 +Author: Dave Airlie +Date: Thu Nov 15 16:51:15 2007 +1100 + + tests: update for new drm interface + +commit f0fe478c1587780690edc465d957a762e02acc8a +Merge: e1bc147 62cdc6d +Author: Dave Airlie +Date: Thu Nov 15 15:04:19 2007 +1100 + + Merge branch 'master' into modesetting-101 + + Conflicts: + + shared-core/i915_dma.c + tests/ttmtest/src/ttmtest.c + +commit 62cdc6dbb3545d21bc3a68987d0781f277ae6ee4 +Author: Dave Airlie +Date: Thu Nov 15 14:43:23 2007 +1100 + + i915: remove excess debug output + +commit 2cf7ad0d9b2f265537c7030c6f93b4275cb2d051 +Author: Stephane Marchesin +Date: Thu Nov 15 03:43:22 2007 +0100 + + nouveau: Copy the PPC bios to RAMIN on init, that lets us do proper output detection in user space. + +commit 2eee33ace5b647153a7cf20990efd12313cc8472 +Author: Dave Airlie +Date: Thu Nov 15 13:29:55 2007 +1100 + + intel: add flushing for i8xx chipsets. + + Add a nut vs hammer style chipset flush for the i8xx chipsets - reenable TTM + code paths + +commit 46235ea4595152d8dd5f016c18c6845a77db30b0 +Author: Patrice Mandin +Date: Wed Nov 14 23:31:59 2007 +0100 + + nouveau: nv30: missing ramin init, does it brake other hw? + +commit 68cdcda1eaf02353f2ef2d637c6bf1003c849185 +Author: Kristian Høgsberg +Date: Wed Nov 14 14:28:34 2007 -0500 + + Add new shared header file drm_internal.h. + + This header file is shared across linux and bsd, but is not installed + for user space to access. It's the place to put prototypes and data + types that aren't platform or chipset specific, but still internal to + the drm. + +commit 448ccf13ba647a4b649857c661ab9c64bce91795 +Author: Stephane Marchesin +Date: Wed Nov 14 02:52:55 2007 +0100 + + nouveau: adjust the size of the NV34 context. That fixes mobile PPC cards. + +commit f3708b4c04b35b03c28b2297c23eb424206747cd +Author: Thomas Hellstrom +Date: Tue Nov 13 15:42:08 2007 +0100 + + Fix ttmtest. + +commit 2d7eb4434f50ab190b530a7ef23e4a361092a33d +Author: Ben Skeggs +Date: Wed Nov 14 05:36:20 2007 +1100 + + nouveau: Also wait until CACHE1 gets emptied. + +commit 7e4bb6099a492b90374565aa574ba65f19ae2ab2 +Author: Ben Skeggs +Date: Wed Nov 14 05:11:11 2007 +1100 + + Revert "nouveau: stub superioctl" + + This reverts commit 2370ded79b4176d76cda1ec5f495fd33c2d566ed. + + Err.. didn't mean for that to slip in :) + +commit eb5487b9ca1d7ce60d5ddc784089d91cf176f439 +Merge: 2370ded 7c1e59f +Author: Ben Skeggs +Date: Wed Nov 14 05:09:07 2007 +1100 + + Merge branch 'fifo-cleanup' into upstream-master + +commit 7c1e59fb0c5043d3d369f5feb8e195a6a3da3457 +Author: Ben Skeggs +Date: Wed Nov 14 04:24:36 2007 +1100 + + nouveau: Attempt to wait for channel idle before we destroy it. + +commit 53ab6026cfb20bfdf34b245e41af424be62941a8 +Author: Ben Skeggs +Date: Wed Nov 14 04:15:13 2007 +1100 + + nouveau: Use "new" NV40 USER control regs. + + Probably entirely pointless, but a simple change in any case. + +commit 7246a33dd104903bc9227628270712ea9e6168d8 +Author: Ben Skeggs +Date: Wed Nov 14 04:05:48 2007 +1100 + + nouveau: store user control reg offsets in channel struct + +commit d0904f0f2b87c725d3e67060419c445259bd4a5e +Author: Ben Skeggs +Date: Wed Nov 14 03:27:37 2007 +1100 + + nouveau: funcs to determine active channel on PFIFO. + +commit 2370ded79b4176d76cda1ec5f495fd33c2d566ed +Author: Ben Skeggs +Date: Fri Nov 9 04:27:23 2007 +1100 + + nouveau: stub superioctl + +commit 793cd1dad5e248509a1b09dce7126f236efadb3e +Author: Jesse Barnes +Date: Sat Nov 10 14:39:36 2007 -0800 + + Make sure PLLs are enabled before writing pipe configuration regs + + Fix from the X driver. Make sure the PLLs are enabled and not in VGA mode + before writing PIPE(A|B)CONF regs to avoid hangs or crashes. + +commit c2f80ecf4be09b5b9866d12e3b25cdcf7996b1f4 +Author: Patrice Mandin +Date: Fri Nov 9 18:08:08 2007 +0100 + + suspend() and resume() need kernel 2.6.22 or later + +commit e1bc147ac9aa8ac2ac271b0a21f4138b17875ce5 +Author: Jerome Glisse +Date: Fri Nov 9 17:28:56 2007 +0100 + + drm: check edid data, so we deal well with broken driver. + +commit ffb89d4c3b6650551aaab06076896540a78faddf +Author: Jerome Glisse +Date: Fri Nov 9 15:47:24 2007 +0100 + + drm: split edid handling in get_edid & add_edid_mode + + This way driver can get_edid in output status detection + (using all workaround which are in get_edid) and then provide + this edid data in get_mode callback of output. + +commit d983ed90cb9de559271817e04bddc8b40fc16a0d +Author: Dave Airlie +Date: Fri Nov 9 11:30:50 2007 +1000 + + i915: cleanup pageflip derefs sarea even if no sarea exists + +commit e9805de5c736f899dea5220ab8b521cc69c9eca6 +Merge: c07dd80 c20370e +Author: Thomas Hellstrom +Date: Wed Nov 7 18:10:46 2007 +0100 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + + Conflicts: + + shared-core/i915_dma.c + +commit c20370e0969e41bbf735daf932e37ac5ec959213 +Author: Thomas Hellstrom +Date: Wed Nov 7 18:07:10 2007 +0100 + + Don't overwrite TTM page flags. + +commit 47497abc1e38081564db429329a3ba16198c1521 +Author: Dave Airlie +Date: Wed Nov 7 23:10:24 2007 +1000 + + i915: oops disable TTM is backwards + +commit c07dd80269fad45fdad61de0a43fe3d15cd1a119 +Merge: 5ce43a3 40fb079 +Author: Thomas Hellstrom +Date: Tue Nov 6 10:01:52 2007 +0100 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + + Conflicts: + + linux-core/Makefile.kernel + shared-core/i915_dma.c + shared-core/i915_drv.h + shared-core/i915_irq.c + +commit 40fb079aebae4277813e6a32e2e93c81dc0038e3 +Author: Thomas Hellstrom +Date: Tue Nov 6 09:47:57 2007 +0100 + + Avoid buffers not ending up on a list in some cases. + +commit 20eecf2b884193d865419312290b2bb9f94ebf37 +Author: Thomas Hellstrom +Date: Tue Nov 6 09:36:25 2007 +0100 + + Add missing drm_regman.c file. + +commit 9280076b6710e8fcc9594b7f8db87176d3e92097 +Author: Dave Airlie +Date: Tue Nov 6 18:13:46 2007 +1100 + + i915: disable TTM on 8xx chips for now until flushing is solved + +commit 349eebd567246e3c2d47734772e882ae50723cb9 +Author: Dave Airlie +Date: Tue Nov 6 18:00:10 2007 +1100 + + i915: compat code doesn't work in i8xx hw. + +commit 81b7f9b71c45fc621e0b5770062aedf5ae5e57ee +Author: Zhenyu Wang +Date: Tue Nov 6 17:59:14 2007 +1100 + + [PATCH] i915: fix missing G33 detect in IS_I9XX + + G33 detect seems missing with Jesse's suspend/resume patch. + +commit b437c8ca0fe62a43661a31a3010284926d20f209 +Author: Dave Airlie +Date: Tue Nov 6 12:12:10 2007 +1000 + + drm/agp: kernel style fixes + +commit 9493ce6ca39b65b9f955943a043c0741a5c59f7c +Author: Dave Airlie +Date: Tue Nov 6 11:32:58 2007 +1000 + + i915: cleanup most of the whitespace + +commit 5ce43a346cb9b2a6f6f31f1f750db75d5628c15b +Merge: 1b91113 427cc56 +Author: Thomas Hellstrom +Date: Mon Nov 5 13:46:06 2007 +0100 + + Merge branch 'master' into modesetting-101 + + Conflicts: + + linux-core/drm_bufs.c + shared-core/i915_dma.c + shared-core/i915_drv.h + shared-core/i915_irq.c + +commit 427cc561b3dfbd504472e284e5fc16b63acd1816 +Author: Thomas Hellstrom +Date: Mon Nov 5 13:22:00 2007 +0100 + + Export a symbol. + +commit 44ad6f409d6d08163d26e20d41b1601b2fde53d7 +Author: Thomas Hellstrom +Date: Mon Nov 5 13:20:16 2007 +0100 + + Fix a user-buffer check. + +commit 1b91113957e731d264d1e5d49326597f3b78e96f +Author: Alan Hourihane +Date: Mon Nov 5 10:06:37 2007 +0000 + + remove unused define + +commit 306bb12603ad724f50fb6ce212a090ea7ea78013 +Author: Alan Hourihane +Date: Mon Nov 5 10:05:01 2007 +0000 + + remove duplicate and obsolete ioctl statements + +commit 71385d6f75bb3b551e2f8d9f74a4438f0f3da9df +Author: Alan Hourihane +Date: Mon Nov 5 10:03:26 2007 +0000 + + add missing lock + +commit d0956339e322238d2af5d63a2e65405ca3b8c4f8 +Author: Alan Hourihane +Date: Mon Nov 5 10:02:46 2007 +0000 + + Use _size + +commit 0bee83a8c8bca817459a0ee9caa6e13f3f1aa281 +Author: Alan Hourihane +Date: Mon Nov 5 10:00:43 2007 +0000 + + Pass pointer to drmModeRmMode. + +commit 5e86f67a34c50ec49e1d7b3b834d1695ebf5d4c8 +Author: Alan Hourihane +Date: Mon Nov 5 10:00:11 2007 +0000 + + pass pointer for drmModeRmFB + +commit 82ffcbbd628fc8c07d3becbbcb86a54214e78110 +Author: Dave Airlie +Date: Mon Nov 5 19:14:23 2007 +1000 + + drm: more kernel coding style cleanups + +commit 6ee5412da0cc7516472235805482b8632cb374ef +Author: Dave Airlie +Date: Mon Nov 5 19:09:18 2007 +1000 + + drm/ttm: apply linux kernel coding style to bo_lock/move/object/ttm.c + +commit 7ad38907075852e347b5b4432c96d199387f5ce8 +Author: Dave Airlie +Date: Mon Nov 5 19:05:32 2007 +1000 + + drm/ttm: kernel coding style for bo.c and objects.h + +commit 3b43ed51cca4cf4b03d74ee403b8a72b919f87c8 +Author: Dave Airlie +Date: Mon Nov 5 18:56:46 2007 +1000 + + drm: fix the the typo + +commit 78fe88baee9271ceaf6187019633e4cccfebb776 +Author: Li Zefan +Date: Mon Nov 5 18:48:27 2007 +1000 + + drm: fix memset size error + + The size passing to memset is wrong. + + Signed-off-by: Li Zefan + +commit 921bd07c242355d187018f36d74bd95fd0d02b17 +Author: Dave Airlie +Date: Mon Nov 5 12:56:55 2007 +1000 + + drm: update kernel generator script using v4l script + +commit 7f6bf84c238a1859ffd409c0ef1f1ca7eb5e6e72 +Author: Dave Airlie +Date: Mon Nov 5 12:42:22 2007 +1000 + + drm: remove lots of spurious whitespace. + + Kernel "cleanfile" script run. + +commit 3664de73955aafe912318c91717ff9ecc1027af2 +Author: Dave Airlie +Date: Mon Nov 5 12:10:52 2007 +1000 + + drm: move some of the OS stuff into the OS header + +commit d81bc78a04f3b72bdf2600158cea084223a3a682 +Author: Pekka Paalanen +Date: Thu Oct 25 22:34:45 2007 +0300 + + nouveau: more nv20_graph_init. + + This patch is originally from malc0_, but since it used some NV40_* + regs, I edited them into hex values with a comment. + This seems to correspond quite well with my own mmio-trace, + for the parts I cared to check. + +commit 5092865601ccaae1409abfa083147276916d6c25 +Author: Ben Skeggs +Date: Mon Nov 5 05:42:08 2007 +1100 + + nouveau: Use a sw method instead of notify interrupt to signal fence completion. + +commit 9096d50df7ac99f44d043556420f9f9f54e59b3f +Author: Ben Skeggs +Date: Mon Nov 5 05:15:32 2007 +1100 + + nouveau: disable m2mf buffer move for the moment + +commit 6abbbb2f4f5b6b280077a6c88bb643507c8ec8fa +Author: Ben Skeggs +Date: Mon Nov 5 04:44:40 2007 +1100 + + Fill fence sequence after emit ioctl. + +commit 0a2ab1a9003f132195fe70c145a78b4079a3fb7f +Author: Ben Skeggs +Date: Mon Nov 5 03:53:46 2007 +1100 + + nouveau: cleanups + +commit c1008104adcd45faad2c6c1a2192c86447f3d9a3 +Author: Ben Skeggs +Date: Mon Nov 5 02:35:56 2007 +1100 + + nouveau: only pass annoying messages if irq isn't handled fully. + +commit dfa449cf9a7ce5de9cbd571f604ae7c3c778dabd +Author: Ben Skeggs +Date: Mon Nov 5 02:32:46 2007 +1100 + + nouveau: vram is bar1 + +commit 173a5be28f4ed59e27d7a719f62bc275959b5b70 +Author: Ben Skeggs +Date: Mon Nov 5 02:20:35 2007 +1100 + + nouveau: hook up an inital fence irq handler + +commit 9a999e57af4a3f5a863c21154dd3b9618888c1f7 +Author: Ben Skeggs +Date: Mon Nov 5 00:01:38 2007 +1100 + + nouveau: crappy ttm mm init, disabled for now. + +commit a2e8e294d8e5d7cf179cb562745c1b613ff60e52 +Author: Dave Airlie +Date: Sun Nov 4 11:01:27 2007 +1100 + + drm: fix oops since user objects.. + +commit 998d120a47cab85e985b24932fe8f4682f5f78e9 +Author: Jeremy Kolb +Date: Fri Nov 2 19:46:27 2007 -0400 + + nouveau: add darktama's email address to authors section. + +commit 2dc2ee7a5aed18b82a1125d8e56a7ef92be18532 +Author: Jeremy Kolb +Date: Fri Nov 2 19:44:30 2007 -0400 + + nouveau: put it all together. + +commit c1aa08106e0a7190c7a303ec8a9b6b5339251137 +Author: Jeremy Kolb +Date: Fri Nov 2 19:43:53 2007 -0400 + + nouveau: Add darktama's fencing code. Restructure some stuff. + +commit 2c6cbea7dedc0b06114117b4c4ce2a23f74c54f6 +Author: Jeremy Kolb +Date: Thu Nov 1 23:35:46 2007 -0400 + + nouveau: incorporate darktama's buffer object work. + +commit 239e81093f05e7d81f95a55527f3c9fcb8fc483a +Author: Jeremy Kolb +Date: Thu Nov 1 19:04:38 2007 -0400 + + nouveau: more filling in for ttm. Change copyright since it's based off of radeon code. + +commit 9906c7e54bdb9fa172155eaa57b7e6c47ab01c58 +Merge: 629c8b0 94c22c3 +Author: Thomas Hellstrom +Date: Fri Nov 2 16:07:36 2007 +0100 + + Merge branch 'master' into modesetting-101 + +commit 94c22c334948a49641f4a1fa84687f992e5cc5cb +Author: Thomas Hellstrom +Date: Fri Nov 2 16:03:41 2007 +0100 + + User buffer support. + +commit c06808fb6521822238bca4574758f30246b71c2d +Author: Thomas Hellstrom +Date: Fri Nov 2 15:52:00 2007 +0100 + + Return fence errors. + Time out properly in the presence of signals. + +commit bb5f2158dbd30dbbffa3881fac75b71d71ecaaf9 +Author: Dave Airlie +Date: Sat Nov 3 00:39:44 2007 +1000 + + radeon: set the address to access the aperture on the CPU side correctly + + This code relied on the CPU and GPU address for the aperture being the same, + On some r5xx hardware I was playing with I noticed that this isn't always true. + I wonder if this will fix some of those r4xx DRI issues we've seen in the past. + +commit 629c8b0dbf975632473d848f60606baf309f2f3b +Merge: 90d8f79 5766d81 +Author: Jesse Barnes +Date: Thu Nov 1 15:27:55 2007 -0700 + + Merge branch 'master' into modesetting-101 + + Conflicts: + + linux-core/Makefile.kernel + linux-core/drm_stub.c + linux-core/i915_drv.c + shared-core/i915_dma.c + shared-core/i915_drv.h + + Fixup suspend/resume conflicts (basically use what's in DRM master for now). + Also fix up a few other conflicts that snuck in (i915_dma changes etc.). + +commit 128a8f7ea20af2549e448157b431d5c1f90f37c3 +Author: Jesse Barnes +Date: Thu Nov 1 15:02:26 2007 -0700 + + Use unsigned long instead of u64 in drm_modeset_ctl_t + + A bad idea, ABI-wise, but we're going to be changing this structure anyway + before we merge upstream, so just fix the build for now. + +commit 00d60265570c866261c09fd3397d5853a1ce196a +Author: Jesse Barnes +Date: Thu Nov 1 12:50:03 2007 -0700 + + Cleanup vblank_init and fix drm_irq_install + + The vblank_init function wanted a couple of cleanups. + + Also, drm_irq_install wasn't checking the new return value of irq_postinstall. + If it returns a failure, assume IRQs didn't get set up and take appropriate + action. + +commit 5766d81074d6faa7f14b45635765cdb7209597fc +Author: Stephane Marchesin +Date: Thu Nov 1 15:48:46 2007 +0100 + + nouveau: don't use AGP on PPC. It's a hopeless case. + +commit 1b176e76134224e2af94d24ff7b33c7b536eaeea +Author: Jeremy Kolb +Date: Wed Oct 31 21:27:00 2007 -0400 + + nouveau: add missing file. + +commit 9416541fb29666c630f2bcfcc0f3ae0b6c4436d8 +Merge: 31847b4 61cbcb5 +Author: Jeremy Kolb +Date: Wed Oct 31 20:14:48 2007 -0400 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm + +commit 31847b4b62575739a164e019b33ced0531683403 +Author: Jeremy Kolb +Date: Wed Oct 31 20:13:01 2007 -0400 + + nouveau: ttm stubs + +commit 61cbcb5dbe487c6d4eba04794cbaa0279ab807b0 +Author: Dave Airlie +Date: Thu Nov 1 10:34:11 2007 +1100 + + drm/ttm: add support for cached un-snooped mappings. + + This mapping allows cached objects to be mapped in/out of the TT space + with the appropriate flushing calls. + + It should put back the old CACHED functionality for snooped mappings + +commit 6b0b2546c29858866ae1986b3b7254551245967e +Author: Dave Airlie +Date: Thu Nov 1 02:00:36 2007 +1000 + + i915: fix compat code on 965/g33 + +commit 17f0882d5080a2436e4351c2bf497b8e00bc8e74 +Author: Dave Airlie +Date: Wed Oct 31 11:33:34 2007 +1100 + + drm: add chipset flushing via agp support + +commit 2489062a3319c72197914ee06b089ae581c5f0a8 +Author: Dave Airlie +Date: Wed Oct 31 11:27:44 2007 +1100 + + i915: add backwards compat chipset flushing code + +commit c106a7d8b9ddc1f6da3d462e3114af2ca72b3b46 +Author: Dave Airlie +Date: Wed Oct 31 11:21:05 2007 +1100 + + drm: call driver load after initing agp subsystem + +commit 91aae7e683786a48547872b0a5fa92b2232e02c0 +Merge: 7e9ea55 79744d7 +Author: Jesse Barnes +Date: Tue Oct 30 12:52:46 2007 -0700 + + Merge branch 'master' into vblank-rework, fixup remaining drivers + + Conflicts: + + linux-core/drmP.h + linux-core/drm_drv.c + linux-core/drm_irq.c + shared-core/i915_drv.h + shared-core/i915_irq.c + shared-core/mga_drv.h + shared-core/mga_irq.c + shared-core/radeon_drv.h + shared-core/radeon_irq.c + + Merge in the latest master bits and update the remaining drivers (except + mach64 which math_b is working on). Also remove the 9xx hack from the i915 + driver; it seems to be correct. + +commit 79744d730c90019edd367eee4a8ec1fa22d53402 +Author: Stephane Marchesin +Date: Tue Oct 30 16:55:17 2007 +0100 + + Nouveau: add a comment about SKIPS for next API breakage. + +commit 0cebcd43dd7b950c07625601b87c72329857d831 +Author: Stephane Marchesin +Date: Tue Oct 30 16:54:57 2007 +0100 + + Nouveau: fold some loops. + +commit 50dec29c800a6e980a01be38190e44a0ba7916b5 +Author: Dave Airlie +Date: Tue Oct 30 17:51:59 2007 +1000 + + drm/i915: add driver cache flush entry point + + Use clflush on Intel hardware to flush cached objects. + +commit ff5889f8316e0c16112f114c1c8f57645b8dc54f +Author: Kristian Høgsberg +Date: Mon Oct 29 19:32:32 2007 -0400 + + Move struct drm_drawable_info out of public header file. + +commit 6342e0507be177be309774aff0c31746beab73f6 +Author: Jesse Barnes +Date: Mon Oct 29 10:51:11 2007 -0700 + + Remove unused memory save areas + + These need to be kmalloc'd separately anyway or we may hit kmalloc size + limits. + +commit cc745fcc3a16cb1ffc2ab578155dc880b862f95a +Author: Stephane Marchesin +Date: Sun Oct 28 01:59:11 2007 +0200 + + nouveau: don't touch PMC_BOOT_1 on x86, it seems to be undefined on some early cards. + +commit 90d8f792794d46d1a8e998856bc7bbe54596114b +Merge: 3436965 89d44a1 +Author: Jerome Glisse +Date: Sun Oct 28 00:55:27 2007 +0200 + + Merge branch 'radeon-ttm' of git://people.freedesktop.org/~airlied/drm into modesetting-101 + + Conflicts: + + linux-core/Makefile.kernel + linux-core/drmP.h + shared-core/radeon_cp.c + shared-core/radeon_drv.h + shared-core/radeon_irq.c + + modified: linux-core/Makefile.kernel + modified: linux-core/ati_pcigart.c + modified: linux-core/drmP.h + new file: linux-core/radeon_buffer.c + modified: linux-core/radeon_drv.c + new file: linux-core/radeon_fence.c + modified: shared-core/radeon_cp.c + modified: shared-core/radeon_drm.h + modified: shared-core/radeon_drv.h + modified: shared-core/radeon_irq.c + modified: tests/ttmtest/src/ttmtest.c + +commit 1e2a2bababf3fbaa0a665983856761c2284dba30 +Author: Jesse Barnes +Date: Fri Oct 26 16:10:02 2007 -0700 + + i915: suspend/resume support + + Add suspend/resume support to the i915 driver. Moves some of the + initialization into the driver load routine, and fixes up places where we + assumed no dev_private existed in some of the cleanup paths. This allows + us to suspend/resume properly even if X isn't running. + +commit 6707ab862656d766a4c78b85e5584a29d2434126 +Author: Jesse Barnes +Date: Fri Oct 26 16:08:54 2007 -0700 + + update DRM sysfs support + + Make DRM devices use real Linux devices instead of class devices, which are + going away. While we're at it, clean up some of the interfaces to take + struct drm_device * or struct device * and use the global drm_class where + needed instead of passing it around. + +commit b9d8ddd3ca587e87474d37637096b9ebd0a927e9 +Author: Stephane Marchesin +Date: Fri Oct 26 15:11:38 2007 +0200 + + nouveau: flip the CHECK_STATE bit off on nv30. This lets you do 8-bit surface destination. + +commit 343696583c77983ac7689b24cd49529864035cf7 +Merge: 26c32a3 a4c87d3 +Author: Thomas Hellstrom +Date: Fri Oct 26 10:33:42 2007 +0200 + + Merge branch 'master' into modesetting-101 + +commit a4c87d3796cac374d25e01b26bdbb9028ce03107 +Author: Thomas Hellstrom +Date: Fri Oct 26 10:31:14 2007 +0200 + + Minor libdrm fixes. + +commit 1681189e11b5a00ae72a55de932146ea37f7afd9 +Author: Thomas Hellstrom +Date: Fri Oct 26 10:25:57 2007 +0200 + + Buffer flags and masks are 64-bit. + + don't mask off the high dword. + Signed-off-by: Thomas Hellstrom + +commit 26c32a3d797efb7474e5ae88c46afcb0e6015294 +Author: Thomas Hellstrom +Date: Fri Oct 26 10:25:57 2007 +0200 + + Buffer flags and masks are 64-bit. + don't mask off the high dword. + +commit 7e9ea55a2f052cc939ba9bbf9edac39798344b7a +Author: Ian Romanick +Date: Thu Oct 25 17:14:53 2007 -0700 + + Initial pass at porting MGA to vblank-rework + + This is currently only compile tested. + +commit 9adf8c02563b1e6110e46dabd733e2dc440b4200 +Merge: d5f2b4b b9d9c30 +Author: Thomas Hellstrom +Date: Thu Oct 25 11:00:45 2007 +0200 + + Merge branch 'master' into modesetting-101 + + Conflicts: + + linux-core/Makefile.kernel + linux-core/drm_bo.c + linux-core/drm_objects.h + +commit b9d9c30474238ac8ba4899a19fe4a97e9376f6c4 +Author: Thomas Hellstrom +Date: Thu Oct 25 10:29:15 2007 +0200 + + Tighten permissions on some buffer manager ioctls. + Set bo init minor to 0. + Add the version function to header. + +commit 11f3e5e53f8fc4de90d1c289e0ba218ddfca23dc +Author: Thomas Hellstrom +Date: Thu Oct 25 10:12:21 2007 +0200 + + Buffer manager: + Implement a version check IOCTL for drivers that don't use + drmMMInit from user-space. + Remove the minor check from the kernel code. That's really up + to the driver. + Bump major. + +commit b5cad27e05ad3666be8ccdf71e10d743efa5849e +Author: Thomas Hellstrom +Date: Thu Oct 25 09:49:33 2007 +0200 + + Fix buffer object flag / mask checking. + +commit 07706c9b79b88baff5f160351b482ccdf3315f0c +Merge: 3d4b32e a70fe82 +Author: Thomas Hellstrom +Date: Thu Oct 25 09:24:45 2007 +0200 + + Merge branch 'master' into drm-ttm-finalize + +commit a70fe82baf0ca2be98e02680cff489f90b0ea3de +Author: Dave Airlie +Date: Thu Oct 25 16:53:18 2007 +1000 + + i915: relocate buffers before validation add memory barrier between two + +commit c5f158abbe97492f56eb60ac54679945e9d6ddae +Author: Dave Airlie +Date: Thu Oct 25 16:52:33 2007 +1000 + + i915: remove relocatee kernel mapping sooner stops mutex taking during sleep + +commit 07abc3384e24356d1302459e2e5c4699ed7b0072 +Author: Roel Kluin <12o3l@tiscali.nl> +Date: Thu Oct 25 10:24:55 2007 +1000 + + missing mutex unlock bug + +commit 83199c257ea68a7cc0c6928109ff77bf25131819 +Author: Eric Anholt +Date: Wed Oct 24 16:27:46 2007 -0700 + + Fix missing \n on some DRM_ERROR in i915_dma.c + +commit fd7c24753c4020a0022aaa183cfe8fc04a307abd +Author: Dave Airlie +Date: Wed Oct 24 11:13:15 2007 +1100 + + i915: use a drm memory barrier define + +commit d5f2b4b411c5ca95d6f66a33d213ece387ac4fc5 +Merge: 198170a a294aa7 +Author: Alan Hourihane +Date: Tue Oct 23 15:34:12 2007 +0100 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + +commit 198170ab97bbf2ca6362bb7100e9ed86d90aa51f +Author: Alan Hourihane +Date: Tue Oct 23 15:33:20 2007 +0100 + + Need fb attached + +commit a294aa724a1e932fb6017383e08532bfcc914df0 +Author: Dave Airlie +Date: Tue Oct 23 17:54:07 2007 +1000 + + i915: require mfence before submitting batchbuffer + +commit 9a115080e870f8196adef4a19598343e63e61e45 +Author: Stephane Marchesin +Date: Tue Oct 23 02:18:56 2007 +0200 + + nouveau: fix IGP + +commit 3d4b32e91647f61712d54a46f0a173deff46e6b4 +Author: Thomas Hellstrom +Date: Mon Oct 22 19:16:39 2007 +0200 + + Remove duplicate file. + +commit 824330d0e652e0bab1851437f120c7e76feee832 +Author: Thomas Hellstrom +Date: Mon Oct 22 19:09:36 2007 +0200 + + Don't clobber the unfenced list with DONT_FENCE operations. + +commit 919c886b2b7728768720aac93e0f6fd1acb8b2df +Author: Thomas Hellstrom +Date: Mon Oct 22 18:59:37 2007 +0200 + + A cmdbuf mutex to implement validate-submit-fence atomicity in the absence + of a hardware lock. + +commit d4ce4be0dad516caa43fddcd8a56c28f264c9c2a +Author: Thomas Hellstrom +Date: Mon Oct 22 13:16:51 2007 +0200 + + Setstatus header. + +commit 22883ff26b8a45ab2bec60accc4b822cf6b4f214 +Author: Dave Airlie +Date: Mon Oct 22 11:54:41 2007 +1100 + + i915: split reloc execution into separate function + +commit 6420d33b02db0da900140c238bb35f13abc182e7 +Author: Thomas Hellstrom +Date: Sun Oct 21 12:57:43 2007 +0200 + + Get the lock flags right in libdrm. + +commit 4ebe7471cbfdd6afa33485ea9ec55812da38445f +Author: Thomas Hellstrom +Date: Sun Oct 21 12:31:00 2007 +0200 + + Disable i915 accelerated blit copy moves for now until we can + guarantee that it doesn't clash with the X server. + +commit 9ddff6d15fdff571193aac10ef81e67798fd712d +Author: Thomas Hellstrom +Date: Sun Oct 21 12:26:26 2007 +0200 + + Adapt i915 super-ioctl for lock-free operation. + +commit 3b19b50cb5cd31e60eb03e99dd1109b6d0f5b8a3 +Author: Thomas Hellstrom +Date: Sun Oct 21 12:20:56 2007 +0200 + + Remove the need for the hardware lock in the buffer manager. + Add interface entry cleaning a memory type without touching NO_EVICT buffers. + +commit 48b5eaf303b60077faed09db77785d7a544ac335 +Author: Thomas Hellstrom +Date: Sat Oct 20 16:49:43 2007 +0200 + + Simple replacement for hardware lock in some cases. + Fix i915 since last commit. + +commit c0e3537e77f1765001f665f93e5349ccd0f1d092 +Author: Thomas Hellstrom +Date: Fri Oct 19 16:44:12 2007 +0200 + + Some comment updates pending removal of the init mutex. + +commit 733ff568346e8fe40e9790f21f8b7efc659d5d12 +Author: Thomas Hellstrom +Date: Fri Oct 19 16:28:47 2007 +0200 + + No fence_class argument on drmBOSetStatus since it's not + associated with a particular command submission. + +commit cf2d1bba5513ae38d8efbaf50251fc136ed1d414 +Author: Thomas Hellstrom +Date: Fri Oct 19 16:24:36 2007 +0200 + + Remove the clean_unfenced function. + Change the restriction that non-creators can't change the buffer flags to + non-creators can't change EVICT and NO_MOVE flags. + +commit 2c5c18fbd394f419a9cf650720a1187440c643cd +Author: Robert Noland +Date: Wed Oct 17 13:25:31 2007 -0700 + + Bug #12838: Fix lock test client vs. server master race and misplaced closes. + +commit e7523d337997018a86530266a8f3f88dd061c138 +Author: Robert Noland +Date: Wed Oct 17 13:20:46 2007 -0700 + + Fix a race in the auth test where client prevents server from being master. + +commit 36120264ca8f43078f8748e022faeb9471edcb36 +Author: Jung-uk Kim +Date: Wed Oct 17 12:50:29 2007 -0700 + + Bug #11870: FreeBSD hardware lock cleanup fix with multiple opens by a process. + + Previously, the lock would get released on the first close by the X Server + (during AIGLX setup), and the Radeon driver would then hang in initialization + due to unexpected failure in DRM calls that required the lock to be held. + + Based on a patch by Kostik Belousov. + +commit bb29ba7fa77659be284c365ebfb2f740491e8506 +Author: Thomas Hellstrom +Date: Wed Oct 17 10:57:12 2007 +0200 + + Only allow creator to change shared buffer mask. + +commit 086c058a417317491320129d2cbeb68d1cfcfefe +Author: Thomas Hellstrom +Date: Wed Oct 17 10:55:21 2007 +0200 + + Remove the op ioctl, and replace it with a setuser ioctl. + + Remove need for lock for now. + May create races when we clean memory areas or on takedown. + Needs to be fixed. + Really do a validate on buffer creation in order to avoid problems with + fixed memory buffers. + +commit 0d1926d36e59ddfc34d8c9c0cdef10b71a49ecf1 +Author: Thomas Hellstrom +Date: Thu Oct 4 10:14:41 2007 +0200 + + Revert "Replace NO_MOVE/NO_EVICT flags to buffer objects with an ioctl to set pinning." + + This reverts cf2d569daca6954d11a796f4d110148ae2e0c827 commit. + +commit cd276d9cab0be8eff2d9450e5c95b6eb3cd639af +Author: Thomas Hellstrom +Date: Thu Oct 4 10:01:30 2007 +0200 + + Revert "Copy the important parts of object_validate into object_create()." + + This reverts f9c27aa50b715a7d21858f1ce9e4785120bd0c36 commit. + +commit 12b989a7108a52f16b1b1bb6dd2ea818c235b52c +Author: Thomas Hellstrom +Date: Thu Oct 4 09:51:01 2007 +0200 + + Revert "Remove the pinned buffer from the LRU when pinning." + + This reverts 3a0bc518e35c62bb9c64c9105f836584d949653f commit. + +commit 646560d1d112b58899f9e4cab0c966cec7e0b8c3 +Author: Thomas Hellstrom +Date: Thu Oct 4 09:50:29 2007 +0200 + + Revert "Add some more verbosity to drm_bo_set_pin_req comments." + + This reverts e7bfeb3031374653f7e55d67cc1b5c823849359f commit. + +commit be2d68914d0992a37b9fb4d93338aeaf2240c4f5 +Author: Alan Hourihane +Date: Wed Oct 17 09:35:44 2007 +0100 + + Fix a crash on X startup + +commit ec1162b212248042bf1317abcb3c47bb10db8aa3 +Author: Dave Airlie +Date: Wed Oct 17 15:36:14 2007 +1000 + + i915: lock struct mutex about buffer object lookups + +commit 90bfc8e611cb0c72ee03dce47027b50d2cc614b1 +Merge: 2b07b0a db1709f +Author: Alan Hourihane +Date: Tue Oct 16 15:28:33 2007 +0100 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + + Conflicts: + + linux-core/drm_bo.c + linux-core/drm_objects.h + shared-core/i915_dma.c + shared-core/i915_drv.h + +commit db1709f2f3f8cab2477fb149b58420de4db65654 +Author: Michel Dänzer +Date: Tue Oct 16 15:10:08 2007 +0200 + + Revert part of earlier commit that caused an unresolved symbol for i915. + +commit 3f1aa1550353e828814169915c9a74c67d2e81cd +Author: Dave Airlie +Date: Tue Oct 16 22:28:00 2007 +1100 + + drm: drop drm bo list handling code + +commit efc4fd7c4dabed384fa1ab67e744d38025aff47d +Author: Dave Airlie +Date: Tue Oct 16 22:08:55 2007 +1100 + + drm: rename drmBOUnReference to drmBOUnreference for consistency + +commit a69c85fec8ed323bffb1324ea08157b3897e97db +Author: Kristian Høgsberg +Date: Tue Oct 9 21:09:31 2007 -0400 + + Drop destroy ioctls for fences and buffer objects. + + We now always create a drm_ref_object for user objects and this is then the only + things that holds a reference to the user object. This way unreference on will + destroy the user object when the last drm_ref_object goes way. + +commit dccefba71a65566e7e1628b3be67621866000411 +Author: Kristian Høgsberg +Date: Tue Oct 9 21:09:30 2007 -0400 + + Take bo type argument out of the ioctl interface. + + The buffer object type is still tracked internally, but it is no longer + part of the user space visible ioctl interface. If the bo create ioctl + specifies a non-NULL buffer address we assume drm_bo_type_user, + otherwise drm_bo_type_dc. Kernel side allocations call + drm_buffer_object_create() directly and can still specify drm_bo_type_kernel. + Not 100% this makes sense either, but with this patch, the buffer type + is no longer exported and we can clean up the internals later on. + +commit 440fc5113ef1ffb1a22bff92cf34eaf23896db8d +Author: [utf-8] Kristian Høgsberg +Date: Tue Oct 9 21:09:29 2007 -0400 + + Eliminate support for fake buffers. + +commit 9fdab5b5c512f586012654917438327b3c67eaa4 +Author: Ben Skeggs +Date: Tue Oct 16 14:43:57 2007 +1100 + + nouveau: revert unintended change. + +commit 677753047f2b8a8b0b12bae348a2f4f9718682f1 +Author: Ben Skeggs +Date: Tue Oct 16 14:42:26 2007 +1100 + + nouveau: Cleanup PGRAPH handler, attempt to survive PGRAPH exceptions. + +commit 3af053779cb0fe9b75a657df76c3dd0cc08966b6 +Author: Ben Skeggs +Date: Tue Oct 16 13:32:03 2007 +1100 + + nouveau: Survive PFIFO_CACHE_ERROR. + +commit 6398325ba11da8a01c72f6203af0a2e4b43125c2 +Author: Ben Skeggs +Date: Tue Oct 16 13:27:27 2007 +1100 + + nouveau: Handle multiple PFIFO exceptions per irq, cleanup output. + +commit 2b07b0a45d32a9ffb7f6b9bb1b8f6f8e615524cb +Author: Alan Hourihane +Date: Mon Oct 15 11:54:18 2007 +0100 + + should be unlocked + +commit cc9be8ac323e47616e48adebc5cc85c654524b45 +Author: Alan Hourihane +Date: Mon Oct 15 11:51:19 2007 +0100 + + Fix some buffer teardown problems. + +commit 30353c8efcc026ee8940f3eadab084c42a3acd4e +Author: Stephane Marchesin +Date: Sun Oct 14 23:07:30 2007 +0200 + + nouveau: PPC fixes. These regs are very touchy. + +commit 837e364353b3137ce87b5cce9c06f05a3d603201 +Author: Jeremy Kolb +Date: Sun Oct 14 10:56:31 2007 -0400 + + nouveau: fix warning. + +commit 811e43f9e27abdf4c8a4b36c7c287e53134fc950 +Author: Jeremy Kolb +Date: Sun Oct 14 10:56:17 2007 -0400 + + nouveau: fix warning. + +commit 8d3cb7e472ceb31a28de3acc19176e3a2d2995b1 +Author: Dave Airlie +Date: Sun Oct 14 21:19:13 2007 +1000 + + i915: fix vbl_swap allocation + +commit 3ab7627651f4c48a114d91158d41e4c4f528c4cc +Author: Pekka Paalanen +Date: Fri Oct 12 23:55:59 2007 +0300 + + nouveau: Fix a typo in nv25_graph_context_init + +commit 50deb31e9ff556f941449bc788821eaa2e5f9e34 +Author: Stuart Bennett +Date: Tue Oct 9 20:39:10 2007 +0100 + + nouveau: Fix typos in nv20_graph_context_init + +commit 0d2554f83e72cae1bc44e476fbed4fc78873264f +Author: Pekka Paalanen +Date: Fri Oct 12 23:43:31 2007 +0300 + + nouveau: Make notifiers go into PCI memory + + On some hardware notifers in AGP memory just don't work. + +commit 9d779e2c88a02f5f9d57618145654610f0f10e28 +Author: Arthur Huillet +Date: Fri Oct 12 22:39:58 2007 +0200 + + nouveau: mandatory "oops I forgot half of the files" commit + +commit 74ea019863c1d08d31eac81d3bfc73e97479b2c5 +Author: Arthur Huillet +Date: Fri Oct 12 22:35:39 2007 +0200 + + nouveau: added support for software methods, and implemented those necessary for NV04 (TNT1) to start X + +commit 74001c34e5ad768feec8b2fbe9a617bc598a0a4b +Author: Dave Airlie +Date: Fri Oct 12 10:54:38 2007 +1000 + + i915: add superioctl support to i915 + + This adds the initial i915 superioctl interface. The interface should be + sufficent even if the implementation may needs fixes/optimisations internally + in the drm wrt caching etc. + +commit 604f02ff619d87d1372bcb7969c826d981fefc60 +Author: Dave Airlie +Date: Fri Oct 12 09:46:11 2007 +1000 + + i915: check mask instead of flags for buffer fence types + +commit f0fd53f86b30e230f3f34b49b54392d20f053a89 +Author: Eric Anholt +Date: Wed Oct 10 15:31:00 2007 -0700 + + FreeBSD: Fill in domain field when supported. + +commit fc7d4d19d36b6a12ed23d4d9e50826346258299f +Author: Ian Romanick +Date: Wed Oct 10 15:27:07 2007 -0700 + + Eliminate trailing whitespace from last commit. + +commit 83da774b192966b8c3f00b531ecfd4ec2b5eceaa +Author: Ian Romanick +Date: Wed Oct 10 15:25:30 2007 -0700 + + Fix command list submission on big-endian. + +commit bf126f4925bf1601935e085be2feeb004b474a05 +Author: Matthieu Castet +Date: Wed Oct 10 21:11:43 2007 +0200 + + nouveau : nv10 and nv04 PGRAPH_NSTATUS are different + +commit d912709a63c59d0b3e48458bac41fb76ea279214 +Author: Maarten Maathuis +Date: Wed Oct 10 16:41:21 2007 +0200 + + nouveau: PMC_BOOT_1 was not mapped. + +commit d4680333dc850832258d0f38fb2a236a3f568fc8 +Author: Thomas Hellstrom +Date: Wed Oct 10 09:31:51 2007 +0200 + + Only add native-type on EXE signals. Otherwise flush flags may + get out of sync. + +commit 9b294bbe0ec79177298ea32746fbed03fcf62055 +Author: Stephane Marchesin +Date: Wed Oct 10 01:12:20 2007 +0200 + + nouveau: try to fix big endian. + +commit 20928a2f2b3f1fa15c46edcf7e20f97566664ce8 +Author: Maarten Maathuis +Date: Sun Oct 7 19:01:56 2007 +0200 + + nouveau: A char is signed, so it may overflow for >NV50. + +commit 89d44a1023543a95b429bf72662b5e2308b0a550 +Author: Dave Airlie +Date: Sun Oct 7 08:16:38 2007 +1000 + + radeon: make vram fixed type + +commit 18952a167014f21545e3fda28ed2c09b09789323 +Author: Matthieu Castet +Date: Sat Oct 6 12:00:08 2007 +0200 + + nouveau : print correct value in nouveau_graph_dump_trap_info for nv04 + +commit 19b7cc34443889fc73de2e10462e1c0f9fa38041 +Merge: d351601 495bbba +Author: Dave Airlie +Date: Fri Oct 5 12:11:43 2007 +1000 + + Merge branch 'pre-superioctl-branch' + +commit d351601899e5814d809b8e86ab6f0d6e7676f585 +Author: Maarten Maathuis +Date: Thu Oct 4 09:46:16 2007 +0200 + + nouveau: Remove excess device classes. + +commit 319436c5cc51a1beb641e899987969fcf912deda +Author: Maarten Maathuis +Date: Thu Oct 4 09:39:31 2007 +0200 + + nouveau: NV47 context switching voodoo + warning + +commit b510517d59efcb45cc7079743be967bee122b251 +Author: Maarten Maathuis +Date: Thu Oct 4 09:31:46 2007 +0200 + + nouveau: Switch over to using PMC_BOOT_0 for card detection. + +commit 5ca12104f8a3eebecae6d238c1c456c8e6540ae3 +Author: Maarten Maathuis +Date: Tue Oct 2 21:54:37 2007 +0200 + + linux-drm: Obey device class requirements when detecting devices. + +commit 495bbbaadc93c574eb98dd2ad64bdca4d91d4152 +Author: Dave Airlie +Date: Thu Oct 4 16:13:22 2007 +1000 + + drm: fix page count calculation + + Also no need to do pre-populate work on single page + +commit 7fbd10d93310345164d1e65da281848b05493797 +Author: Stephane Marchesin +Date: Thu Oct 4 03:43:59 2007 +0200 + + nouveau: nv2a drm context switch support. + +commit 0379919e99542bc50cf9d0a8a3996b2896ec4e64 +Author: Ian Romanick +Date: Wed Oct 3 14:12:16 2007 -0700 + + Use 'ifdef __BIG_ENDIAN' instead of 'if __BIG_ENDIAN' + +commit 7f99fd5d7aa1f0d2463907d9d8c483b6249ac831 +Author: Ian Romanick +Date: Wed Oct 3 14:08:18 2007 -0700 + + First round of byte-ordering fixes for PowerPC. + + This isn't 100% as command submission via PCI-e GART buffers doesn't work. + I've hacked around that for the time being. This is essentially the code + that was used at the POWER.org event to show Bimini. + +commit a72eb27fbc7a66e35018ffbcb5137cfaaf4049aa +Author: Pekka Paalanen +Date: Tue Oct 2 21:56:01 2007 +0300 + + nouveau: nv20 graph_create_context difference + + nv20 writes the chan->id to a different place than nv28. + This still does not make nv20 run nv10_demo. + +commit afc57ef1dfb5bdf17411505d4dfbb03863a870bf +Author: Pekka Paalanen +Date: Tue Oct 2 21:51:14 2007 +0300 + + nouveau: fix nv25_graph_context_init + + It was writing 4x the data in a loop. + +commit ffa3173ec4bb5a310b3f8539bb6c2f8589ce2ed5 +Author: Stuart Bennett +Date: Tue Oct 2 15:45:30 2007 +0100 + + nouveau: nv20 graph context init + +commit b0473699ed7bef4efd0742e0a350d345a7cc9a0c +Author: Dave Airlie +Date: Tue Oct 2 15:48:28 2007 +1000 + + ttm: returning into dummy causes a buffer object leak + + as nobody ever derefs dummy, however not returning does the deref + correctly. + +commit 69fcfb413e72ad2204d306f20af6547819e040da +Author: Maarten Maathuis +Date: Mon Oct 1 22:21:23 2007 +0200 + + nouveau: Fix dereferencing a NULL pointer when erroring out during initialization. + +commit e1600646a90f11c7a5874c83bda6f70f789f7f48 +Author: Stephane Marchesin +Date: Mon Oct 1 03:28:10 2007 +0200 + + nouveau: flip the ctx switch bit on. it seems to be ignored on nv34 but causes nv30 issues. + +commit 75e8f4b5cfdff0bb62ce8439ecf743cd12fc560d +Author: Matthieu Castet +Date: Sun Sep 30 23:19:39 2007 +0200 + + nouveau : nv30 remove harcoded NV20_PGRAPH_CHANNEL_CTX_TABLE + +commit 9cd6ece3079373eddff320a1d3e09bfe2a35be83 +Author: Matthieu Castet +Date: Sun Sep 30 23:09:30 2007 +0200 + + nouveau : nv20_graph replace nouveau_graph_wait_idle by nouveau_wait_for_idle + Also clean PGRAPH_CHANNEL macros + +commit aa135ba8e86d43a738973a25d638b7dc4cdddc55 +Author: Pekka Paalanen +Date: Sun Sep 30 22:04:53 2007 +0300 + + nouveau: rename nv30_graph.c to nv20_graph.c + +commit 205403aea8213ffc0e36f4103d78d62bf1584a69 +Author: Pekka Paalanen +Date: Sun Sep 30 21:10:06 2007 +0300 + + nouveau: nv30 graph function renames, removed nv20_graph.c + + All nv30 functions in nv30_graph.c that can be used on nv20 are renamed + as accordingly. nv20 specific parts from nv20_graph.c are moved into + nv30_graph.c. + +commit a67060c810613059b71c14e9fa91ea114fcf0106 +Author: Pekka Paalanen +Date: Sun Sep 30 18:14:24 2007 +0300 + + nouveau: graph ctx init nv25 + + According to mmio_trace_900XGL.tar.bz2 by Evan Fraser the nv25 init is + exactly the same as nv28 init. + +commit aa2c3379914fc6fea63bfcfd8579ab6cd8d70a68 +Author: Pekka Paalanen +Date: Sun Sep 30 12:03:22 2007 +0300 + + nouveau: nv28 graph context init + +commit 8ad605a2644251a400700e6f0e25ef76a1c80628 +Author: Pekka Paalanen +Date: Sat Sep 29 23:17:19 2007 +0300 + + nouveau: let nv20 hardware do ctx switching automatically. + +commit dc592c8b7bc12d16c658648f124792ac4d2882b9 +Author: Pekka Paalanen +Date: Sat Sep 29 23:06:29 2007 +0300 + + nouveau: Make nv20 use the nv30 PGRAPH ctx functions. + +commit 88bdb38cea60cea918b6e6a1ca97a7ec3de5b832 +Author: Pekka Paalanen +Date: Sat Sep 29 21:09:09 2007 +0300 + + nouveau: Change couple constants to symbols. + +commit a45fce77125aafc42c2cae6b5a896526ec4ab630 +Author: Pekka Paalanen +Date: Sat Sep 29 21:07:46 2007 +0300 + + nouveau: NV30 should never call nouveau_nv20_context_switch(). + +commit fb3ed99fb110a540d16923417c33ff581721ba3a +Author: Matthieu Castet +Date: Sun Sep 30 14:50:22 2007 +0200 + + nouveau : pgraph_ctx dynamic alloc for nv04, nv10 + +commit c76e04828bd5849f526fae5af7deaf1cbc9f4c55 +Author: Matthieu Castet +Date: Sun Sep 30 14:21:47 2007 +0200 + + nouveau : nv04 don't use chan->pgraph_ctx array + This commit is a first step to dynamic alloc pgraph context on nv04, nv10. + +commit f8f31f04574cd6986d7d9ef2215bbb23e0f44b73 +Author: Matthieu Castet +Date: Sat Sep 29 23:06:29 2007 +0200 + + nouveau : stop the fifo of the channel we are deleting + +commit 097db7a9b0cd0e53fb82dffa57c662f327c19670 +Author: Matthieu Castet +Date: Sat Sep 29 23:05:44 2007 +0200 + + nouveau : nv1x fix strange corruption + that appears when running glxgears and nouveau demo + +commit f863d23e01bf0b851c2c7addedfaec77ef951a0c +Author: chaohong guo +Date: Sat Sep 29 18:06:47 2007 +0200 + + radeon: Commit the ring after each partial texture upload blit. + + This makes sure each blit starts as early as possible, which may improve + texture upload performance in some cases. + +commit 215eab6ccfb6d3a22218f996c8215a7dcaf65d01 +Author: Michel Dänzer +Date: Thu Sep 27 08:01:58 2007 +0200 + + Don't build without any optimization on Linux. + + Building without optimization causes the drm module not to link correctly on + ppc. + +commit 72134e939eda578bc53746bf43f7096cbeaf9b7b +Author: Matthieu Castet +Date: Fri Sep 28 21:28:47 2007 +0200 + + nouveau : clean chan->pgraph_ctx stuff. We now do a static init of the array. + This avoid hardcoding pgraph_ctx size and potential buffer overflow. + +commit 0bb2395a8be0c33cc687dfd6aae7df81a82ed8e5 +Author: Jesse Barnes +Date: Fri Sep 28 10:10:08 2007 -0700 + + Revert drm_i915_flip_t braindamage + + I should not have renamed this field. + I should not have renamed this field. + I should not have renamed this field. + + On the plus side, it was at least binary compatible. + +commit d69721a14a8954420b4e0022ecf10bb040c6b807 +Author: Alan Hourihane +Date: Fri Sep 28 09:21:09 2007 +0100 + + Set the fb_base, so userspace applications can actually work + now instead of locking up. + +commit bf9bd5671c184e1caeeb25ead588cbb2ab77c360 +Author: Alan Hourihane +Date: Thu Sep 27 14:21:29 2007 +0100 + + Create memory pool for TT memory + +commit 2ed12b6b7eee8a1b5b0adf0cd8f3cb8c1bc3ccaf +Author: Alan Hourihane +Date: Thu Sep 27 14:21:03 2007 +0100 + + Add some more checks to modelist walking for matching + incoming modes to current modelist. + +commit 24cdd2f8c494573e1f84a752ae4eccec8890347a +Author: Keith Packard +Date: Wed Sep 26 14:25:10 2007 -0700 + + Allow parallel module compile + +commit 61dfd19de81716aea0eaba90518fcb110b46b8f0 +Author: Alan Hourihane +Date: Wed Sep 26 16:18:19 2007 +0100 + + Add brackets + +commit b44925b2a553df6a611db320b553336a946aa1a8 +Author: Alan Hourihane +Date: Wed Sep 26 16:18:19 2007 +0100 + + Add brackets + +commit dfcf9272ce4427d959098b0f9e1748832a47a786 +Author: Alan Hourihane +Date: Wed Sep 26 15:40:40 2007 +0100 + + no need to copy to/from user as the unlocked ioctl does + that for us. + + other small cleanups. + +commit b2c4c7ae5e14598dbb8c1de32918ec9cc8dde7c9 +Author: Alan Hourihane +Date: Wed Sep 26 15:38:54 2007 +0100 + + don't copy back if an error was returned. + +commit 6671ad1917698b6174a1af314b63b3800d75248c +Author: Alan Hourihane +Date: Wed Sep 26 15:38:54 2007 +0100 + + don't copy back if an error was returned. + +commit 972ec4fa25059c84ed103c28efcb17f9f97a6d74 +Author: Jesse Barnes +Date: Tue Sep 25 16:18:01 2007 -0700 + + Hack out i915_mem_takedown + + We may want to make the old i915 memory manager obsolete eventually, and in the + meantime the takedown causes problems on unload so remove it for now. + +commit 053ff86566bcf050c7fd5b5dc7158bb35d39c38b +Author: Jesse Barnes +Date: Tue Sep 25 16:16:33 2007 -0700 + + Move map hash destruction to after driver unload hook is called + + The driver unload routine will want to remove register and SAREA maps, so don't + destroy the map hash before we get there. + +commit 5433bbbfde10bed7fbafcd90c64c364546ca724f +Author: Jesse Barnes +Date: Tue Sep 25 16:15:48 2007 -0700 + + Remove buffer object user list check in drm_bo_destroy_unlocked + + In the case of driver allocated buffers, there won't necessarily be a user list + associated with the buffer, so don't bug out on an empty list. + +commit c4b3a0f602abd02038f7e5dd45fcfb2df4b5fcfa +Merge: 0774090 03c47f1 +Author: Thomas Hellstrom +Date: Tue Sep 25 18:03:31 2007 +0200 + + Merge branch 'master' into pre-superioctl-branch + + Conflicts: + + linux-core/drm_bo.c + linux-core/drm_fence.c + linux-core/drm_objects.h + shared-core/drm.h + +commit 03c47f1420bf17a1e0f2b86be500656ae5a4c95b +Author: Dave Airlie +Date: Tue Sep 25 16:16:14 2007 +1000 + + drm: use fence_class as name instead of class + +commit bb5516f4f47d16d5d59797fa170abd50d35377a7 +Author: Dave Airlie +Date: Wed Sep 12 23:50:38 2007 +1000 + + drm/ttm: fixup fence class naming and interfaces + + This is some code for nouveau that Ben Skeggs worked on, and also + fixes the naming (having class in a system header file == C++ keyword == bad plan) + +commit cbcbe80c09bd95485ce8a9b0d86242fedcd7c182 +Author: Jesse Barnes +Date: Mon Sep 24 15:43:00 2007 -0700 + + Cleanup SDVO debug output + + SDVO debug messages were incorrectly including severity prefixes in each print + rather than each unique line. Fix it up. + +commit 0be6e919aa3e7af884980e2004755848a2aa7519 +Author: Jesse Barnes +Date: Mon Sep 24 15:40:55 2007 -0700 + + Add 965GM macro bits + + Update IS_MOBILE macro to include new IS_I965GM test. + +commit 5cc3083179b19678456905a9122a3d0f04e6f623 +Merge: 2a2d02b 54df1b9 +Author: Jesse Barnes +Date: Mon Sep 24 14:41:46 2007 -0700 + + Merge branch 'master' into modesetting-101 - TTM & typedef removal + + Conflicts: + + linux-core/drmP.h + linux-core/drm_bo.c + linux-core/drm_drv.c + linux-core/drm_objects.h + shared-core/drm.h + shared-core/i915_dma.c + shared-core/i915_drv.h + shared-core/i915_irq.c + + Mostly removing typedefs that snuck into the modesetting code and + updating to the latest TTM APIs. As of today, the i915 driver builds, + but there are likely to be problems, so debugging and bugfixes will + come next. + +commit 2a2d02bbc500140a861380df52ce66abcac39312 +Author: Jakob Bornecrantz +Date: Mon Sep 24 14:53:10 2007 +0200 + + Added small modesetting test + +commit 54df1b9ff3b79097fedd8ed7bf54aca30a660cbd +Author: Thomas Hellstrom +Date: Sat Sep 22 14:30:55 2007 +0200 + + Fix pinned buffer fence class. + +commit 0774090d5b7d3eba734086b437021039bc19c365 +Author: Thomas Hellstrom +Date: Sat Sep 22 13:59:56 2007 +0200 + + Fix drm_bo.c compiling. + +commit bea727b8387f3094b9921004d7686a2d77184466 +Author: Thomas Hellstrom +Date: Sat Sep 22 13:38:36 2007 +0200 + + Make nouveau compile on older kernels. + +commit da63f4ba0f15c3ae614eba92c8219670c674727e +Author: Thomas Hellstrom +Date: Sat Sep 22 13:34:33 2007 +0200 + + Add fence error member. + + Modify the TTM backend bind arguments. + Export a number of functions needed for driver-specific super-ioctls. + Add a function to map buffer objects from the kernel, regardless of where they're + currently placed. + A number of error fixes. + +commit 24e33627c5dfb92324a9faf1c7d366e7f33e622a +Merge: 7587e96 e7bfeb3 +Author: Eric Anholt +Date: Fri Sep 21 17:05:21 2007 -0700 + + Merge branch 'bo-set-pin' + + This branch replaces the NO_MOVE/NO_EVICT flags to buffer validation with a + separate privileged ioctl to pin buffers like NO_EVICT meant before. The + functionality that was supposed to be covered by NO_MOVE may be reintroduced + later, possibly in a different way, after the superioctl branch is merged. + +commit e7bfeb3031374653f7e55d67cc1b5c823849359f +Author: Eric Anholt +Date: Fri Sep 21 16:14:22 2007 -0700 + + Add some more verbosity to drm_bo_set_pin_req comments. + +commit 3c995c2c4d2530e5bd01548764b20c4d062fd7a5 +Author: Eric Anholt +Date: Fri Sep 21 15:58:02 2007 -0700 + + Fix mapCount refcounting on unmap, even though the value is unused. + +commit 7587e9682c1b70930c015915d588b42ccd00c7c4 +Author: Stephane Marchesin +Date: Fri Sep 21 22:42:39 2007 +0200 + + nouveau: fix ppc and get it right this time. + +commit dc60c452e6ac72ebc4e5c73153d4d9d8c9edfae5 +Author: Stephane Marchesin +Date: Fri Sep 21 22:27:53 2007 +0200 + + nouveau: fix notifiers on PPC. + +commit 74c6f2f47a9977fef8fcc7c698862d5bd2f54336 +Author: Stephane Marchesin +Date: Fri Sep 21 22:04:45 2007 +0200 + + nouveau: add some checks to the nv04 graph switching code. + +commit bc5423f16838257a040a55b88df9588d268fda06 +Author: Dave Airlie +Date: Thu Sep 20 14:01:29 2007 +1000 + + drm_sysfs: update sysfs code from kernel + +commit 3d3a96ad4e5596187236898ca241515a21661b69 +Merge: 0055fd5 e349b58 +Author: Eric Anholt +Date: Wed Sep 19 15:55:58 2007 -0700 + + Merge branch 'origin' into bo-set-pin + +commit e349b58b4a6ebfe299720cb921039a600c145e65 +Author: Michel Dänzer +Date: Tue Sep 18 21:03:22 2007 +0100 + + i915: Reinstate check that drawable has valid information in i915_vblank_swap. + +commit 78d111fa967d18e7f9f9b2acd26aff20b884eb6c +Author: Michel Dänzer +Date: Tue Sep 18 20:55:43 2007 +0100 + + i915: Fix scheduled buffer swaps. + + One instance of unlocking a spinlock was converted incorrectly when this code + was fixed to build on BSD. + +commit a3881ad2fef99aaf0a863609a847020ea822798c +Author: Ian Romanick +Date: Tue Sep 18 11:03:49 2007 -0700 + + Add ioc32 compat layer for XGI DRM. + +commit e7d4a26913ba3a4949ac36280925062948ee21ce +Author: Ian Romanick +Date: Tue Sep 18 11:03:08 2007 -0700 + + Fix ioc32 compat layer + + Previously any ioctls that weren't explicitly listed in the compat ioctl + table would fail with ENOTTY. If the incoming ioctl number is outside the + range of the table, assume that it Just Works, and pass it off to drm_ioctl. + This make the fence related ioctls work on 64-bit PowerPC. + +commit 41345b95a2cdc1e509171d31fc8aed8cecb43dbd +Author: Brian +Date: Wed Sep 12 12:05:15 2007 -0600 + + Added bool typedef added in kernel 2.6.19 + + This allows the xgi code to compile with older kernels. + +commit c453135789597648ef5aa641c4e59bb5b5e320de +Author: Brian +Date: Wed Sep 12 11:48:48 2007 -0600 + + Added idr_replace() function which was apparently added in Linux 2.6.18 + + Someone should probably double-check my work here since this is the + first time I've touched drm_compat.[ch] + +commit 852232fb803bef92b12136be2766ddee3e3613b2 +Author: Jesse Barnes +Date: Wed Sep 12 08:55:33 2007 -0700 + + Remove plane->pipe mapping from SAREA private after all + + We can figure out which pipe a given plane is mapped to by looking at the + display control registers instead of tracking it in a new SAREA private field. + If this becomes a performance problem, we could move to an ioctl based solution + by adding a new parameter for the DDX to set (defaulting to the old behavior if + the param was never set of course). + +commit 7fdf98051a51a0117f415f7f7374f2b4d0b2e531 +Merge: 3cb8acd 0bd8752 +Author: Jesse Barnes +Date: Tue Sep 11 03:50:17 2007 -0700 + + Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/drm + +commit 3cb8acd5abcb410ab2982f55aec94b5a793a47d6 +Author: Jesse Barnes +Date: Tue Sep 11 03:48:46 2007 -0700 + + Disambiguate planes & pipes for swap operations + + This mod makes the SAREA track plane to pipe mappings and corrects the name of + the plane info variables (they were mislabeled as pipe info since until now all + code assumed a direct mapping between planes and pipes). + + It also updates the flip ioctl argument to take a set of planes rather than + pipes, since planes are flipped while pipes generate vblank events. + +commit 0bd8752a0cb8afb7f29a5f659c3459aab42d9955 +Author: Patrice Mandin +Date: Mon Sep 10 18:52:17 2007 +0200 + + nouveau: nv10: add combiner registers + +commit 00bb534a546a4ca4bb6e167f5b387fa8156f4ca7 +Author: Matthieu Castet +Date: Sun Sep 9 15:49:33 2007 +0200 + + nouveau : nv10 fix NV10_PGRAPH_CTX_USER save/load + +commit b2ee72f4400999b2cf783256547fe8c7bfa698f5 +Author: Matthieu Castet +Date: Sun Sep 9 12:13:00 2007 +0200 + + nouveau : nv10 pipe ctx switch load/save. + + This fix some issues with more than one 3D fifo, but there still some "corruption" sometimes + +commit f19d80b0465d9ba93005d8499654e3256494c831 +Author: Maarten Maathuis +Date: Sat Sep 8 22:19:00 2007 +0200 + + nouveau: Add Quadro NVS 140 pciid + +commit 06bb07259531d10df2c1979919af899e3812057b +Author: Ben Skeggs +Date: Fri Sep 7 20:07:13 2007 +1000 + + nouveau: Use nv41 ctxprog/vals on nv42. + +commit 54c96cbc46a21e05cf991d0e4a26da58bd87ce85 +Merge: edf5a86 c597bd5 +Author: Ian Romanick +Date: Thu Sep 6 15:37:52 2007 -0700 + + Merge branch 'xgi-0-0-2' + +commit c597bd57eee3ea05a3b8c851615c7351d0b32fce +Author: Ian Romanick +Date: Thu Sep 6 15:20:52 2007 -0700 + + Bump version to 1.0.0. + +commit edf5a86a269690b0e42a5cee7d4ac3828b42ca3e +Author: Stephane Marchesin +Date: Thu Sep 6 02:46:45 2007 +0200 + + nouveau: fix some nv04 graph switching. + +commit ff9a019cf06b7ebaf2fa8dee8e37c866ca4623af +Author: Stephane Marchesin +Date: Thu Sep 6 02:12:05 2007 +0200 + + nouveau: add pure nv30 support. + +commit ef4944de85b974e6b91087fdcb8f241f2619d28d +Author: Maarten Maathuis +Date: Tue Sep 4 18:51:57 2007 +0200 + + Add context init voodoo and context switch code for NV41. + +commit fee49e2071f2f528d7041bf1f14c640fff7478cc +Merge: bb3da88 bac3f49 +Author: Ian Romanick +Date: Fri Aug 31 10:54:55 2007 -0700 + + Merge branch 'master' of ssh+git://git.freedesktop.org/git/mesa/drm into xgi-0-0-2 + +commit bb3da88601749cd647632eed86fb57dfd7cb81ee +Author: Ian Romanick +Date: Fri Aug 31 10:48:13 2007 -0700 + + Acutally emit the IRQ (duh) when setting the fence post. + +commit bac3f49daa54bf34ea21854be23061d10a0d0d1b +Author: Stephane Marchesin +Date: Fri Aug 31 01:39:40 2007 +0200 + + nouveau: nv04 context switching support. Works for starting X up at least. + +commit 69b11f44f0a0cfe0806e18dae2f360bc1ed8e005 +Author: Stephane Marchesin +Date: Thu Aug 30 21:51:53 2007 +0200 + + nouveau: give nv03 the last cut. + +commit 9c5b9d458bc618fb9d7d8590c866655e92f9cb0b +Author: Ian Romanick +Date: Wed Aug 29 14:41:49 2007 -0700 + + Use ati_pcigart for PCI-e GART table handling. + +commit c46ffd6b2943332a88589fb525305ffd09d35b8d +Author: Ian Romanick +Date: Wed Aug 29 00:23:30 2007 -0700 + + Fix late night dumb-dumb mistake. + +commit 2bcd5b5e330843e1e1a5f0a19105ecd33e76b00b +Author: Ian Romanick +Date: Wed Aug 29 00:04:18 2007 -0700 + + Use DRM_SPINLOCK / DRM_UNSPINLOCK macros. + +commit c78e610fa42c8122ed6bc504222ef650f5693d22 +Author: Keith Packard +Date: Tue Aug 28 12:23:51 2007 -0700 + + Add register defines for hw binning + +commit 589707b765eee78cc278c10603e2c858bb819436 +Author: Dave Airlie +Date: Tue Aug 28 15:17:11 2007 +1000 + + drm: remove XFREE86_VERSION macros + +commit a331d2e352675be260254e8abef412540ead9c30 +Author: Matthieu Castet +Date: Sun Aug 26 20:48:32 2007 +0200 + + nouveau : add NV04_PGRAPH_TRAPPED_ADDR definition + + - fix offset for nv04 + - use it in nv10 graph ctx switch for getting next channel + - dump NV10_PGRAPH_TRAPPED_DATA_HIGH on nv10+ + +commit 4182fce4084f4d884a7435b8ad2acb5c209f4544 +Author: Matthieu Castet +Date: Sat Aug 25 22:10:45 2007 +0200 + + nouveau : nv1x graph reworks + + - add forgotten init value + - use the same PGRAPH_DEBUG than the blob + - remove init of ddx reg : it should be done with object + - better handle of channel destruction + + hope I didn't break anything ;) + +commit 502bbdbe14fa458ed06c7fa4b1ccb63e4f126625 +Author: Patrice Mandin +Date: Sat Aug 25 00:12:58 2007 +0200 + + nouveau: nv10: output a warning if last channel invalid, and switch to next + +commit 98750111961a5729eba9433b927f8c24548fbace +Author: Patrice Mandin +Date: Thu Aug 23 10:18:34 2007 +0200 + + nouveau: nv10: check some NULL pointers inside context switch + +commit 8645dac8952473dc3e09ba7a7a9db3fbdf75215f +Author: Matthieu Castet +Date: Wed Aug 22 23:17:56 2007 +0200 + + nouveau : fix some potential crashes with objects causing hash collision + +commit 11c46afe7599cf3cefd30a7e55325a1a1aa8e5ba +Author: Ben Skeggs +Date: Wed Aug 22 13:23:49 2007 +1000 + + nouveau/nv40: Preserve other bits in 0x400304/0x400310 like NVIDIA do. + +commit a654c0341a7892307522ed6e7f4518cc7e28a99e +Author: Ben Skeggs +Date: Wed Aug 22 13:17:19 2007 +1000 + + nouveau/nv40: Dump extra info on ucode state if ctx switch fails. + +commit 81eaff44c47cfb23e96b1cb848df5fd7ea24f913 +Author: Ben Skeggs +Date: Wed Aug 22 13:09:27 2007 +1000 + + nouveau: NV4c ctx ucode. + + Seems we already have a nv4c_ctx_init() somehow, a quick check shows the + ucode matches it still. + +commit ae883c97ad7af5529d40c8d52c2da614d34233e0 +Author: Ben Skeggs +Date: Wed Aug 22 12:54:26 2007 +1000 + + nouveau/nv50: Correct thinko for 8800 chips + cleanup a bit. + +commit c8ee6a6cabbd44c06e382f99c2691d3efe46b984 +Author: Stephane Marchesin +Date: Wed Aug 22 04:20:09 2007 +0200 + + nouveau: redo nv30_graph.c. Should work better, but we still lack a couple of cards. + +commit 76337bdb19fb6a098fc6d6ceaafb58a4ed15f9b0 +Author: Stephane Marchesin +Date: Mon Aug 6 17:42:31 2007 +0200 + + nouveau: fix the comment and debug message for PCIGART size + +commit 03c0490129816b5f5b40855438e948fdae572d06 +Author: Ben Skeggs +Date: Tue Aug 21 02:23:21 2007 +1000 + + nouveau: Add NV44 ctx ucode. Patch from stillunknown. + + Microcode is similar enough to the NV4A one that it should be able to use + the same initial PGRAPH context. One day this mess will go away, honest.. + +commit 216f1b0573b2c0e39ac82c7f56235c1003e9bd4d +Author: Ben Skeggs +Date: Tue Aug 21 02:18:27 2007 +1000 + + nouveau: Poke 0x2230 on NV47 also. + + Makes 0x2220 work the same way as on NV40. + +commit c8760c7999b8aeb6d51b09c062331f518953a920 +Author: Patrice Mandin +Date: Sun Aug 19 18:45:01 2007 +0200 + + Check also for Linux, as it's not supported on different OS + +commit a122e7dabfaade751e8f6bb6d1488902fd36a40e +Author: Patrice Mandin +Date: Sun Aug 19 18:41:18 2007 +0200 + + Function pci_get_bus_and_slot needs 2.6.19 or later + +commit 3383e8bd6bcd2323c81252e617c8522593baf818 +Author: Ian Romanick +Date: Fri Aug 17 10:53:18 2007 -0700 + + Remove unnecessary include. + +commit 0d3c741df19c35307723422c1f2f28a23995823d +Author: Ian Romanick +Date: Thu Aug 16 13:43:04 2007 -0700 + + Forgot to add this file on the last commit. + +commit 0055fd5c35306a6363b0414f7f2220b3d1c27ecc +Merge: 3a0bc51 02c4e0e +Author: Eric Anholt +Date: Thu Aug 16 09:23:09 2007 -0700 + + Merge branch 'master' into bo-set-pin + +commit 8a4d7f34d9c0182c466518c6f413d9a039db402d +Author: Ben Skeggs +Date: Fri Aug 17 01:12:46 2007 +1000 + + nouveau: Detect memory on NFORCE/NFORCE2 correctly. + +commit d8a800b63de09f41d482d2b3367e4da67ed0f92b +Author: Ian Romanick +Date: Wed Aug 15 21:05:26 2007 -0700 + + Implement fence support. + +commit b668d6d9050106bebfb704e4ed32d2924bb26371 +Author: Eric Anholt +Date: Wed Aug 15 14:29:31 2007 -0700 + + Fix dev->agp->base initialization on BSD, and fix addmap range check on Linux. + + With the previous linux commit, an AGP aperture at the end of the address space + would have wrapped to 0 and the test would have failed. + +commit 6e93c35ba7c5001e756d0c9d1a4f534384652a5a +Author: Eric Anholt +Date: Wed Aug 15 13:42:04 2007 -0700 + + BSD: Return EINVAL if drm_unlock is called on an unheld or other-owner lock. + +commit 9254e00e4bbbc02282415cd0ca7bd6b5cb52be82 +Author: Eric Anholt +Date: Wed Aug 15 13:41:24 2007 -0700 + + Add a set of tests for DRM locking, exposing issues on BSD. + +commit 8a1ca401b403848d894f664977f9e939eaf07291 +Author: Eric Anholt +Date: Wed Aug 15 13:13:24 2007 -0700 + + Fix a bad error message in auth.c regression test. + +commit d1a2b26a99205b802919aa0901b4e19cb2d251fe +Author: Eric Anholt +Date: Wed Aug 15 13:08:19 2007 -0700 + + Require master in setversion test, since it requires auth. + +commit a9ee144eab5bbd5f90747c38cdc016da46c124fe +Author: vehemens +Date: Wed Aug 15 11:12:46 2007 -0700 + + BSD: simplify drm_ioctl() after other refactoring. + +commit 4cdd871e90cd5fe440d0a4af5d69f1d84e49e742 +Author: vehemens +Date: Wed Aug 15 11:05:44 2007 -0700 + + Bug #11989: Fix regression in getstats ioctl (kernel panic). + +commit 56133e04de40e3004018d069cb229e62ee10e0f4 +Author: Eric Anholt +Date: Wed Aug 15 11:04:56 2007 -0700 + + BSD: Fix regression in setversion ioctl (current version not returned). + +commit a23a47b16cf813f0e7e9616ef6eb66f6ae0bc2ac +Author: Eric Anholt +Date: Wed Aug 15 11:03:10 2007 -0700 + + Add a regression test for the setversion interface. + +commit 8a881b47f7c21be2cdeff4b0d1b00d39d503f358 +Author: Eric Anholt +Date: Wed Aug 15 10:52:01 2007 -0700 + + Add simple regression test for getstats (does it not crash the kernel?). + +commit 5346fc5f36b5e7c55fc7b5cd46f1e4d7563a86a4 +Author: Eric Anholt +Date: Tue Aug 14 14:41:24 2007 -0700 + + BSD: Replace brief description in each file's first line with doxygen later on. + + The brief descriptions usually had the wrong filename in them. + +commit 10f9b7bd0b471487371813083bd3481629b2a56f +Author: Ben Skeggs +Date: Wed Aug 15 14:14:23 2007 +1000 + + nouveau: Use count parameter in nouveau_notifier_alloc(). + +commit a615d2fde77092062f7e2bbfa39705b5f34547e8 +Author: Ben Skeggs +Date: Wed Aug 15 13:53:58 2007 +1000 + + nouveau: Turn some messages into DRM_DEBUGs.. + +commit c3faa589b09616acdfd827be1719f6c2706c49ab +Author: Ben Skeggs +Date: Wed Aug 15 13:36:54 2007 +1000 + + nouveau: Allow GART notifiers when using sgdma code. + +commit ee01d3755ac03f2c47e3b4d9bf084d68e6ee95bc +Author: Ben Skeggs +Date: Wed Aug 15 13:34:57 2007 +1000 + + nouveau: Workaround mysterious PRAMIN clobbering by the card. + +commit f563a50d145848ed296b63c63422caff80232ddf +Author: Ian Romanick +Date: Tue Aug 14 13:44:51 2007 -0700 + + Eliminate unused / useless ioctls. + +commit 7b12174aacd09a991be3e74a3db47534961a6887 +Author: Ian Romanick +Date: Tue Aug 14 13:24:02 2007 -0700 + + Clean up remaining C++ style comments. + +commit d3c8e98dd9ccc366513c117d032fbf80be4eb06a +Author: Ian Romanick +Date: Tue Aug 14 13:20:37 2007 -0700 + + Move dwWriteReg to xgi_cmdlist.c, the only file where it is used. + +commit be76f0eea9b455fde77e15ff35f4f00c70661e51 +Author: Ian Romanick +Date: Tue Aug 14 13:19:48 2007 -0700 + + Remove unused interrupt related functions. + +commit 891714d8d732480af97fbc45562145a560b7999b +Author: Ian Romanick +Date: Tue Aug 14 13:18:44 2007 -0700 + + Clean up xgi_(en|dis)able_(mmio|ge) and move to xgi_misc.c. + +commit a6ea60c77e8d4a266d696e0d99c11b1f39578dcc +Author: Ben Skeggs +Date: Wed Aug 15 01:40:46 2007 +1000 + + nouveau: Catch all NV4x chips instead of just NV_40. + +commit 02c4e0e757b69cd6ae38b8ab2c078b3f06fea661 +Author: Ben Skeggs +Date: Wed Aug 15 00:56:24 2007 +1000 + + nouveau/nv40: Fix channel scheduling. + + Ensure NV_PFIFO_DMA_TIMESLICE_TIMEOUT_ENABLE gets set, otherwise channels + will appear to "freeze" in some circumstances. + +commit 3ee211f4f7435792752c1dbcd3a60e2e7abfba09 +Author: Eric Anholt +Date: Mon Aug 13 16:29:24 2007 -0700 + + Bug #11895: Only add the AGP base to map offset if the caller didn't. + + The i830 and newer intel 2D code adds the AGP base to map offsets already, + because it wasn't doing the AGP enable which used to set dev->agp->base. + + Credit goes to Zhenyu for finding the issue. + +commit 15f841bd529b50901272ca35a4c57de42a51901a +Author: Ian Romanick +Date: Mon Aug 13 16:21:20 2007 -0700 + + Strobe magic 0xB03F register to flush PCI-e GART table. + + The original XGI kernel driver strobed 0xB03F each time a page was + allocated to back a GART page. When the driver was converted to use + the DRM SG interface, this code was lost. Returning it fixes a long + standing issue where the X-server would work fine the first time, but + acceleration commands would be ignored on the second X-server + invocation. + +commit 4340f49bf79a5421886363e08501ad347973b083 +Author: vehemens +Date: Mon Aug 13 10:17:47 2007 -0700 + + Bug #11951: Fix an errno sign inversion on pre-FreeBSD 5. + + Also, annotate where signs change, to hopefully remind the reader of these + issues in the future. + +commit d6a45ebf0ee47c31f560f3072a4b70c4039e454a +Author: Eric Anholt +Date: Mon Aug 13 11:27:46 2007 -0700 + + Add a regression test for authentication. + +commit 3b07a37a48ca6dc22d538221b59b430dd72c6203 +Author: Eric Anholt +Date: Mon Aug 13 10:50:25 2007 -0700 + + Add doxygen and fix whitespace for drm_auth.c + +commit 263775c454f381fffc8f5d4f309b4e1b131c3734 +Author: vehemens +Date: Mon Aug 13 10:24:39 2007 -0700 + + Fix drm_auth.c locking to not recurse on dev_lock. + +commit da279868706cc799bdf25cdd5523d11fda64d4cc +Author: Dave Airlie +Date: Mon Aug 6 18:33:29 2007 +1000 + + i915: i965 non-secure batchbuffer bit has moved. + +commit a46104674f129e873b8dfa29cf8aac9c67bd77be +Author: Ben Skeggs +Date: Fri Aug 10 13:54:26 2007 +1000 + + nouveau/nv50: demagic instmem setup. + +commit 39907f613b6c84499c34c9a6ece5f5dde64788c0 +Author: Ben Skeggs +Date: Fri Aug 10 13:53:10 2007 +1000 + + nouveau: Allow creation of gpuobjs before any other init has taken place. + +commit 20a0e5e4298761ae6005399e45d66b93109d2121 +Author: Ian Romanick +Date: Thu Aug 9 18:57:15 2007 -0700 + + After calling drm_sman_cleanup, mark both heaps as uninitialized. + + Since the heaps weren't marked as uninitialized, SG memory was never + re-allocated. This prevented the X-server from being able to restart + without re-loading the kernel module. + +commit 06e09842dfbdaa9502d3b3e6b657de4e3630644c +Author: Ian Romanick +Date: Thu Aug 9 18:28:16 2007 -0700 + + Use DRM_MEMORYBARRIER() macro instead of mb(). + +commit 371f0a4d410f02d8db050b51fd2e714f888a71e0 +Author: Ian Romanick +Date: Thu Aug 9 18:15:42 2007 -0700 + + Mask off correct bits in M2REG_AUTO_LINK_STATUS for interrupt handling. + +commit 6dd97099ea5c6dc7931c6b482eb5935f7dd9ed2d +Author: Ian Romanick +Date: Thu Aug 9 16:20:44 2007 -0700 + + Minor clean up of IRQ code. Much, much more to come. + +commit dbd4d0597ff32458bbe4347bdea0e4b9e55a14da +Author: Ian Romanick +Date: Thu Aug 9 16:01:14 2007 -0700 + + Use sman memory manager instead of internal version. + +commit aea6b4dea9708f66f5fc2068fe84407682570aca +Author: Ian Romanick +Date: Thu Aug 9 15:30:36 2007 -0700 + + Unify alloc and free ioctls. + + The DRM_XGI_PCIE_ALLOC and DRM_XGI_FB_ALLOC ioctls (and the matching + free ioctls) are unified to DRM_XGI_ALLOC. The desired memory region + is selected by xgi_mem_alloc::location. The region is magically + encoded in xgi_mem_alloc::index, which is used to release the memory. + + Bump to version 0.11.0. This update requires a new DDX. + +commit 25cb876f8513d02d4d189371eaa8b7b9a88e860d +Author: Ian Romanick +Date: Thu Aug 9 15:23:13 2007 -0700 + + Associate master file pointer with command list buffer. + + Pass the master's file pointer, as supplied to xgi_bootstrap, to + xgi_cmdlist_initialize. Associate that pointer with the memory + allocated for the command list buffer. By doing this the memory will + be automatically cleaned up when the master closes the device. This + allows the removal of some clean up code. + +commit 7784e8c6e74b93ffb39d82e3385bd3268a55507c +Author: Ben Skeggs +Date: Thu Aug 9 11:12:13 2007 +1000 + + nouveau: silence irq handler a bit + +commit 7281463f8d5d45a26f4cdff3fb67d896e0e74f74 +Author: Ben Skeggs +Date: Thu Aug 9 10:23:36 2007 +1000 + + nouveau/nv40: add some missing pciids. + +commit e326acf5493a7193954d3dd794855e2a11dc1782 +Author: Matthieu Castet +Date: Wed Aug 8 22:55:32 2007 +0200 + + nouveau : nv10, nv20, nv30 : don't save all channel in the same RAMFC entry + + This should improve multi fifo + +commit 05633ca3708f48cfbbb77518da4e791d7e1613c2 +Author: Ben Skeggs +Date: Wed Aug 8 16:37:55 2007 +1000 + + nouveau: Always allocate drm's push buffer in VRAM + + Fixes #11868 + +commit 40f21563564332786ca2b9ffc7d7ba9c7e6f7f1a +Author: Ben Skeggs +Date: Wed Aug 8 16:11:28 2007 +1000 + + nouveau: return channel id + +commit 296050eee6ca7b496e8702ceca9628de803d79f8 +Author: Ben Skeggs +Date: Wed Aug 8 13:01:29 2007 +1000 + + nouveau/nv50: hack up initial channel context from current state + + We really should be providing static values like the nv40 PGRAPH code does, + however, this will do for now to keep X at least working. + +commit 4ad487190d5b79947c65e238330506db6b77e523 +Author: Ben Skeggs +Date: Wed Aug 8 10:42:12 2007 +1000 + + nouveau: enable/disable engine-specific interrupts in _init()/_takedown() + + All interrupts are still masked by PMC until init is finished. + +commit a4759b85139dd8d81de25e170777309b770f5316 +Author: Matthieu Castet +Date: Tue Aug 7 23:09:44 2007 +0200 + + nouveau : fix enable irq (in the previous code all irq were masked by engine + init after irq_postinstall) + +commit f7ba02b7458823627097a2320bf9befa84fc9c76 +Author: Ian Romanick +Date: Mon Aug 6 17:27:15 2007 -0700 + + Unify infrastructure for freeing on-card / GART memory. + +commit 6718198897ef9e275506d3fcb497641e1b09d3b1 +Author: Ian Romanick +Date: Mon Aug 6 16:56:20 2007 -0700 + + Release client memory in reclaim_buffers_idlelocked instead of preclose. + +commit f3072becda3a2d5fe587f20e155d4d4f9ace60a2 +Author: Ian Romanick +Date: Mon Aug 6 16:35:07 2007 -0700 + + Refactor xgi_(fb|pcie)_free_all into xgi_free_all. + +commit 90907c59152f628d6f0efea4927a06e547f4a3c7 +Author: Ian Romanick +Date: Mon Aug 6 16:17:23 2007 -0700 + + Replace per-heap semaphores with drm_device::struct_mutex. + +commit f96bff9e213a950ab910832908d30e732435e628 +Author: Ian Romanick +Date: Mon Aug 6 16:09:05 2007 -0700 + + Unify infrastructure for allocating (not yet freeing) on-card / GART memory. + +commit 5362cc723e6605c31d152eb22ee3dc40c9e3f56b +Author: Ian Romanick +Date: Mon Aug 6 15:52:06 2007 -0700 + + Eliminate unnecessary function xgi_pcie_free_locked. + +commit d749cc9ae8c50157a1588369222a591410002c26 +Author: Eric Anholt +Date: Mon Aug 6 15:45:37 2007 -0700 + + Initialize the AGP structure's base address at init rather than enable. + + Not all drivers call enable (intel), but they would still like to use this + member in driver code. + +commit a6fb93a150f90ada9af6760b52d34716497f744f +Author: Ian Romanick +Date: Mon Aug 6 15:43:51 2007 -0700 + + Finish removing allocation "owner" infrastructure. + +commit 78e9c1a93d00097895bc77d9ac90da1945021804 +Author: Ian Romanick +Date: Mon Aug 6 15:37:56 2007 -0700 + + Eliminate special-case handling of framebuffer (fake) allocation. + +commit 997a9a738ec26cf0ef2c7dee5e30bb53bd11bf6c +Author: Ian Romanick +Date: Mon Aug 6 15:31:34 2007 -0700 + + Eliminate allocation "owner" usage. + +commit 66f5232d9393f6886d8fd1a60b2d75cd009b972c +Author: Ben Skeggs +Date: Tue Aug 7 01:51:46 2007 +1000 + + nouveau: Init global gpuobj list early, unbreaks sgdma code. + +commit ac24f328ec8954f78b1025db716abdd5b25b3dd9 +Author: Stephane Marchesin +Date: Mon Aug 6 17:14:26 2007 +0200 + + nouveau: Bump PCI GART to 16MB + +commit 8d5a8ebc316028f14666697cff33daddbe384bcd +Author: Ben Skeggs +Date: Mon Aug 6 22:32:36 2007 +1000 + + nouveau: ouch, add nouveau_dma.[ch] files.. + +commit 92084c6e056a738308ff65f3fcd7411fd7d2995a +Author: Ben Skeggs +Date: Mon Aug 6 22:11:18 2007 +1000 + + Export some useful ttm functions to drivers. + +commit 7a0a812ea42d80eed89b7b9993eae42c7c1b1613 +Author: Ben Skeggs +Date: Mon Aug 6 22:06:52 2007 +1000 + + nouveau: Remove PGRAPH_SURFACE hack, it wont work now anyway. + + Need to find another way of doing this, ideally someone'd hunt down which + object/method controls it! The Xv blit adaptor is likely now broken on + cards that have pNv->WaitVSyncPossible enabled. + +commit cf04641bc61c8bc18101713a8d95ef98e6afae7f +Author: Ben Skeggs +Date: Mon Aug 6 22:05:31 2007 +1000 + + nouveau: Give DRM its own gpu channel + + If your card doesn't have working context switching, it is now broken. + +commit 51f24be578025e3f1eae859288adf5232afc898d +Author: Ben Skeggs +Date: Mon Aug 6 21:46:55 2007 +1000 + + nouveau: Determine trapped channel id from active grctx on >=NV40 + +commit 97770db72040dc032130413e0cdabc1777560a75 +Author: Ben Skeggs +Date: Mon Aug 6 21:45:18 2007 +1000 + + nouveau: Various internal and external API changes + + 1. DRM_NOUVEAU_GPUOBJ_FREE + Used to free GPU objects. The obvious usage case is for Gr objects, + but notifiers can also be destroyed in the same way. + + GPU objects gain a destructor method and private data fields with + this change, so other specialised cases (like notifiers) can be + implemented on top of gpuobjs. + + 2. DRM_NOUVEAU_CHANNEL_FREE + + 3. DRM_NOUVEAU_CARD_INIT + Ideally we'd do init during module load, but this isn't currently + possible. Doing init during firstopen() is bad as X has a love of + opening/closing the DRM many times during startup. Once the + modesetting-101 branch is merged this can go away. + + IRQs are enabled in nouveau_card_init() now, rather than having the + X server call drmCtlInstHandler(). We'll need this for when we give + the kernel module its own channel. + + 4. DRM_NOUVEAU_GETPARAM + Add CHIPSET_ID value, which will return the chipset id derived + from NV_PMC_BOOT_0. + + 4. Use list_* in a few places, rather than home-brewed stuff. + +commit beaa0c9a28b30a6ba3292184d04875b6a597e433 +Author: Ben Skeggs +Date: Mon Aug 6 03:40:43 2007 +1000 + + nouveau: Pass channel struct around instead of channel id. + +commit 2453ba19b6f9956ea5d412a66d5d33c8a8b301b2 +Author: Patrice Mandin +Date: Fri Aug 3 23:06:39 2007 +0200 + + nouveau:nv10: fill and use load,save graph context functions + +commit 3a0bc518e35c62bb9c64c9105f836584d949653f +Author: Eric Anholt +Date: Thu Aug 2 14:08:04 2007 -0700 + + Remove the pinned buffer from the LRU when pinning. + + Also, be a little safer with setting the pinned flag within the struct lock. + I'm not 100% sure if this is required, but it seems like it might be. + +commit cf4f1a85af69c2c2e5ba9c822d30863f16ce6821 +Author: Eric Anholt +Date: Thu Aug 2 13:51:55 2007 -0700 + + Add a couple of doxygen comments from reading the code. + +commit 9dfcc1ba07b6ad1a41234ae4016b54444094ac18 +Merge: 405c48b 7602e4f +Author: Patrice Mandin +Date: Thu Aug 2 20:08:05 2007 +0200 + + Merge branch 'master' of git+ssh://pmandin@git.freedesktop.org/git/mesa/drm + +commit 405c48b857a967c1174b27a5db975668e1d6a9f8 +Author: Patrice Mandin +Date: Thu Aug 2 20:06:37 2007 +0200 + + Add libdrm source dir, to build tests from a different build dir + +commit 7602e4f8a67d777437502672b4f74d9b990535ce +Author: Dave Airlie +Date: Thu Aug 2 19:13:45 2007 +1000 + + drm: add unlocked ioctl code path - not used yet + +commit f83000c8b388f18f677238b9342fd6a7e262394b +Author: Ian Romanick +Date: Tue Jul 31 17:27:00 2007 -0700 + + Refactor register dumping code. + +commit c395d27a725f170645704bfc0d27b1e935b53c83 +Author: Dave Airlie +Date: Wed Jul 25 14:32:15 2007 +1000 + + drm/fence: shut up lockdep + +commit 283eaa25594347267df4e6e5eedbb9d17bb3682c +Author: Dave Airlie +Date: Tue Jul 31 09:22:45 2007 +1000 + + drm: fix fencing refcount error + + This extra increase was causing fence leaks on my system, due to create/user add already increasing it twice no need for a 3rd go. + +commit 08919d8a70558dc61c430be5ed6e4a2bed7429b2 +Author: Ian Romanick +Date: Mon Jul 30 12:01:52 2007 -0700 + + Move additional GE initialization into the kernel. + + This code comes directly from the X server. + +commit 2fc697a7d270d57463eb5a16a0c65bd8e14c9893 +Author: Ian Romanick +Date: Mon Jul 30 10:20:15 2007 -0700 + + Fix GE shut-down sequence. + + When the GE is shut down, an empty command packet without a begin-link + must be sent. After this command is sent, wait for the hardware to go + idle. Finally, turn off the GE and disable MMIO. + +commit 01628a430d476f5875270d7137fc083ba85cef90 +Author: Ian Romanick +Date: Mon Jul 30 10:02:46 2007 -0700 + + Use DRM_READ/DRM_WRITE macros instead of directly accessing MMIO space. + +commit 2ac80e79e424aa6577e556b2df01caea9e480852 +Author: Ian Romanick +Date: Mon Jul 30 09:59:19 2007 -0700 + + Use OUT3C5B macro instead of assuming little-endian byte order. + +commit cd51f131389297f923798daef6c734ba93f4422b +Author: Ian Romanick +Date: Fri Jul 27 15:45:59 2007 -0700 + + Convert to new ioctl interface between core DRM and device-specific module. + +commit f01026eae69e81ae16a69a014ba3bcfb286fc7a4 +Author: Arthur Huillet +Date: Fri Jul 27 15:48:04 2007 +0200 + + nouveau: creating notifier in PCI memory for PCIGART + +commit c37ed9eca57a42b98cc67ca98dbf5135f5ab7aba +Author: Ian Romanick +Date: Thu Jul 26 17:01:16 2007 -0700 + + Eliminate use of DRM_ERR. + +commit b89cc0346500d9875d4acebc611db8f9ee3463f7 +Author: Ian Romanick +Date: Thu Jul 26 16:58:59 2007 -0700 + + Eliminate unnecessary (and now wrong) call gto drm_sg_free. + +commit c561cb4650dc5895acfb3ae00c7ff455be31a860 +Merge: 2bafeb6 4175dd8 +Author: Ian Romanick +Date: Thu Jul 26 16:58:28 2007 -0700 + + Merge branch 'master' of ssh+git://git.freedesktop.org/git/mesa/drm into xgi-0-0-2 + + Conflicts: + + linux-core/drmP.h + linux-core/drm_scatter.c + +commit 3c8ebd94e48589711f44d23e85d713a1ed980f37 +Author: Eric Anholt +Date: Thu Jul 26 11:26:12 2007 -0700 + + debug print ioctl return value as -integer rather than fffffwhatever. + +commit f9c27aa50b715a7d21858f1ce9e4785120bd0c36 +Author: Eric Anholt +Date: Thu Jul 26 11:17:41 2007 -0700 + + Copy the important parts of object_validate into object_create(). + + This should let us allocate buffers without holding the hardware lock. + + While here, add DRM_DEBUG info for the drm_bo ioctls, so you can see something + more specific than just the cmd value per ioctl. + +commit cf2d569daca6954d11a796f4d110148ae2e0c827 +Author: Eric Anholt +Date: Thu Jul 26 10:14:17 2007 -0700 + + Replace NO_MOVE/NO_EVICT flags to buffer objects with an ioctl to set pinning. + + This cleans up the create/validate interfaces for this very uncommon path, and + makes pinned object creation much easier to use for the X Server. + +commit 4175dd818110bd10d6d09190d30c271e89202b18 +Author: Dave Airlie +Date: Thu Jul 26 15:26:36 2007 +1000 + + drm/bo: set the req pointer for each buffer to validate + +commit e2d00715cc1d3919aadd5066ef7355049f417bd2 +Author: Dave Airlie +Date: Thu Jul 26 13:25:21 2007 +1000 + + drm: fix size argument for copy to/from user + +commit f2528cbc965858c6a7a81d659f9d5f4da290b5ae +Author: Eric Anholt +Date: Wed Jul 25 12:54:15 2007 -0700 + + Improve the drawable test to use multiple drawables. + +commit be3099f26547f48066bbdd7a36578b54da9170b4 +Author: Eric Anholt +Date: Sun Jul 22 09:51:34 2007 +0100 + + Fix copy'n'paste-o in FreeBSD drawable code. + +commit 2bafeb673f14b1e3799bf00817138c0b8211635e +Author: Ian Romanick +Date: Tue Jul 24 16:17:30 2007 -0700 + + Fix typo on previous commit. Sigh... + +commit 75a68635a8f7b0d4fb31031832cc282a39a4a1e7 +Author: Ian Romanick +Date: Tue Jul 24 15:53:50 2007 -0700 + + Pass correct offset to xgi_find_pcie_virt. + + The wrong offset was being passed to xgi_find_pcie_virt. This would + cause an oops in addFlush2D. + +commit 8e64d2ae862d5fa02e23c68db6b55393e1f86005 +Author: Ian Romanick +Date: Tue Jul 24 13:36:02 2007 -0700 + + Fix license formatting. + +commit 2ef2997ee38ff359c331b6a3febf194bd46e4962 +Author: Ian Romanick +Date: Tue Jul 24 13:29:29 2007 -0700 + + Fix flags for serveral ioctls. + +commit 887cb31ee9ec04e45829500f095aa4a3bc1095ea +Author: Ian Romanick +Date: Tue Jul 24 13:27:44 2007 -0700 + + Fix bug preventing X server from restarting. + + The core DRM lastclose routine automatically destroys all mappings and + releases SG memory. XP10 DRM and DDX assumed this data stayed around + until module unload. xgi_bootstrap was reworked to recreate all these + mappings. In addition, the drm_addmap for the GART backing store was + moved into the kernel. This causes a change to the ioctl protocol and + a version bump. + +commit 46214fc3979ed60b32289ade1b8efbba1c8bf732 +Author: Ian Romanick +Date: Mon Jul 23 18:50:52 2007 -0700 + + Minor log message clean up. + +commit 388a2c54eea7575a5b046da3df09f7a1c63551d6 +Author: Ian Romanick +Date: Mon Jul 23 18:50:07 2007 -0700 + + Minor log message clean up. + +commit 03e932e32be6ae3de6994c6893c813a34623ad7d +Author: Eric Anholt +Date: Mon Jul 23 15:11:12 2007 -0700 + + linux: Make DRM_IOCTL_GET_CLIENT return EINVAL when it can't find client #idx. + + Fixes the getclient test and dritest -c. + +commit 2097d743f287d994bd001baedd39e3bc808999c6 +Author: Ian Romanick +Date: Mon Jul 23 13:26:28 2007 -0700 + + Eliminate XGI_CHECK_PCI_CONFIG. + + Based on review comments from airlied, XGI_CHECK_PCI_CONFIG is + removed. He believes (and I tend to agree) that this is a largely + unnecessary workaround for a bug elsewhere. + +commit 7e6d08f670a55d79ee037144aa29104e4e8fc700 +Author: Adrian Bunk +Date: Mon Jul 23 18:15:00 2007 +1000 + + drm_rmmap_ioctl(): remove dead code + + This patch removes some obviously dead code spotted by the Coverity + checker. + + Signed-off-by: Adrian Bunk + +commit 94203840fe53edaf1556d1a0a8a27773c24a7fc5 +Author: Ian Romanick +Date: Sat Jul 21 23:00:01 2007 -0700 + + Bump version. + +commit 699207cf2fa0c5255365dd28eeb3dd760f362818 +Author: Ian Romanick +Date: Sat Jul 21 21:37:45 2007 -0700 + + Remove some extraneous debug messages. + +commit 877296ade051cd45c0c2e0354b9f6765f8030413 +Author: Ian Romanick +Date: Sat Jul 21 21:36:11 2007 -0700 + + xgi_mem_alloc::offset is a hardware offset, so it should be u32, not long. + +commit 1a0775760c0eecbb238f0e928b185c267c1c3783 +Author: Ian Romanick +Date: Sat Jul 21 21:35:06 2007 -0700 + + Rename and document fields of xgi_cmdring_info. + +commit 3265a61f895a1d35072984e9cdc71aad898647fa +Author: Ian Romanick +Date: Sat Jul 21 20:39:22 2007 -0700 + + Make s_cmdring a field in the xgi_info structure instead of a global. + +commit 5d6fdd9d7924fde8ce62631e6bdce8d5fe33fc3d +Author: Ian Romanick +Date: Sat Jul 21 20:34:56 2007 -0700 + + Clean up xgi_cmd_info and associated code. + + There were numerous unnecessary fields in xgi_cmd_info. The remaining + fields had pretty crummy names. Cut out the cruft, and rename the + rest. As a result, the unused parameter "triggerCounter" to + triggerHWCommandList can be removed. + +commit 0844c46759b96d52c4952fceb96f7c6bb74b2ce7 +Author: Pekka Paalanen +Date: Sat Jul 21 23:13:25 2007 +0300 + + Fix misc ioctl issues, makes Nouveau run. + + Debug print fix in drm_release(). + Forgotten local variable init in drm_setversion(). + Unnecessary put_user() in drm_addmap_ioctl(). + ioctl->cmd check broken in drm_ioctl(); workaround. + +commit b43b0b2b32a31bcb81042659ffcc95b8975e42cf +Author: Dave Airlie +Date: Sat Jul 21 22:11:41 2007 +1000 + + fix missing brace placement for IOC_IN + +commit f68ad6d1abdce7d3c11cc2e90745c0d1e565fe77 +Author: Dave Airlie +Date: Sat Jul 21 21:50:25 2007 +1000 + + fix drm no-compile due to BSD :-) + +commit 5b38e134163cc375e91424c4688cc9328c6e9082 +Author: Eric Anholt +Date: Thu Jul 19 17:11:11 2007 -0700 + + Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE. + + The data is now in kernel space, copied in/out as appropriate according to the + This results in DRM_COPY_{TO,FROM}_USER going away, and error paths to deal + with those failures. This also means that XFree86 4.2.0 support for i810 DRM + is lost. + +commit c1119b1b092527fbb6950d0b5e51e076ddb00f29 +Author: Eric Anholt +Date: Fri Jul 20 06:39:25 2007 -0700 + + Replace filp in ioctl arguments with drm_file *file_priv. + + As a fallout, replace filp storage with file_priv storage for "unique + identifier of a client" all over the DRM. There is a 1:1 mapping, so this + should be a noop. This could be a minor performance improvement, as everything + on Linux dereferenced filp to get file_priv anyway, while only the mmap ioctls + went the other direction. + +commit 35de4868361ce1fb515cf33f27e6be4c59b07f89 +Author: Eric Anholt +Date: Fri Jul 20 06:42:18 2007 -0700 + + BSD: Replace symlink building with symlinks in git. + +commit e39286eb5eab8846a228863abf8f1b8b07a9e29d +Author: Eric Anholt +Date: Thu Jul 19 17:00:17 2007 -0700 + + Remove DRM_ERR OS macro. + + This was used to make all ioctl handlers return -errno on linux and errno on + *BSD. Instead, just return -errno in shared code, and flip sign on return from + shared code to *BSD code. + +commit 5dc9fd96d7bf48003db832f145ad8acb4bcb73b4 +Author: Eric Anholt +Date: Fri Jul 20 12:55:51 2007 -0700 + + Fix linux spinlock macros after the last commit. + +commit ed82d5398a751cf755cf4168cbb79b181facc86f +Author: Ian Romanick +Date: Fri Jul 20 11:31:01 2007 -0700 + + Clean up flush command generation in addFlush2D. + +commit 659209cb2d59c7b25df58d130d0649f8f899b693 +Author: Ian Romanick +Date: Fri Jul 20 11:29:16 2007 -0700 + + Clean up generation of begin commands in xgi_submit_cmdlist + + Generate the begin command once in a temporary buffer. Then, + depending on whether the command is to be written directly to the + hardware or to a secondary buffer, copy to command to the correct place. + +commit 6bd848307485f678915913f282e2ea59ae3ca1a8 +Author: Ian Romanick +Date: Fri Jul 20 10:57:40 2007 -0700 + + Change handling of begin types slightly. + + Moved the getCurBatchBeginPort before its only caller. Modified + function to return the command ID instead of the port offset. + Function also now assumes input begin type is value. + + Added code to ioctl handler to validate begin type. + +commit 9ccb8440f393a395941b211ee87d9addcfa6d69a +Author: Jakob Bornecrantz +Date: Fri Jul 20 11:36:57 2007 +0200 + + Changed mode config spinlock to mutex + +commit 56665a42f470d5cf8cb4865558cb658dff15a9dd +Author: Ian Romanick +Date: Thu Jul 19 19:09:24 2007 -0700 + + Delete unused variable in xgi_driver_load. + +commit 970674f4867d65bd16cf3585d46930b72a827cce +Author: Ian Romanick +Date: Thu Jul 19 19:08:47 2007 -0700 + + Fix error handing related to xgi_cmdlist_initialize. + + xgi_cmdlist_initialize wasn't correctly checking for errors from + xgi_pcie_alloc. Furthermore, xgi_bootstrap, the one caller of + xgi_cmdlist_initialize, wasn't check its return value. + +commit a33f5487296eacf503f5b27ba829f5fbdae8e63b +Author: Ian Romanick +Date: Thu Jul 19 19:05:52 2007 -0700 + + Debug message and comment clean up in xgi_submit_cmdlist. + +commit 15245b670e5359a7dbf9151aa9f160e929e0b46b +Author: Ian Romanick +Date: Thu Jul 19 11:38:56 2007 -0700 + + Rework xgi_(pcie|fb)_free_all to prevent deadlock. + +commit 2f53ce4af2f7db911d908ff382738f30be004e8b +Author: Ian Romanick +Date: Thu Jul 19 11:05:13 2007 -0700 + + Move MMIO drm_addmap (and code that depends on it) to xgi_bootstrap. + + For reasons that I don't understand, the drm_addmap call would succeed + in xgi_driver_load, but writes to the map later would oops. Moving it + to xgi_bootstrap fixes this problem. + +commit 5ba94c2ab8be350fee495e5cfe94afb8f663956a +Author: Ian Romanick +Date: Thu Jul 19 10:29:18 2007 -0700 + + Initial pass at converting driver to DRM infrastructure. + +commit 43c9abdedc88807a40034513de842d6eeb8c3ed2 +Author: Jakob Bornecrantz +Date: Thu Jul 19 16:58:23 2007 +0200 + + Fix unlocking of spinlock when we should not + +commit f4e1c1d05cfbd43ac429ab6dc78345ffa3599b7a +Author: Eric Anholt +Date: Thu Jul 19 06:46:13 2007 -0700 + + FreeBSD warnings cleanup. + +commit 05204b9c8d021e019456a8dbd83c012e277c7aaf +Merge: e544286 0c95d48 +Author: Eric Anholt +Date: Thu Jul 19 06:31:26 2007 -0700 + + Merge branch 'origin' + +commit e544286eae71a6b150af4d86096895c14e42c36e +Author: Eric Anholt +Date: Thu Jul 19 06:17:58 2007 -0700 + + FreeBSD: Fix the recently added drawable add/remove/update code. + +commit ecf3fbe599cd72c495acf339ae24f3a9e01fdb36 +Author: Eric Anholt +Date: Thu Jul 19 06:17:04 2007 -0700 + + Add a test for drawable add, remove, and update. + +commit 50cb405f93da70054ede29e0c365f06352dc8fe5 +Author: Eric Anholt +Date: Thu Jul 19 06:02:20 2007 -0700 + + Fix the getclient test (Need this feature for future tests). + +commit d7cf298e540c631795868c52b044c7249bf45902 +Author: Eric Anholt +Date: Thu Jul 19 04:59:59 2007 -0700 + + Add some trivial regression tests, one of which fails. + +commit 51de9ec5e38426b13a1da0f78f3a0894dcb3e495 +Author: Eric Anholt +Date: Thu Jul 19 03:36:57 2007 -0700 + + Add current BSD stuff to .gitignore. + +commit 0c95d489abd19efd2ba017e78a4b28cea0854e77 +Author: Ben Skeggs +Date: Thu Jul 19 16:42:58 2007 +1000 + + nouveau/nv50: get non-default push buffer sizes working. + +commit 33a50412c21229610dbb75dee83f145e2f1ec128 +Author: Eric Anholt +Date: Wed Jul 18 14:22:40 2007 -0700 + + Add dry-coded DRM drawable private information storage for FreeBSD. + + With this, all modules build again. + +commit af4cfa624a005f7105db89f6f076c41adbe44bd3 +Author: Pekka Paalanen +Date: Fri Jul 6 20:33:32 2007 +0300 + + nouveau: Make nouveau_wait_for_idle() read PTIMER. + + Following my nv28 kmmio dumps, nouveau_wait_for_idle() is modified to + read PTIMER and NV03_PMC_ENABLE. Also a timeout based on PTIMER value is + added, so wait_for_idle() cannot stall indefinitely (unless PTIMER is + halted). The timeout was selected as 1 giga-ticks, which for me is 1s. + +commit 696bee093f6f75dbb48699ff32bbebe2d3a1e307 +Author: Pekka Paalanen +Date: Fri Jul 6 19:34:15 2007 +0300 + + nouveau: Add read() method to Engine.timer. + + This is not called from anywhere, yet. + +commit 0c77f5abeadcbb89643740889cc865ba0ae66538 +Author: Pekka Paalanen +Date: Fri Jul 6 13:57:31 2007 +0300 + + nouveau: Add bitfield names for NSOURCE and NSTATUS. + + Name strings and pretty-printing in nouveau_graph_dump_trap_info(). + +commit 14ecf8d6c2ccecbe9841ad4a7eb3b301685f2351 +Author: Pekka Paalanen +Date: Fri Jul 6 12:47:53 2007 +0300 + + nouveau: Replace 0x00400104 and 0x00400108 with names. + + NV03_PGRAPH_NSTATUS and NV03_PGRAPH_NSOURCE. + The prefix NV03 is chosen because nv10reg.h had no versioned prefix, + and the code using these registers does not check card_type. + +commit 1ff858fe3a6b632c879a9f99a67227db7df70b62 +Author: Thomas Hellstrom +Date: Wed Jul 18 10:40:03 2007 +0200 + + Fix via dmablit when blit queue is full. + Fix by Simon Farnsworth, Bugzilla Bug #11542 + http://bugs.freedesktop.org/show_bug.cgi?id=11542 + +commit a64b5d8d3763639fbb4098500ad5c86fb8590aa7 +Author: Dave Airlie +Date: Wed Jul 18 15:49:45 2007 +1000 + + fix some missing whitespace/tab + +commit 3a71e87742ce8686c2b3c85ebbc8fb7a72b4f6e0 +Author: Dave Airlie +Date: Wed Jul 18 09:46:16 2007 +1000 + + drm: idr stuff is upstream for 2.6.23 + +commit 6ad1df217647d112a21c2e004d4e3d74c7bb0e0e +Author: Dave Airlie +Date: Wed Jul 18 09:42:06 2007 +1000 + + drm: remove drm_u64_t, replace with uint64_t everwhere + + This might break something, stdint.h inclusion in drm.h maybe required + but I'm not sure yet what platforms have it what ones don't. + +commit bff698d0edef90272247dfb90e454f7b98fd82dd +Author: Dave Airlie +Date: Tue Jul 17 09:59:26 2007 +1000 + + drm_context: fix braino + +commit 8d60bf2f199d57ec45feaab836b31832b9bbabb9 +Author: Ian Romanick +Date: Mon Jul 16 22:15:41 2007 -0700 + + Add XP5 and XP10 PCI IDs. + +commit 7f98815d0027b1d4bd07b08e540106d5e994bcc5 +Author: Ian Romanick +Date: Mon Jul 16 22:15:01 2007 -0700 + + Make drm_sg_free callable in-kernel. + +commit bcba7ba981a88e27ad4d7e8ebcdbed7097cf1488 +Author: Ian Romanick +Date: Mon Jul 16 21:15:58 2007 -0700 + + Log message clean up in WriteRegDWord. Remove unused inline functions. + +commit 5b08ab258f3e541334d2b64d38e15e1431080199 +Author: Ian Romanick +Date: Mon Jul 16 21:12:30 2007 -0700 + + Clean ups (primarilly log messages) in xgi_test_rwinkernel. + +commit 2b6ea465134e72fa6aa96df5e40fbc91b561ef00 +Author: Ian Romanick +Date: Mon Jul 16 21:11:22 2007 -0700 + + Eliminate unnecessary structures and defines. + +commit 875dd1e53852d231b60eb82bfed33c016f92f3b8 +Author: Ben Skeggs +Date: Tue Jul 17 14:06:05 2007 +1000 + + nouveau: Destroy PGRAPH context table on PGRAPH takedown + +commit 658ff2daf3d2a080da2d859f522a627aef841637 +Author: Ian Romanick +Date: Mon Jul 16 20:58:43 2007 -0700 + + Eliminate several useless ioctls and associated cruft. + + The ioctlss XGI_ESC_DEVICE_INFO, XGI_ESC_MEM_COLLECT, + XGI_ESC_PCIE_CHECK, XGI_ESC_GET_SCREEN_INFO, XGI_ESC_PUT_SCREEN_INFO, + XGI_ESC_MMIO_INFO, and XGI_ESC_SAREA_INFO, are completely unnecessary. + The will be doubly useless when the driver is converted to the DRM + infrastructure. + +commit 4575d5b8f18fef8cd19e7884bf8dab5e8f71ec9e +Author: Ian Romanick +Date: Mon Jul 16 20:56:11 2007 -0700 + + Massive log message clean up in xgi_submit_cmdlist. + +commit ec67c2def9af16bf9252d6742aec815b817f135a +Author: Ben Skeggs +Date: Sun Jul 15 17:18:15 2007 +1000 + + nouveau: G8x PCIEGART + + Actually a NV04-NV50 ttm backend for both PCI and PCIEGART, but PCIGART + support for G8X using the current mm has been hacked on top of it. + +commit 70a8a60a3e81c18f9c6485102cb226c340c3cd73 +Author: Ian Romanick +Date: Mon Jul 16 10:56:43 2007 -0700 + + Correct errors in the usage of pci_map_page. + + With these changes the driver no longer instantly hard-locks a 6600LE + on a PowerPC G5. I haven't tested any 3D apps yet. + +commit 3f04fe7890fe7728e7df37a6b65ad328a46699bf +Author: Eric Anholt +Date: Mon Jul 16 01:53:06 2007 -0700 + + Fix FreeBSD build. + +commit 0be629a914129446b353881f7d92aae707137047 +Author: Dave Airlie +Date: Mon Jul 16 14:45:47 2007 +1000 + + drm/radeon/ttm: more VRAM fixes + +commit 23631fca09a9769d2391ebdec1f186cf33bf984e +Author: Dave Airlie +Date: Mon Jul 16 13:52:21 2007 +1000 + + drm: fixup old kernel compat code + +commit 0accdc1f69885c6145b6224d26ccd72002f2a72e +Author: Dave Airlie +Date: Mon Jul 16 13:50:04 2007 +1000 + + drm: fixup compat wrappers + +commit 535e3dec8c61474be55588d2b5dc87b0301435f8 +Author: Dave Airlie +Date: Mon Jul 16 13:46:37 2007 +1000 + + drm: remove internal sman typedef + +commit 191c062933bb7a6f9dabf3fd639321e1dac88c50 +Author: Dave Airlie +Date: Mon Jul 16 13:45:39 2007 +1000 + + drm: remove drm_ref_t + +commit 24311d5d82b61a4729b15355088dd9c2898d1089 +Author: Dave Airlie +Date: Mon Jul 16 13:42:11 2007 +1000 + + drm: remove drm_buf_t + +commit be85ad0333b0c28129c2e4635f92780816308aa6 +Author: Dave Airlie +Date: Mon Jul 16 13:37:02 2007 +1000 + + drm: detypedef ttm/bo/fence code + +commit 6dce9e07352e14d2e03d26b8a64a40e111ecab2b +Author: Dave Airlie +Date: Mon Jul 16 12:48:44 2007 +1000 + + drm: remove hashtab/sman and object typedefs + +commit 21ee6fbfb8f2219a454458204afc9c5fcd89f9a8 +Author: Dave Airlie +Date: Mon Jul 16 12:32:51 2007 +1000 + + drm: remove drmP.h internal typedefs + +commit 1a07256d601a94466b7905680f5b929bf3f2390a +Author: Dave Airlie +Date: Mon Jul 16 11:30:53 2007 +1000 + + drm: remove ttm userspace typedefs + +commit b95ac8b7b313ad3eadc9e8bb0ead155303b7fa92 +Author: Dave Airlie +Date: Mon Jul 16 11:22:15 2007 +1000 + + drm: detypedef drm.h and fixup all problems + +commit 4be9554fcdf27bce86d0d69068d284af2793b950 +Author: Dave Airlie +Date: Mon Jul 16 11:13:07 2007 +1000 + + drm: fix typedef in drm_os_linux.h + +commit f174f835ffac330bbd373d8ba5091205be28f327 +Author: Dave Airlie +Date: Mon Jul 16 10:13:58 2007 +1000 + + drm: remove typedefs in drm.h to their own section + +commit 2134193af6c29fcb83408b2878facd4b9cc4c4c8 +Merge: bc7d6c7 2c9e05c +Author: Dave Airlie +Date: Mon Jul 16 10:05:20 2007 +1000 + + Merge branch 'drm-ttm-cleanup-branch' + +commit bc7d6c76fab2ff4d2f11b6bd84ca8b8f124729fd +Author: Patrice Mandin +Date: Sat Jul 14 18:32:11 2007 +0200 + + nouveau: nv10 and nv11/15 are different + +commit aa6d9199fa7b0cbe04a936312db7be75bb53bdc8 +Author: Arthur Huillet +Date: Fri Jul 13 20:51:52 2007 +0200 + + applied patch from Ian Romanick fixing PCI DMA object creation code + +commit 00a5ab760b1d65ceea95e703d8ce8ecf8b63fbb3 +Merge: 5ae3ad4 3007b03 +Author: Arthur Huillet +Date: Fri Jul 13 16:03:25 2007 +0200 + + Merge commit 'public/master' + +commit 5ae3ad4f015aa072180a0c55255832be4e7557cf +Author: Arthur Huillet +Date: Fri Jul 13 15:57:17 2007 +0200 + + now attempting to create PCI object only when there is a pci_heap + +commit 3007b03bdf608708a50b842d4291d3640c30f2c5 +Author: Arthur Huillet +Date: Fri Jul 13 15:57:17 2007 +0200 + + now attempting to create PCI object only when there is a pci_heap + +commit 0029713451af6f5f216079775ff77cae9b423c0e +Author: Ben Skeggs +Date: Fri Jul 13 15:09:31 2007 +1000 + + nouveau: nuke internal typedefs, and drm_device_t use. + +commit 5522136b7f01402ae02cbe35180e3d80f850a6b3 +Merge: 76ca1e8 851c950 +Author: Ian Romanick +Date: Thu Jul 12 15:28:17 2007 -0700 + + Merge branch 'master' into xgi-0-0-2 + +commit 851c950d988e5a47fa6add71427e5ef8d4dcf231 +Author: Ben Skeggs +Date: Fri Jul 13 02:18:59 2007 +1000 + + nouveau: unbreak AGP + +commit ead9cd64bd767a30235860e9cfca25d937784bee +Author: Dave Airlie +Date: Thu Jul 12 14:26:03 2007 +1000 + + radeon: add VRAM support for radeon ttm + + This needs a lot of testing + +commit 5c6a23704afa9445a58585ea2b8686b054f4074a +Author: Dave Airlie +Date: Thu Jul 12 14:25:29 2007 +1000 + + Merge branch 'radeon-ttm' of git://people.freedesktop.org/~airlied/drm into radeon-ttm + + Conflicts: + + linux-core/ati_pcigart.c + linux-core/drmP.h + linux-core/radeon_buffer.c + +commit af317f1cc7136dbf03b39ced64c42202703c5066 +Author: Ben Skeggs +Date: Thu Jul 12 11:55:47 2007 +1000 + + nouveau: mem_alloc() returns offsets, not absolute addresses now. + +commit 522a0c868c79b48c5434f39faab1a02ca4425a90 +Author: Ben Skeggs +Date: Thu Jul 12 11:39:45 2007 +1000 + + nouveau: nuke left over debug message + +commit 750371cb6ea9a64c9d4d4d3b9716c3c68d810d48 +Author: Ben Skeggs +Date: Thu Jul 12 10:15:16 2007 +1000 + + nouveau: separate region_offset into map_handle and offset. + +commit 5fbdf9da8bda996c0a474d13fe69d260f12ffce7 +Author: Arthur Huillet +Date: Thu Jul 12 02:35:39 2007 +0200 + + fixed object creation code to not Oops on 64bits, worked around memalloc not working on 64bit for PCIGART + +commit b301a9051b3fd9ad3dce6bcf32b06da7953a8b91 +Author: Arthur Huillet +Date: Wed Jul 11 15:01:37 2007 +0200 + + NV50 will not attempt to use PCIGART now + +commit d26ae22c2b17e0f193334cefec7d141befcfa1ee +Author: Arthur Huillet +Date: Wed Jul 11 14:56:27 2007 +0200 + + fixed bug that prevented PCIE cards from actually using PCIGART - NV50 will probably still have a problem + +commit 5ccadac9e3b1beb8ac0177c7a39862094fe3b6de +Author: Ben Skeggs +Date: Wed Jul 11 14:22:59 2007 +1000 + + nouveau/nv50: G80 fixes. + + Again, no hardware, so no idea if it'll even work yet. I understand how + the PRAMIN setup works now, un-hardcoding stuff will come "RealSoonNow(tm)". + +commit 13e1377044d581d692af77656e3bc32c9eb183f7 +Author: Ben Skeggs +Date: Wed Jul 11 12:38:48 2007 +1000 + + nouveau: Some checks on userspace object handles. + +commit 2c9e05cf4c6eb18c941321f764ed1b282a314ba9 +Merge: 9b9a127 694e1c5 +Author: Dave Airlie +Date: Wed Jul 11 11:23:41 2007 +1000 + + Merge branch 'master' into cleanup + + Conflicts: + + libdrm/xf86drm.c + linux-core/drm_bo.c + linux-core/drm_fence.c + +commit 694e1c5c3f768436651ddf95e11ab5a89ccc8ffa +Author: Arthur Huillet +Date: Wed Jul 11 02:35:10 2007 +0200 + + Added support for PCIGART for PCI(E) cards. Bumped DRM interface patchlevel. + +commit 04e4922c0c407a9f0cfe268f62130891e98fc682 +Author: Arthur Huillet +Date: Wed Jul 11 02:33:12 2007 +0200 + + Made drm_sg_alloc accessible from inside the DRM - drm_sg_alloc_ioctl is the ioctl wrapper + +commit 76ca1e858fb8e1a65ea49c0c62350d7ca91044a2 +Author: Ian Romanick +Date: Mon Jul 9 18:54:25 2007 -0700 + + Convert occurances of U32 to other types. + + Most occurances of U32 were converted to u32. These are cases where + the data represents something that will be written to the hardware. + Other cases were converted to 'unsigned int'. + + U32 was the last type in xgi_types.h, so that file is removed. + +commit a9c49be6f8a0aa199a9dc0ffd0a9aa2b85cd796d +Author: Ian Romanick +Date: Mon Jul 9 18:52:43 2007 -0700 + + Fix ioctl types. + + I had moved code from xgi_drv.h to xgi_drm.h before changing the ioctl + types for XGI_IOCTL_(FB|PCIE)_ALLOC. + +commit 5c481d0a4284ec7311a47fbeab1680d007769668 +Author: Ian Romanick +Date: Mon Jul 9 16:43:48 2007 -0700 + + Eliminiate fields in xgi_info that are duplicates of fields in pci_dev. + +commit 1f4e24b429789710f5d69fc78335f20c023569bb +Author: Ian Romanick +Date: Mon Jul 9 16:33:14 2007 -0700 + + Move types shared with user mode to xgi_drm.h. + +commit 7268b65d5ce804713c12b8fadc42f9a086cdfe14 +Author: Ian Romanick +Date: Mon Jul 9 16:22:48 2007 -0700 + + Correct types that are shared with user mode. + +commit a3f56dc3d0620633c7719a01e6e578661d65edfc +Author: Ian Romanick +Date: Mon Jul 9 16:07:27 2007 -0700 + + Adjust the types of the fields of xgi_aperture. + +commit 2f2d8b9688743ac6367bf13c3c023310a257ceb7 +Author: Ian Romanick +Date: Mon Jul 9 15:59:09 2007 -0700 + + Merge xgi_mem_req and xgi_mem_alloc into a single type. + + These two structures were used as the request and reply for certain + ioctls. Having a different type for an ioctl's input and output is + just wierd. In addition, each structure contained fields (e.g., pid) + that had no business being there. + + This change requires updates to user-space. + +commit 023f7d9c0064f912415c92a85c3a9d722191909f +Author: Ben Skeggs +Date: Mon Jul 9 23:58:00 2007 +1000 + + nouveau: Allocate mappable VRAM for notifiers.. + +commit 31e33813e8c1b085683e68524e680882368e59a9 +Author: Ben Skeggs +Date: Mon Jul 9 20:02:14 2007 +1000 + + nouveau: Don't be so strict on +Date: Mon Jul 9 15:37:37 2007 +1000 + + nouveau: Avoid oops + + Turns out lastclose() gets called even if firstopen() has never been... + +commit c806bba4665bb369168ee0b453fa28e2e0bf2a5d +Author: Ben Skeggs +Date: Thu Jul 5 00:12:33 2007 +1000 + + nouveau/nv50: Initial channel/object support + + Should be OK on G84 for a single channel, multiple channels *almost* work. + + Untested on G80. + +commit 3324342e42b78aef8e90e11273776dd2b3b92074 +Author: Ben Skeggs +Date: Wed Jul 4 15:31:01 2007 +1000 + + nouveau: enable reporting for all PFIFO/PGRAPH irqs + +commit 163f8526123ffa38783fc911b5f7a19debce7f73 +Author: Ben Skeggs +Date: Mon Jul 2 19:31:18 2007 +1000 + + nouveau: rewrite gpu object code + + Allows multiple references to a single object, needed to support PCI(E)GART + scatter-gather DMA objects which would quickly fill PRAMIN if each channel + had its own. + + Handle per-channel private instmem areas. This is needed to support NV50, + but might be something we want to do on earlier chipsets at some point? + + Everything that touches PRAMIN is a GPU object. + +commit 5b726b63906419ccb3de2e065f9bf7ae875ccdf3 +Author: Michel Dänzer +Date: Fri Jul 6 09:50:50 2007 +0200 + + radeon: Improve vblank counter. + + The frame counter seems to increase only at the end of vertical blank, so we + need to add 1 while in vertical blank. + +commit 86e75b7f7f64643c6ef2c0fef353b38753df8239 +Author: Ian Romanick +Date: Thu Jul 5 17:49:13 2007 -0700 + + Remove XGI_IOCTL_CPUID and associated cruft. + +commit 8b18276458e93263d5d554f779227a906592ac74 +Author: Ian Romanick +Date: Thu Jul 5 17:45:44 2007 -0700 + + Major clean up of xgi_ge_irq_handler + + Two large blocks of code were moved out of this function into separate + functions. This brought some much needed sanity to the indentation. + Some dead varaibles were removed. + +commit 2695e8e209228dfc2e6a9b10bc118d0794602b37 +Author: Ian Romanick +Date: Thu Jul 5 17:18:12 2007 -0700 + + Convert weird rtdsc usage to get_cycles. + + I'm not convinced that get_cycles is the right approach here, but it's + better than the weird way that rtdsc was being used. + +commit d57b7f02d2e525e5600e5d77370d7ad2b4c9b265 +Author: Kristian Høgsberg +Date: Tue Jul 3 10:41:48 2007 -0400 + + Use idr_replace trick to eliminate struct drm_ctx_sarea_list. + +commit 1814a829eb65ee53a14fa9b53fc6f3a4196dcaa5 +Author: Kristian Høgsberg +Date: Tue Jul 3 10:31:46 2007 -0400 + + Don't take dev->struct_mutex twice in drm_setsareactx. + +commit 91990946fa3f7e8e725af18d1f3a63e0c7892308 +Author: Michel Dänzer +Date: Tue Jul 3 12:33:51 2007 +0200 + + One more spinlock initializer cleanup. + +commit ea832a8e555c9e1f90830b55cbd970d0eca0e2cf +Author: Michel Dänzer +Date: Tue Jul 3 12:15:15 2007 +0200 + + Simplification for previous commit. + + Dave Airlie pointed out on IRC that idr_replace lets us know if the ID hasn't + been allocated, so we don't need a special pointer value for allocated IDs that + don't have valid information yet. + +commit 8d96ba9805316b29e948d7594344feebb17042f7 +Author: Michel Dänzer +Date: Tue Jul 3 11:41:44 2007 +0200 + + Restore pre-idr semantics for drawable information. + + There's a difference between a drawable ID not having valid drawable + information and not being allocated at all. Not making the distinction would + break i915 DRM swap scheduling with older X servers that don't push drawable + cliprect information to the DRM. + +commit c9d752ff4fb2b6eee2fef636193fc9ca29abba37 +Author: Kristian Høgsberg +Date: Mon Jul 2 17:52:07 2007 -0400 + + Fix must-check warnings and implement a few error paths. + +commit b323ab52aa9ccbfb06dd723ece361a5242d067b0 +Author: Kristian Høgsberg +Date: Thu Jun 28 14:45:26 2007 -0400 + + Drop drm_drawable_list and add drm_drawable_info directly to the idr. + +commit fc37781dd30b53815dd71ce576eb2147d23f0914 +Author: Ian Romanick +Date: Fri Jun 29 21:48:31 2007 -0700 + + Convert a few more U32 variables to more appropriate, generic types. + +commit 49ccec1b0845ea14ab2cfd2f53704fe26e38fbef +Author: Ian Romanick +Date: Fri Jun 29 21:38:48 2007 -0700 + + Convert xgi_mem_location enum values to less generic names. + +commit 32584d94e6ef7c0b463794a40541eb8183c7fb02 +Author: Ian Romanick +Date: Fri Jun 29 21:35:27 2007 -0700 + + Convert open coded list iterators to either list_for_each_entry or list_for_each_entry_safe + +commit 4403540776c8ed3c2e28f26b6dacaab0b9e40e05 +Author: Ian Romanick +Date: Fri Jun 29 21:15:33 2007 -0700 + + Clean up xgi_pcie_heap_check + + The whole purpose of xgi_pcie_heap_check is to log information about + entries on the used_list. If XGI_DEBUG is not set, it doesn't print + anything. Therefore we can #ifdef the whole function body. + + Convert open-code list iteration to use list_for_each_entry. + +commit 4c4780bc8e5bf01b2b920c6b8de4ddbd0256c81f +Author: Ian Romanick +Date: Fri Jun 29 21:05:16 2007 -0700 + + Stop-gap fix in xgi_submit_cmdlist + + Comment in the code explains it. Basically, I put an if-statement + around a block of code to prevent a NULL pointer dereference that + should never happen in the first place. Eventually, this will need to + come out. + +commit e206c4c59da0e81ed65796d543c311fc7e30b19a +Author: Ian Romanick +Date: Fri Jun 29 21:00:50 2007 -0700 + + Convert some PCI-e GART related variable to generic types. + + A few of the PCI-e GART related fields in struct xgi_info were + hardcoded to u32. None of them need to be. Convert them to either + unsigned int or bool. + +commit 37733786582d04f072178949cc9e31225abf5577 +Author: Ian Romanick +Date: Fri Jun 29 20:49:21 2007 -0700 + + Delete unused arrays s_emptyBegin and s_flush2D. + +commit 406ded3816300f6b3e945c932c44350b22f43bd9 +Author: Ian Romanick +Date: Fri Jun 29 16:41:32 2007 -0700 + + Replace U(8|16) with u(8|16). + +commit ec7730e5ba6ac1d60f90af483b3966d863cb5400 +Author: Ian Romanick +Date: Fri Jun 29 16:37:39 2007 -0700 + + Eliminate unnecessary defines of TRUE and FALSE. + +commit 5da2a3c2d488983efed6f8433a304096e2bb75e8 +Author: Ian Romanick +Date: Fri Jun 29 16:37:01 2007 -0700 + + Replace BOOL with bool. + +commit ba3173fa39e236eee9ce9abb60f1151492378811 +Author: Ian Romanick +Date: Fri Jun 29 16:35:36 2007 -0700 + + Eliminate unused integer and float typedefs. + +commit 88328d4ef007c781874aafedfef59aae0d21a37c +Author: Ian Romanick +Date: Fri Jun 29 15:27:38 2007 -0700 + + Eliminate structure typedefs + + Documentation/CodingStyle says that 'typedef struct foo foo_t' is + evil. I tend to agree. Elminate all uses of such construct. + +commit 70fd9351ed6c666def710fd61b542a7c975d9ac9 +Author: Alan Hourihane +Date: Fri Jun 29 21:04:17 2007 +0100 + + Move out the code from i915_dma_cleanup to unload to match + existing code. + + This needs verifying. + +commit adff58223f4568d084cf62d03d4ecfc3a6cec000 +Author: Alan Hourihane +Date: Fri Jun 29 20:58:16 2007 +0100 + + Bring back code from merge that was accidentally removed. + +commit 14c49df06bb0b1adc0fa2a9bd575c454d39c7cf0 +Author: Alan Hourihane +Date: Fri Jun 29 20:14:09 2007 +0100 + + merge fixes + +commit 8a78dead291ffdb5a8774419cdca369a1e27cad9 +Merge: e79e2a5 a27af4c +Author: Alan Hourihane +Date: Fri Jun 29 20:09:44 2007 +0100 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + + Conflicts: + + linux-core/drm_drv.c + linux-core/drm_fops.c + linux-core/drm_objects.h + linux-core/drm_stub.c + shared-core/i915_dma.c + +commit 33b8476dfb0f9b5045103c3a9781ba82bcae4a9d +Author: Ian Romanick +Date: Fri Jun 29 09:30:02 2007 -0700 + + Fix return type of xgi_find_pcie_block. + + This function used to return 'void *', which was then cast to + 'xgi_pcie_block_t *' at the only caller. I changed the return type to + 'struct xgi_pcie_block_s *' and removed the explicit cast. + +commit a27af4c4a665864df09123f177ca7269e48f6171 +Author: Thomas Hellstrom +Date: Fri Jun 29 15:22:28 2007 +0200 + + Avoid hitting BUG() for kernel-only fence objects. + +commit 00f1a66f22d52c212bb9334a0103a4785af69bc1 +Author: Thomas Hellstrom +Date: Fri Jun 29 12:50:12 2007 +0200 + + Fence object reference / dereference cleanup. + + Buffer object dereference cleanup. + Add a struct drm_device member to fence objects: + This can simplify code, particularly in drivers. + +commit 475c1e67bacabb89c568c7482991451d223c53ae +Author: Ian Romanick +Date: Thu Jun 28 23:40:36 2007 -0700 + + Remove unused type 'struct xgi_pcie_list_s' / xgi_pcie_list_t. + +commit 8fa24c53f5851a2d3ad2da31ee56a4fd5abbd543 +Author: Ian Romanick +Date: Thu Jun 28 22:32:11 2007 -0700 + + Minor clean up of variable declarations in xgi_find_pcie_virt. + +commit 9c85fb866dc7954092b7ffd0ca9f76eb5354ace8 +Author: Ian Romanick +Date: Thu Jun 28 22:26:39 2007 -0700 + + Clean up debug log messages in xgi_find_pcie_block. + +commit 11ffe4632a097e3d579d084634eeccc63348249b +Author: Ian Romanick +Date: Thu Jun 28 22:20:13 2007 -0700 + + Convert comment header of xgi_find_pcie_virt to kernel doc format. + +commit e26ec51146e77eec2a45f61c9506e9800fc2fba2 +Author: Ben Skeggs +Date: Fri Jun 29 13:52:55 2007 +1000 + + nouveau: small RAMFC cleanups + +commit e79e2a58161d44754fd55507e155b7e12a09c4d2 +Author: Alan Hourihane +Date: Thu Jun 28 21:25:13 2007 +0100 + + Fix type/flags usage problem to check for preferred modes. + + Add more debugging to help diagnose problems. + +commit 1c32fecd6d2286af075976167c4887b9096e8312 +Author: Ben Skeggs +Date: Thu Jun 28 21:01:17 2007 +1000 + + nouveau: Hack around possible Xv blit adaptor breakage + +commit 2dd85772aa4e134730f294d77b4ff030a175a4ab +Author: Ben Skeggs +Date: Thu Jun 28 04:23:17 2007 +1000 + + nouveau/nv10: Fix earlier NV1x chips + + Can't use nv04 code for them, since an extra field was inserted into + RAMFC after DMA_PUT/GET. + +commit 68ecf61647e9ec16d59cc8f50550d11478eb3118 +Author: Ben Skeggs +Date: Mon Jun 25 15:42:55 2007 +1000 + + nouveau: never touch PRAMIN with NV_WRITE, cleanup RAMHT code a bit + +commit 18a6d1c9c380b6b19524f654d9173a79e19aa1df +Author: Ben Skeggs +Date: Mon Jun 25 15:16:19 2007 +1000 + + nouveau: simplify PRAMIN access + +commit 38617b6a26d893bbd7b235019159e609f6cdd84b +Author: Ben Skeggs +Date: Mon Jun 25 03:52:06 2007 +1000 + + nouveau: name some regs + +commit ce0d528d3ca78348a7c1ad7c402757824fb6cf95 +Author: Ben Skeggs +Date: Sun Jun 24 20:49:19 2007 +1000 + + nouveau/nv50: skeletal backend + +commit 695599f18d907bb277805581bbe208b0e083e7d9 +Author: Ben Skeggs +Date: Sun Jun 24 19:03:35 2007 +1000 + + nouveau: Nuke DMA_OBJECT_INIT ioctl (bumps interface to 0.0.7) + + For various reasons, this ioctl was a bad idea. + + At channel creation we now automatically create DMA objects covering + available VRAM and GART memory, where the client used to do this themselves. + + However, there is still a need to be able to create DMA objects pointing at + specific areas of memory (ie. notifiers). Each channel is now allocated a + small amount of memory from which a client can suballocate things (such as + notifiers), and have a DMA object created which covers the suballocated area. + The NOTIFIER_ALLOC ioctl exposes this functionality. + +commit 4f2dd78ff3b6efeee97b72cca6bbfaef485a08d9 +Author: Ben Skeggs +Date: Thu Jun 28 02:56:30 2007 +1000 + + nouveau/nv04: Set NV_PFIFO_CACHE1_PUSH1 correctly + small tweaks + +commit 9b9a127ed0fe9a6a8e2fde84739ccff6fa0bc5ac +Author: Thomas Hellstrom +Date: Tue Jun 26 23:25:40 2007 +0200 + + More 64-bit padding. + +commit 8cee7dca95bc2114eb90640cf83ac87c29243683 +Author: Ian Romanick +Date: Tue Jun 26 13:46:36 2007 -0700 + + Clean up warnings about unused variables and functions. + +commit b9ef1467fed9e96c5e7bd453d01511f8ce98583c +Author: Ian Romanick +Date: Tue Jun 26 13:39:01 2007 -0700 + + Clean up mixed declarations and code. + +commit 3547fbda63925217a5be24de5d5abec3b53d3fe1 +Author: Ian Romanick +Date: Tue Jun 26 13:29:28 2007 -0700 + + Revert over-zealous change from previous commit. + +commit 3a776fa01e61c1dc40a0a1803a80c98bf7e77164 +Author: Ian Romanick +Date: Tue Jun 26 13:26:10 2007 -0700 + + Add XGI driver to Makefiles. + +commit 47bf6239aaefb977cc17e421af273c3278eb127c +Author: Ian Romanick +Date: Tue Jun 26 13:20:15 2007 -0700 + + Clean up compile-time kernel feature detection. + +commit 7a053306a9f8152462fda521e1a8322ac2bdf9fd +Author: Ian Romanick +Date: Tue Jun 26 13:16:04 2007 -0700 + + linux/config.h is deprecated or gone. + +commit ec9e494eb99d409a7e1e97bb6c5f71e9bb5a4486 +Author: Ian Romanick +Date: Tue Jun 26 13:15:22 2007 -0700 + + Gut support for pre-2.6 kernels. + +commit 434657a2582362367ba2a94f827511252001368f +Author: Ian Romanick +Date: Tue Jun 26 13:10:30 2007 -0700 + + dos2unix and Lindent + +commit 7af9d670371de868f0642148fe2d594bc9a7dea3 +Author: Ian Romanick +Date: Tue Jun 26 13:05:29 2007 -0700 + + Initial XP10 code drop from XGI. + + See attachment 10246 on https://bugs.freedesktop.org/show_bug.cgi?id=5921 + +commit 5c27f8a70e6e3684d8d58661a9cc918a3514fd14 +Author: Ian Romanick +Date: Tue Jun 26 09:51:55 2007 -0700 + + Add support SiS based XGI chips to SiS DRM. + +commit 9f617522d9cb8cd33e588d12a13f427dbe5171c2 +Author: Ben Skeggs +Date: Mon Jun 25 01:57:57 2007 +1000 + + nouveau: NV49/NV4B PGRAPH setup from jb17bsome and stephan_2303 + +commit 3dfc13e2da10e86051c7106feb5683542907acdc +Author: Ben Skeggs +Date: Sun Jun 24 19:00:44 2007 +1000 + + nouveau: kill some dead code + +commit 5f05cd7086c54bccf1c2f0b003b78a08dc55472a +Author: Ben Skeggs +Date: Sun Jun 24 19:00:26 2007 +1000 + + nouveau: NV04/NV10/NV20 PGRAPH engtab functions + + NV04/NV10 load_context()/save_context() are stubs. I don't know enough about + how they work to implement them sanely. The "old" context_switch() code + remains hooked up, so it shouldn't break anything. + + NV20 will probably break if load_context() works. No inital context values + are filled in, so when the first channel is created PGRAPH will probably end + up having its state zeroed. Some setup from nv20_graph_init() will probably + need to be moved to the per-channel context setup. + +commit 5d55b0655cb480b7d6ab4cf2467dac6dc6d8df25 +Author: Ben Skeggs +Date: Sun Jun 24 18:58:38 2007 +1000 + + nouveau: NV3X PGRAPH engtab functions + +commit 341bc7820749024e09275de6e689b10c2908689a +Author: Ben Skeggs +Date: Sun Jun 24 18:58:14 2007 +1000 + + nouveau: NV1X/2X/3X PFIFO engtab functions + + Earlier NV1X chips use the NV04 code, see previous commits about NV10 RAMFC + entry size. + +commit 05d86d950a10b77ffaa708e9d89b2a87c11fed01 +Author: Ben Skeggs +Date: Sun Jun 24 18:57:09 2007 +1000 + + nouveau: NV04 PFIFO engtab functions + +commit acb710d1a59788a0205cd0daf0859864e683fbd2 +Author: Ben Skeggs +Date: Sun Jun 24 18:56:40 2007 +1000 + + nouveau: NV4X PGRAPH engtab functions + +commit f2e64d527699751d6b64698495ae1d48eeee6cf7 +Author: Ben Skeggs +Date: Sun Jun 24 18:56:01 2007 +1000 + + nouveau: NV4X PFIFO engtab functions + +commit 0afb3b518e1ece820b01f3eea64b25cff01c97bc +Author: Ben Skeggs +Date: Sun Jun 24 18:55:23 2007 +1000 + + nouveau: split PFIFO/PGRAPH context creation + +commit 9dbf322d26642f9e671f144b34e7cd7d295e9b8e +Author: Ben Skeggs +Date: Sun Jun 24 18:55:06 2007 +1000 + + nouveau: (mostly) hook up put_base again + +commit 24b71c318a00dfbb18b2bbf6652e3b781175c430 +Author: Ben Skeggs +Date: Sun Jun 24 18:54:51 2007 +1000 + + nouveau: prototype PFIFO/PGRAPH engtab API + +commit 5c7c07fd49b154623f9dfdab1fe1f2cda8508036 +Author: Ben Skeggs +Date: Sun Jun 24 18:54:36 2007 +1000 + + nouveau: rename engtab functions + +commit 7f2a1cf2753c0c97b1290469a15322f7549f78ae +Merge: d2d5302 97dcd7f +Author: Jesse Barnes +Date: Fri Jun 22 11:12:02 2007 -0700 + + Merge branch 'vblank-rework' into vblank + +commit 97dcd7fd25c18d5148619254229f8d94efb55b44 +Author: Jesse Barnes +Date: Fri Jun 22 11:06:51 2007 -0700 + + more vblank rework + - use a timer for disabling vblank events to avoid enable/disable calls too + often + - make i915 work with pre-965 chips again (would like to structure this + better, but this hack works on my test system) + +commit 068ffc1e1bf5607f836839a1fc621a95547251e3 +Author: Michel Dänzer +Date: Fri Jun 22 11:55:26 2007 +0200 + + radeon: Acknowledge all interrupts we're interested in. + + Failure to do so was probably the root cause of fd.o bug 11287. + +commit d2d53024fb4003a6b86a3ea1ea33c76ac20bebc9 +Author: Michel Dänzer +Date: Fri Jun 22 11:45:23 2007 +0200 + + Fix vblank wait condition. + + Sync-to-vblank actually works again for me with radeon. + +commit 2738bca6f52e236a2d9a0e456a78b10442ededdd +Author: Michel Dänzer +Date: Fri Jun 22 11:44:38 2007 +0200 + + Use drm_calloc instead of assigning 0. + +commit 6e2cd7c16331b07c395732d132a6a4cdc1fad481 +Author: Michel Dänzer +Date: Fri Jun 22 11:44:19 2007 +0200 + + drm_modeset_ctl_t fixes. + + s/u64/drm_u64_t/ to allow userspace code using drm.h to compile. + + Move 64 bit arg member to the beginning to avoid alignment issues with 32 + bit userspace on 64 bit kernels. + +commit b8dd31487551ff83b63205a5cefbd06de7d4fbca +Author: Michel Dänzer +Date: Fri Jun 22 11:42:54 2007 +0200 + + Remove mask parameter from radeon_acknowledge_irqs(). + + Simply always acknowledge all interrupts we're interested in, to avoid hard + hangs when an unexpected interrupt is flagged. + +commit 24c09faec1c47260cd280221fa72fe18a12efef9 +Merge: 2d24455 afe8422 +Author: Jesse Barnes +Date: Thu Jun 21 15:26:34 2007 -0700 + + Merge branch 'vblank-rework' into vblank + +commit afe842297f7117cf80718de78ce706f6fd83584b +Author: Jesse Barnes +Date: Thu Jun 21 15:23:20 2007 -0700 + + RADEON: fix race in vblank interrupt handling + It's possible that we disable vblank interrupts and clear the + corresponding flag in irq_enable_reg, but receive an interrupt at just + the wrong time, causing us to not ack it properly, nor report to the + core kernel that it was handled. Fix that case by always handling + vblank interrupts, even if the irq_enable_reg field is clear. + +commit 40f6a696cb22ffa064f78198a7a241015d365967 +Author: Oliver McFadden +Date: Thu Jun 21 14:35:11 2007 +0000 + + r300: Synchronized the register defines file; documentation changes. + +commit 213732af4381819113756d6d920794cf0dc30dd6 +Author: Oliver McFadden +Date: Thu Jun 21 14:32:58 2007 +0000 + + r300: Allow writes to R300_VAP_PVS_WAITIDLE. + +commit 2d24455ed8b12df6d06d135cb70f02473d11f4b0 +Author: Jesse Barnes +Date: Mon Jun 18 17:43:58 2007 -0700 + + Remove broken CRTC enable checks and incorrect user irq enable in set_pipe + routine. + +commit d8ed021d29951b17cfbda0ade968c73a52ac7ec7 +Author: Michel Dänzer +Date: Mon Jun 18 13:08:21 2007 +0200 + + radeon: VBlank rework fixups. + + Fix range of frame counter registers. + + Use DRM_ERR() instead of Linux specific error codes in shared code. + + Remove duplicate register definitions and superfluous local variables. + +commit 215787e4297ed4f6364bcc98869a347fc4cad00d +Author: Oliver McFadden +Date: Mon Jun 18 08:42:46 2007 +0000 + + r300: Registers 0x2220-0x2230 are known as R300_VAP_CLIP_X_0-R300_VAP_CLIP_Y_1. + +commit 8038e7b60f62e51b7f134141fd58f334eec31a10 +Author: Oliver McFadden +Date: Mon Jun 18 08:36:50 2007 +0000 + + r300: Synchronized the register defines file again. + +commit 638ebbab54a48004c2e1d9cc5498e1dec976911e +Author: David Woodhouse +Date: Mon Jun 18 12:45:20 2007 +1000 + + fix radeon setparam on 32/64 systems, harder. + + Commit 9b01bd5b284bbf519b726b39f1352023cb5e9e69 introduced a + compat_ioctl handler for RADEON_SETPARAM, the sole purpose of which was + to handle the fact that on i386, alignof(uint64_t)==4. + + Unfortunately, this handler was installed for _all_ 64-bit + architectures, instead of only x86_64 and ia64. And thus it breaks + 32-bit compatibility on every other arch, where 64-bit integers are + aligned to 8 bytes in 32-bit mode just the same as in 64-bit mode. + + Arnd has a cunning plan to use 'compat_u64' with appropriate alignment + attributes according to the 32-bit ABI, but for now let's just make the + compat_radeon_cp_setparam routine entirely disappear on 64-bit machines + whose 32-bit compat support isn't for i386. It would be a no-op with + compat_u64 anyway. + + Signed-off-by: David Woodhouse + +commit 741d1c80314de6f30bcc7eca7a7720b0aac3c56c +Author: Jesse Barnes +Date: Fri Jun 15 17:06:46 2007 -0700 + + Remove broken crtc enable checks, radeon does it slightly differently + (this makes get_vblank_counter return an actual value). + +commit b6610363e373c13a2e7fdee8691756e1768bdd57 +Author: Jesse Barnes +Date: Fri Jun 15 11:21:57 2007 -0700 + + First cut at radeon support for the vblank rework. + +commit 3d5d41fa9823cf44138c8f4bc954bca80539d74e +Author: Michel Dänzer +Date: Fri Jun 15 17:13:11 2007 +0200 + + i915: Fix handling of breadcrumb counter wraparounds. + +commit 0f5334be2bc6ceca971a7a6ab3ca1c23a707867c +Author: Michel Dänzer +Date: Fri Jun 15 11:01:51 2007 +0200 + + Remove DRIVER_IRQ_VBL(2). + + If the driver doesn't support vertical blank interrupts, it won't call + drm_vblank_init(), and dev->num_crtcs will be 0. + + Also fix an off-by-one test against dev->num_crtcs. + +commit fbee089aca727c92e0aa5d7a2ae7a8c5cf9c3076 +Author: Michel Dänzer +Date: Fri Jun 15 10:49:16 2007 +0200 + + Make vblank waitqueue per CRTC. + +commit 84bea383538df83c049680497ba2179e50d07ca3 +Author: Thomas Hellstrom +Date: Fri Jun 15 10:35:52 2007 +0200 + + Fix i915 sequence mask. + +commit 3ee31a1f356df4b81e3ba226a416627fd3b70e07 +Author: Thomas Hellstrom +Date: Fri Jun 15 10:31:32 2007 +0200 + + Indentation fixes. + +commit d34b2c7b9e108766b1d67cd23b8f7ecc77835ac7 +Author: Thomas Hellstrom +Date: Fri Jun 15 10:21:31 2007 +0200 + + Fix refcounting / lock race. + + Reported by Steve Wilkins / Michel Dänzer. + +commit e1b8eabeee354822fc0a413dd097210b621eb73a +Author: Thomas Hellstrom +Date: Thu Jun 14 11:52:38 2007 +0200 + + Locking fixes and instrumentation. + +commit 82e2c3304d3f1697537b73a2c888c8c6b1b6cdc8 +Author: Michel Dänzer +Date: Fri Jun 15 10:25:50 2007 +0200 + + Wake up vblank waitqueue in drm_handle_vblank(). + +commit 914a810a82af6f82e69a94448570772f20a94953 +Author: Michel Dänzer +Date: Fri Jun 15 10:21:44 2007 +0200 + + i915: Fix tests for vblank interrupts being enabled on CRTC by X server. + +commit 7f95a06c61f585cbc4b5fefc833432178550fe31 +Author: Michel Dänzer +Date: Fri Jun 15 10:12:23 2007 +0200 + + Return current sequence number to userspace after blocking wait for vblank. + +commit 1000d88ddfcd0ae769125db37d4e78643a430caf +Author: Michel Dänzer +Date: Fri Jun 15 10:10:33 2007 +0200 + + Fix memory leaks in vblank error paths. + + Also use drm_calloc instead of drm_alloc and memset, and use the size of the + struct instead of the size of the pointer for allocation... + +commit b06268294afb47e62949984d73905344dd160262 +Author: Jesse Barnes +Date: Thu Jun 14 11:32:31 2007 -0700 + + Comment new vblank routines and fixup several issues: + - use correct refcount variable in get/put routines + - extract counter update from drm_vblank_get + - make signal handling callback per-crtc + - update interrupt handling logic, drivers should use drm_handle_vblank + - move wakeup and counter update logic to new drm_handle_vblank routine + - fixup usage of get/put in light of counter update extraction + - fix longstanding bug in signal code, update pending counter only + *after* we're sure we'll setup signal handling + +commit 2407ce57de36470e767ebc1800cbbec74cab0ae4 +Author: Thomas Hellstrom +Date: Wed Jun 13 15:59:28 2007 +0200 + + Fix drmMMUnlock / drmMMLock return values. + +commit 62082ab3e63f6f474655da98b710e453b4124ed1 +Author: Thomas Hellstrom +Date: Wed Jun 13 15:38:59 2007 +0200 + + Make sure we read fence->signaled while spinlocked. + +commit 5156f1c897142171e78d0ea2c45a3aecb581fffa +Author: Thomas Hellstrom +Date: Wed Jun 13 15:19:30 2007 +0200 + + Fix fence object deref race. + +commit 1a4b9294a29379ea6e9fd6fb315317f391232d4b +Author: Jesse Barnes +Date: Tue Jun 12 16:29:09 2007 -0700 + + Remove unnecessary (and uncommented!) read barrier from the interrupt + path. It doesn't appear to serve any useful purpose. + +commit ca47fa90b73d0eac73fb7d1ba712d81e180eae7d +Author: Jesse Barnes +Date: Tue Jun 12 13:35:41 2007 -0700 + + Update vblank code: + - move pre/post modeset ioctl to core + - fixup i915 buffer swap + - fix outstanding signal count code + - create new core vblank init routine + - test (works with glxgears) + - simplify i915 interrupt handler + +commit db689c7b95613237cec904c3f6ee27e8c2bf7ce0 +Author: Jesse Barnes +Date: Tue Jun 12 10:44:21 2007 -0700 + + Initial checkin of vblank rework. Code attempts to reduce the number + of vblank interrupt in order to save power. + +commit f984b1b8d17f285dfacb593702178f1eb2fdb4ac +Author: Thomas Hellstrom +Date: Tue Jun 12 12:30:33 2007 +0200 + + Fix some obvious bugs. + +commit b6b5df24b962c94433afe4d8665b5f145bfa1ad3 +Author: Thomas Hellstrom +Date: Tue Jun 12 12:21:38 2007 +0200 + + Try to make buffer object / fence object ioctl args 64-bit safe. + Introduce tile members for future tiled buffer support. + Allow user-space to explicitly define a fence-class. + Remove the implicit fence-class mechanism. + 64-bit wide buffer object flag member. + +commit 280083d4a2a12a1ff6dc1b068553a4ae8960200c +Author: Dave Airlie +Date: Sun Jun 10 15:40:10 2007 +1000 + + use krh's idr mods to remove lists from idr code + +commit 31815730732a5d2a446aa316a5b4d837766762e6 +Author: Oliver McFadden +Date: Fri Jun 8 19:40:57 2007 +0000 + + r300: Added the CP maximum fetch size and ring rptr update variables. + +commit 7426da75382cce157b873c228c783115fd66589f +Author: Dave Airlie +Date: Thu Jun 7 18:45:00 2007 +1000 + + oops must fix this properly at some point + +commit e22f428f5fa55400850951b32c6ed0e856bf836b +Author: Dave Airlie +Date: Thu Jun 7 18:40:41 2007 +1000 + + drm: fix radeon setparam alignment issues on 32/64-bit + +commit abf35cbdcf5743c73929ddbe67ed4cae69b32aeb +Author: Dave Airlie +Date: Thu Jun 7 15:36:04 2007 +1000 + + radeon: PCIGART memory is Can't map aperture as well there is one + + on the CPU.... with this my indirect buffers at least start to live.. + (cherry picked from commit 699cd9fc6c3794856f7e602088c77d0dfc11a122) + +commit 39625f9621a56b4dde5d400615bba5217a75a24c +Author: Oliver McFadden +Date: Tue Jun 5 19:19:42 2007 +0000 + + r300: Small correction to the previous commit. + +commit 9e0bd88c61bda7979cdc0543deb0cb9de30587f7 +Author: Alex Deucher +Date: Tue Jun 5 19:05:49 2007 +0000 + + r300: Document more of the RADEON_RBBM_STATUS register. + +commit 109e2a10f260f3a5f78762bbedcaeb9b2ebde1c0 +Author: Wang Zhenyu +Date: Tue Jun 5 11:15:29 2007 -0700 + + Add support for the G33, Q33, and Q35 chipsets. + + These require that the status page be referenced by a pointer in GTT, rather + than phsyical memory. So, we have the X Server allocate that memory and tell + us the address, instead. + +commit 03ce98aa2814dfd473c70487861aece79007a571 +Author: Dave Airlie +Date: Tue Jun 5 18:23:24 2007 +1000 + + set start to gart_vm_start at least + +commit 96705ce6644389722f1605571e0a0dfde5568b8f +Author: Dave Airlie +Date: Tue Jun 5 18:23:05 2007 +1000 + + add wbinvd calls + +commit 5bd0ca125ed687b2dc6896197c0c8ab2673897f8 +Author: Dave Airlie +Date: Tue Jun 5 18:14:54 2007 +1000 + + remove include of linux ioctl32.h from drm drivers + +commit c9dbe0f2c2248ef8c3ba5718f77922d1c7429e6f +Author: Dave Airlie +Date: Tue Jun 5 12:38:43 2007 +1000 + + invalidate gart tlb on PCIE after table change + +commit f6e8023e03278731db38dcc0c429025f36817c65 +Author: Dave Airlie +Date: Tue Jun 5 12:26:18 2007 +1000 + + take the lock earlier in ttmtest + +commit 4294dcc050c5d2685f633e8a52deb925d806be85 +Author: Dave Airlie +Date: Tue Jun 5 12:26:06 2007 +1000 + + complete PCIE backend for ttm + + ttm test runs with it at least, needs to do more testing on it + +commit 234a9062009e48bf7b6c7239564ab95b3bcb06aa +Author: Dave Airlie +Date: Tue Jun 5 10:47:42 2007 +1000 + + WIP cleanup + +commit 77b9d9d16b1d1f1715722182d5893aa202f73074 +Author: Dave Airlie +Date: Tue Jun 5 10:35:41 2007 +1000 + + cleanup pcigart ttm for new backend layout + +commit 07345af838a7443d29d12cb3fe91614e43c4fa81 +Merge: 704ca06 4327d7f +Author: Dave Airlie +Date: Tue Jun 5 10:09:11 2007 +1000 + + Merge branch 'origin' into radeon-ttm + + Conflicts: + + shared-core/radeon_drv.h + +commit 4327d7f3142cdbf3f3f94426ae33e2d30b5a40c8 +Author: Maurice van der Pot +Date: Mon Jun 4 10:49:30 2007 +1000 + + nouveau: fix RAMHT wrapping + +commit a05d4fecd3307aa2f2f27531e7ff0b1985ef5c56 +Author: Dave Airlie +Date: Sun Jun 3 18:30:52 2007 +1000 + + radeon: refine irq acking for vbl on crtc 2 + +commit a4cddc6596b30dfa781eb7803de5b60aca50f112 +Author: root +Date: Sun Jun 3 18:12:28 2007 +1000 + + Revert "drm: add new drm_wait_on function to replace macro" + + This reverts commit 6e860d08d0f5b1e9a2d711aaf9fd6b982aa8039e. + + As I said not a good plan - this macro will have to stay for now, + trying to do the vbl code with the inline was a bit messy - may need specialised + drm wait on functions + +commit 8d95f4bd91fcc46b3e59767cb86b6c99bc8679c3 +Author: root +Date: Sun Jun 3 18:11:44 2007 +1000 + + Revert "move i915 to new drm_wait_on function" + + This reverts commit feb68037784ac09e333a321d294fdb2d8c57a4c8. + + This was a bad idea, the macro is actually a bit harder to convert + to a static for the other use cases + +commit 4e9d215bdfe72588cbacdb17ab9b60a42a43aefb +Author: Dave Airlie +Date: Sun Jun 3 16:28:21 2007 +1000 + + radeon: add support for vblank on crtc2 + + This add support for CRTC2 vblank on radeon similiar to the i915 support + +commit 638c8087deecdf489eb4f70e82590d1be0c8c942 +Author: Dave Airlie +Date: Fri Jun 1 19:00:24 2007 +1000 + + drm: fixup initialisation of list heads and idr + +commit 704ca0638977f58742a8bff6aba9905fe862cfb3 +Author: David Airlie +Date: Fri Jun 1 18:12:45 2007 +1000 + + WIP more code for radeon + +commit 5c394b309de4325daae67fc766a0640b39658a64 +Author: Wang Zhenyu +Date: Wed May 30 16:25:49 2007 +0800 + + i915: Add support for 945GME chip + +commit 3917f85c73c32105b59f5185a89fe136ed6962a1 +Author: Wang Zhenyu +Date: Wed May 30 16:24:42 2007 +0800 + + i915: Add support for 965GME/GLE chip. + +commit b0c8d885ce645aee5027a75e4149ba4be265b55d +Author: Jung-uk Kim +Date: Tue May 15 13:35:33 2007 -0700 + + Update a bunch of FreeBSD port code. + + Tested on r200/r300. i915 updates still remain to be done. + +commit fdc293d40c2fdd184d89bd38257ade2437c4cbc1 +Author: Brian +Date: Tue May 29 14:56:17 2007 -0600 + + reformatting, clean-ups + +commit ccd7b6e8ddeac936518f626d2326ae439931b2bf +Author: Brian +Date: Tue May 29 14:54:00 2007 -0600 + + Clean-ups and reformatting. + + Use 4-space indentation consistently. + Replace occurances of: + if (cond) code; + with: + if (cond) + code; + to facilitate putting breakpoints on code. + +commit 056c2f249a61ba7078bae3d767a59f2be4c6556e +Author: Dave Airlie +Date: Sun May 27 08:44:38 2007 +1000 + + drm: move context handling code to use linux idr + +commit f64674743a49c242e4f24cbb7599c1c21c035a4f +Author: Dave Airlie +Date: Sun May 27 07:26:52 2007 +1000 + + drm: convert drawable handling to use Linux idr + + This cleans this code up a lot and uses the generic Linux idr which is + designed for this. + + Signed-off-by: Dave Airlie + +commit 2bb7703698bef1f599295126ca3834d37a8596c0 +Author: Thomas Gleixner +Date: Sat May 26 05:20:59 2007 +1000 + + drm: spinlock initializer cleanup + +commit 8e083c522e73f27af7e97e0d202f56f0323abe81 +Author: Michel Dänzer +Date: Sat May 26 04:35:54 2007 +1000 + + drm: make sure the drawable code doesn't call malloc(0). + + Signed-off-by: Michel Dänzer + Signed-off-by: Dave Airlie + +commit ad02c536dfaeaeb7ad025dfcfcb1a2a99aa5ad7e +Author: Dave Airlie +Date: Sat May 26 04:02:55 2007 +1000 + + radeon: add other IGP chipsets + +commit 58b2ed78329305d5760c6df55175f958477f89ae +Author: Dave Airlie +Date: Sat May 26 03:48:08 2007 +1000 + + Revert "drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls." + + This reverts commit 3fdef0dc2000308b16907b95f637c60acde80a74. + + ditto not on master yet + +commit 375f3f2884cd1437e9ec2608647face0c3cbef3a +Author: Dave Airlie +Date: Sat May 26 03:47:48 2007 +1000 + + Revert "drm/ttm: cleanup most of fence ioctl split out" + + This reverts commit 3dfc1400e9fc58c69292d7cf7c2e1653fa5e6991. + + this shouldn't have gone on master yet + +commit ce58e53a01e61818210ebf65623e35a3af20167b +Author: Dave Airlie +Date: Tue May 8 15:43:29 2007 +1000 + + whitespace fixups from kernel + +commit adee6f52e65ca67a9773fa23537c424fac9f0da8 +Author: Dave Airlie +Date: Tue May 8 15:09:48 2007 +1000 + + ati_pcigart: cut to 80 chars + +commit 3dfc1400e9fc58c69292d7cf7c2e1653fa5e6991 +Author: Dave Airlie +Date: Sun May 6 11:35:11 2007 +1000 + + drm/ttm: cleanup most of fence ioctl split out + +commit 3fdef0dc2000308b16907b95f637c60acde80a74 +Author: Dave Airlie +Date: Sun May 6 11:17:30 2007 +1000 + + drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls. + + This is the first bunch of ioctls + +commit 7b48f0022a24bc5f565ae64b450dda77dee616c1 +Author: Dave Airlie +Date: Sat May 26 04:26:24 2007 +1000 + + drm: cleanup use of Linux list handling macros + + This makes the drms use of the list handling macros a lot cleaner + and more along the lines of how they should be used. + +commit fa92e1f2ec396d2e772734f726a0958801b9fc99 +Author: Jesse Barnes +Date: Thu May 24 18:41:44 2007 -0700 + + Suspend/resume shouldn't call drm_initial_config (seems to work ok for me now), + also we should fail if we can't enable the device at resume time. + +commit 462d5a0dfc80dfa02da3d24d30ad90ad0387f0a2 +Author: Jesse Barnes +Date: Tue May 22 17:49:04 2007 -0700 + + Suspend/resume support (incomplete). + +commit e918d2b7814e2cf5345dba63031c402010b1d3e4 +Author: Jesse Barnes +Date: Tue May 22 13:38:58 2007 -0700 + + Call preallocated space VRAM instead of PRIV0 to be more consistent with + other drivers. + +commit a4929b921e44dcd3cae8e384b9b7eabc51db28ff +Merge: f894587 d42c1de +Author: Jesse Barnes +Date: Fri May 18 09:42:51 2007 -0700 + + Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101 + + Conflicts: + + linux-core/drm_crtc.c - reconcile with locking changes + +commit f89458722173b364b8c3c27788b6c61889da554c +Author: Jesse Barnes +Date: Fri May 18 09:40:01 2007 -0700 + + Add locking. The main lock is dev->mode_config.config_lock. It should be + held across any operations that modify mode lists, crtc config, output + config, etc. It should be taken at high level entry points (currently just + initial config and user IOCTL). + + Seems to work ok on my system, but needs more testing (with lockdep) and + review from some fresh eyes. + +commit d42c1de3fb05405820b03ec9bb12f0b9a7eb0a7b +Author: Alan Hourihane +Date: Fri May 18 14:16:27 2007 +0100 + + Change some printk's to DRM_DEBUG's + +commit 0c33a2cd2ec81478403d39b1b92aaa4431e7cf0a +Author: Alan Hourihane +Date: Fri May 18 14:16:10 2007 +0100 + + Move fbo creation to the specified fb driver which gives + it a chance to allocate the memory from whichever buffer it wants to. + +commit 3851600b3450697e20286b1937f3e51397f1965a +Author: Alan Hourihane +Date: Fri May 18 13:59:46 2007 +0100 + + Fix merge problem. + +commit 315cf14af814da60285adb95238181de430c6f68 +Merge: 95945bb ea98d7e +Author: Alan Hourihane +Date: Fri May 18 13:48:56 2007 +0100 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + + Conflicts: + + shared-core/i915_dma.c + +commit 95945bbf226610ba4f41381fd0436722082397ec +Author: Alan Hourihane +Date: Thu May 17 23:33:48 2007 +0100 + + Set crtcinfo on temporary mode + +commit f3beabedc36b7bc2d45ca9c7f64d2c54e291e32b +Author: Jesse Barnes +Date: Thu May 17 13:48:46 2007 -0700 + + Remove unused edid.h header from X.Org. + +commit c0479dad8e34a51efebfaa05b0d329aa7d2b95d1 +Author: Alan Hourihane +Date: Thu May 17 19:32:46 2007 +0100 + + bring in change from drm_fb.c + +commit 07a5fbaa612a777de37b5dc0112f6f3f3f84c486 +Author: Alan Hourihane +Date: Thu May 17 19:28:03 2007 +0100 + + Move destruction of crtc as intelfb_remove uses the crtc to locate the fb. + +commit b7bf317f42915dc4f5fde4a696e37985cea45104 +Merge: a18b4be fd63ea9 +Author: Jesse Barnes +Date: Thu May 17 10:35:07 2007 -0700 + + Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101 + + Conflicts: + + linux-core/drm_crtc.c + linux-core/drm_fb.c + + Lots of changes to merge with alanh's latest stuff: + o fix use of fb->pitch now that it has the right value + o add new helper for finding the CRTC given an FB + o fix new fb_probe/fb_remove functions to take a CRTC + o fixup callers of new FB routines + o port drm_fb changes to intel_fb + o check for errors after creating fb buffer object + o go back to using cfb_imageblit since the accel stubs aren't ready + +commit fd63ea971322246734fca5977a800c3ef51cc3fe +Author: Alan Hourihane +Date: Thu May 17 17:00:11 2007 +0100 + + Grab the default mode if the preferred mode isn't available. + + Fix an overflow problem. + +commit a18b4befb9b76c4b2662ff6caa0e4f0975eb8e9c +Author: Jesse Barnes +Date: Thu May 17 09:00:06 2007 -0700 + + Fix FB pitch value (we had it wrong and were working around it in a few + places). + Add new FB hooks to the drm driver structure and make i915 use them for an + Intel specific FB driver. This will allow acceleration and better handling + of the command stream. + +commit ea98d7e79657469545b865a353784d79fc8cff9d +Author: Stephane Marchesin +Date: Thu May 17 17:35:14 2007 +0200 + + nouveau: don't build the module by default + +commit 2222bd767f9fc02d05ebd0f35a8ceeff2f032c94 +Author: Alan Hourihane +Date: Thu May 17 13:19:56 2007 +0100 + + Fix build problem + +commit 5ce8aaae7251e60c078eda0a21894aae0e1d7a45 +Author: root +Date: Thu May 17 12:46:36 2007 +0100 + + Large changes for fbdev support. + + Change from DIRECTCOLOR to TRUECOLOR, and enable + support for PSEUDOCOLOR. DIRECTCOLOR support needs more work. + + Add the ability to change the mode on the fbdev device. + + Support depth 8, 15, 16 and 24 (and 32). + + Add a /dev/fbX device per CRTC, but there's some code which + doesn't allocate the fbX device unless the output is actually + enabled. Read the code on this as it impacts the fbcon map flags. + + Pick CRTC's based on the available outputs. More work could + be done here to match modes, so cloning could be achieved on + outputs. This fits more inline with what the X code does. + +commit ca725bba8472d5d94bcb7414b510d7d3027cbb1c +Author: Oliver McFadden +Date: Sun May 13 16:18:54 2007 +0000 + + r300: Added my comments into r300_reg.h. + +commit c6ff0caaa3e8f61f7c19950913b1ce731f979ce3 +Author: Oliver McFadden +Date: Sun May 13 07:53:40 2007 +0000 + + r300: Synchronized R300 register defines file. + + Just moved the indent control comments so that indent doesn't try to change + anything. + +commit e9b604ed3fd6b4e056920bd327646b3e0e9b3be8 +Author: Matthieu Castet +Date: Sat May 12 15:35:39 2007 +0200 + + nouveau : nv10 graph move clipping value to per channel init + +commit 5d623935c0e4f5f283c961de186b78b30db12463 +Author: Matthieu Castet +Date: Sat May 12 15:16:37 2007 +0200 + + nouveau : nv10 graph clipping values were forgoten in ddx to drm commit + +commit e4d163d81ad7ce46af43cf84485dc96c4cb22b1f +Author: Keith Packard +Date: Mon May 7 09:07:48 2007 -0400 + + Allow vblank interrupts to remain disabled across VT switch. + + i915_driver_irq_postinstall was forcing vblank interrupts to pipe A when + called with vblank interrupts disabled. This caused vblank interrupts to be + accidentally re-enabled when VT switching the X server. Instead, start the + driver with vblank interrupts enabled on pipe A to support older X servers, + but then leave control over the state to the X server if it is able to do so. + +commit eba00df1203040905d38bf0ef449d25d6dbdb72c +Author: Alan Hourihane +Date: Thu May 10 13:16:05 2007 +0100 + + Just some minor cleanups. + +commit e0056c7eb4640fc4863a352997ba00e3142b3355 +Author: Oliver McFadden +Date: Wed May 9 18:31:31 2007 +0000 + + r300: Synchronized R300 register defines file. + +commit a02b04514250bff19aaf90d1f9699b4ec4749343 +Author: Oliver McFadden +Date: Wed May 9 15:22:09 2007 +0000 + + r300: Synchronized R300 register defines file. + +commit 59784116bf7d18cfbbb7236fbdd601476207b9dc +Author: Matthieu Castet +Date: Tue May 8 21:18:02 2007 +0200 + + nouveau : fix fifo context size for nv10 + +commit b2a875ba8955cfbf3df2dc1ecb25915a252eef9f +Author: Dave Airlie +Date: Tue May 8 18:25:15 2007 +1000 + + ttm: complete drm buffer object ioctl split + + retain the op operation for validate/fence operations + +commit ae677472af25786fe935309ff1ac287e1610c819 +Author: Dave Airlie +Date: Tue May 8 17:55:57 2007 +1000 + + drm/ttm: remove old fence ioctl + +commit 25c51f539f254937d116699e66f8c382d78e71d4 +Author: Dave Airlie +Date: Tue May 8 17:53:58 2007 +1000 + + drm/ttm: ioctl cleanup for buffer object - user side only + + This just cleans up the xf86drm.c to what I want and drm.h, + I need to fix up the kernel internals to suit these changes now. + + I've moved to using struct instead of typedefs for the bo and it doesn't look + that bad so I'll do the same thing for mm and fence.. + +commit 963ed9910ab59af23c66f4a8fafb7879f5140d97 +Author: Dave Airlie +Date: Tue May 8 17:51:21 2007 +1000 + + libdrm: fix typo on ttm fence interface + +commit c4e2caec44c5c1837d676ff0f5ad0747b2e570a7 +Author: Brian +Date: Sun May 6 10:09:59 2007 -0600 + + s/OJBECTS/OBJECTS/ + +commit 4e858f8811d057a86740b27e0c9af933d382ed0d +Author: Oliver McFadden +Date: Sun May 6 12:47:03 2007 +0000 + + r300: Synchronize the register file from Mesa. + +commit 87ec1fea6c1ac93b4ff02f8c06ed476c0081e2e5 +Author: Oliver McFadden +Date: Sun May 6 12:35:16 2007 +0000 + + r300: Use the defined names for known registers. + +commit 6a62941ecaa7d2b8f14b30920856bfa52aee4775 +Author: Dave Airlie +Date: Sun May 6 11:35:11 2007 +1000 + + drm/ttm: cleanup most of fence ioctl split out + +commit ee8954cb53e4964a5565833b5a937f1cbcb60d44 +Author: Dave Airlie +Date: Sun May 6 11:17:30 2007 +1000 + + drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls. + + This is the first bunch of ioctls + +commit c9cd2c768bd37adadb87476f55f95e7b2336bc6b +Author: Dave Airlie +Date: Sun May 6 10:50:10 2007 +1000 + + drm: remove unused define DRM_HAS_TTM + +commit 45e09ea3cf85b76c18fb92a593ca7c40681052a7 +Author: Jakob Bornecrantz +Date: Sat May 5 16:08:27 2007 +0200 + + Cleaned up userspace interface for modesetting. + +commit cf7c90f7b4087764cdd5f6c73328b0cf9dcb0b78 +Author: Thomas Hellstrom +Date: Wed May 2 17:13:32 2007 +0200 + + Fix buffer object list freeing. + +commit f06ad82ecdc2c84f913bb4d6d48132f27f02c3a9 +Author: Michel Dänzer +Date: Tue May 1 17:03:55 2007 +0200 + + Fix userspace ABI breakage from 3c384a9ad5f964709a237cfe035ea5d6df2da5fa. + +commit 3a69e2484a4a392c8fc8542fc44f9c6552589c46 +Author: Dave Airlie +Date: Tue May 1 14:20:22 2007 +1000 + + cleanup usermodes on drm mode setting shutdown + +commit 89231953d108e74ee7b0eb99494ead1dd795d640 +Author: Dave Airlie +Date: Tue May 1 13:16:29 2007 +1000 + + Add support for user defined modes + + This allows userspace to specify modes and add them to the modesetting + system and attach modes to outputs + +commit 8e8e37515eafbd75b971f57f767ef01344361256 +Author: Dave Airlie +Date: Tue May 1 13:15:41 2007 +1000 + + fix unusued variable + +commit ca1cd3257c7c41821788ca45d45e51065f436803 +Author: Michel Dänzer +Date: Sun Apr 29 12:17:57 2007 +0200 + + radeon: Don't mess up page flipping when a file descriptor is closed. + + There can still be other contexts that may use page flipping later on, so don't + just unilaterally 'clean it up', which could lead to the wrong page being + displayed, e.g. when running 3D apps with a GLX compositing manager such as + compiz using page flipping. + +commit feb68037784ac09e333a321d294fdb2d8c57a4c8 +Author: Dave Airlie +Date: Sat Apr 28 15:07:22 2007 +1000 + + move i915 to new drm_wait_on function + +commit 6e860d08d0f5b1e9a2d711aaf9fd6b982aa8039e +Author: Dave Airlie +Date: Sat Apr 28 15:05:20 2007 +1000 + + drm: add new drm_wait_on function to replace macro + +commit e9b3acd25733517420f7b9fea01cfd529d909348 +Author: Dave Airlie +Date: Sat Apr 28 15:04:49 2007 +1000 + + remove register usage + +commit 9f9c19065cecde16aa2994b6f777336a6e5f3409 +Author: Dave Airlie +Date: Sat Apr 28 14:49:27 2007 +1000 + + remove DRM_GETSAREA and replace with drm_getsarea function + +commit e88934274ab80119d6dd139e3d780c3cdea7e9e5 +Author: George Sapountzis +Date: Thu Apr 26 14:16:51 2007 +0300 + + Revert "bug 7092 : add pci ids for mach64 in Dell poweredge 4200" + + This reverts commit 255f3e6f76dfd267a14765dd1293229184298d89. + + Rage IIc does not have a vertex setup engine. + +commit 3a2c9f46212328a44533a45523d2a9f9b72a15da +Author: George Sapountzis +Date: Thu Apr 26 14:16:28 2007 +0300 + + linux: minor indent. + +commit 942d9be296df38aa69987845a08d3d607b85f83e +Author: George Sapountzis +Date: Thu Apr 26 14:16:13 2007 +0300 + + freebsd: remove stray apperance of IN_MODULE. + + The xserver no longer uses the libc-wrapper. + +commit b69b42634619076d4163ae144f0154880d1928cd +Author: George Sapountzis +Date: Thu Apr 26 14:15:55 2007 +0300 + + libdrm: remove HAVE_XORG_CONFIG_H and XFree86LOADER ifdef's. + + We no longer import libdrm in the xserver. + +commit 2a6f555053bd404e7e5721c40990da2d9db53d19 +Author: Dave Airlie +Date: Thu Apr 26 17:54:06 2007 +1000 + + update create_lk_drm.sh script + +commit afc029e935a8f4667aff786c51818712487d185d +Author: Dave Airlie +Date: Thu Apr 26 16:25:43 2007 +1000 + + whitespace cleanup + +commit e5c1f1caa2a6b8c63aa6d0f8a70372eaf72f1840 +Author: Dave Airlie +Date: Thu Apr 26 16:22:28 2007 +1000 + + remove some whitespace violation + +commit 4b72759b307f046d71c08d9008b7467e0b3bb0ba +Author: Dave Airlie +Date: Thu Apr 26 16:22:11 2007 +1000 + + drm: nopfn warning on 64-bit + +commit 71d44cda52f239b543cb1fad93ef35adc3093d38 +Author: Jesse Barnes +Date: Thu Apr 26 16:09:24 2007 +1000 + + drm/ttm: allow drm_buffer_object_create to be used in-kernel + +commit 3c384a9ad5f964709a237cfe035ea5d6df2da5fa +Author: Jesse Barnes +Date: Wed Apr 11 12:51:52 2007 -0700 + + Add new buffer object type for kernel allocations that don't initially have a user mapping. + (cherry picked from commit 2e21779992bd5026d8ec4dea52466377dbe5a0ed) + +commit b589b846e73bfe6235cd702bb8ae89701c85eaab +Merge: 34be91f 5c8561a +Author: Dave Airlie +Date: Thu Apr 26 15:56:21 2007 +1000 + + Merge branch 'origin' into modesetting-101 + +commit 34be91fe4e9f0ad73b7c4354aea0c8ce10f45f68 +Author: Dave Airlie +Date: Thu Apr 26 14:50:00 2007 +1000 + + i915: fix vblank pipe setup + +commit 5c8561aae22138880673503d930af7f1b361d071 +Author: Brian +Date: Wed Apr 25 14:52:29 2007 -0600 + + More detailed instructions, tips. + +commit 61477d60c466b4aac395057a285c1d238a83ce1c +Author: Stephane Marchesin +Date: Mon Apr 23 22:37:01 2007 +0200 + + nouveau: fix wacky pci id + +commit ceb44021ad7755721acc3c0307c54009b666442e +Author: Dave Airlie +Date: Mon Apr 23 11:42:29 2007 +1000 + + drm: make mode numbers no change by comparing probed modes + + The mode list sets all the output modes to UNVERIFIED, then probes a new list, + If a mode is on the new list and not on the old, it adds it to the old, + if a mode is on the new list and old, it just updates the status to the new + mode status. + If a mode is on the old list and not on the new, prune invalid modes should + remove all UNVERIFIED modes + +commit 0f3c5148f02bd98411095fdc8059207fa17b4a7d +Author: Dave Airlie +Date: Mon Apr 23 09:10:46 2007 +1000 + + fixup vrefresh reporting, it should now be *1000 in userspace + +commit 97b5599982c76915b0750c6ef0a270639b02a6f2 +Author: Jesse Barnes +Date: Fri Apr 20 18:00:44 2007 -0700 + + Oops, edid data should just be a char *, as edid.h is private to edid.c + (we can just recombine them now). + +commit eb892fb09dc2e5206f2461e8b258495c7cef904a +Author: Jesse Barnes +Date: Fri Apr 20 17:59:30 2007 -0700 + + Add a monitor information structure separate from the EDID data for tracking + monitor limits, etc. + +commit a21ff375c697fc7560c16d0f88335a6db2c9c37a +Author: Jesse Barnes +Date: Fri Apr 20 17:03:50 2007 -0700 + + Document drm_modes.c functions. + +commit 9ca4932054a5bde5dda500ea346ad101bb5c80a0 +Author: Jesse Barnes +Date: Fri Apr 20 16:32:58 2007 -0700 + + Add a mode name generation wrapper to make name format changes easier. + +commit 2d1de1fc6b9ab3524a1247f56ddeea7238c04ea3 +Author: Kristian Høgsberg +Date: Fri Apr 20 18:06:31 2007 -0400 + + Initialize rwlock using rwlock_init to appease lockdep validator. + +commit af3ffcd822e562b02fe0671e7e88d9c5a6225658 +Author: Kristian Høgsberg +Date: Fri Apr 20 18:06:31 2007 -0400 + + Initialize rwlock using rwlock_init to appease lockdep validator. + +commit 6238ebee21f800cec6c77b6bf90d7916ca945931 +Author: Kristian Høgsberg +Date: Fri Apr 20 16:52:04 2007 -0400 + + Clean up and return if no outputs are found. + +commit a8a8108e459977ec8b334e517abd67e1b264337e +Author: Thomas Hellstrom +Date: Thu Apr 19 23:25:14 2007 +0200 + + Avoid a fence timeout problem when a signal is pending. + +commit 1ce9c092314ddf005cdadc6937e36d4dc59788ce +Author: Thomas Hellstrom +Date: Fri Apr 20 15:49:31 2007 +0200 + + Fix via compile error + (Reported by Benno Schulenberg.) + +commit 8d893e49ec35905a3718c565ec56c21d76dc745c +Author: Dave Airlie +Date: Thu Apr 19 09:43:46 2007 +1000 + + backout SDVO control bus check and comment why this is a bad idea + +commit 5587961cfeff86d8368ff03867a1f0667e4a64d4 +Author: Jesse Barnes +Date: Wed Apr 18 11:49:42 2007 -0700 + + Document main drm_crtc.c functions, and rename drm_crtc_mode_create to + drm_mode_create to be consistent with the other functions. Also document + where we need locking fixes and what the locks are for. + +commit 2df2c70e20caa3d6d1a1ac12da6fe3cc0689d51f +Author: Thomas Hellstrom +Date: Wed Apr 18 16:33:28 2007 +0200 + + Simplify the ttm backend interface and the agp ttm backend. + +commit dfc02547ff5f35bfa5cffd6a0dcb56402db59f33 +Author: Alan Hourihane +Date: Wed Apr 18 14:18:56 2007 +0100 + + Shouldn't free the mode here. It's done later on. + +commit b642ced0830d4e91785ba94677abe637c7cb3791 +Author: Alan Hourihane +Date: Wed Apr 18 13:52:46 2007 +0100 + + Fix return status + +commit 0207b51acce0382b2e3cf55ed7dbbe02e48c73b2 +Author: Alan Hourihane +Date: Wed Apr 18 12:19:16 2007 +0100 + + Fix build problem + +commit 87b46bd436074572b3a62e2fb7ec85a1db8df892 +Author: Alan Hourihane +Date: Wed Apr 18 12:10:06 2007 +0100 + + free the duplicated mode. + +commit 191594ebd5fbe3ac3615247c4e2cd50e1b099635 +Author: Alan Hourihane +Date: Wed Apr 18 12:07:55 2007 +0100 + + When no valid EDID modes are available, we bail. + + This snippet adds a standard 640x480 @ 60Hz mode when + that occurs, so we can continue with a basic mode. + + Should we do this here though ??? + +commit ef2bce3a16428feb89f447e528bdea00c1066b8b +Merge: 51e867c 20b2949 +Author: Alan Hourihane +Date: Wed Apr 18 11:55:09 2007 +0100 + + Merge remote branch 'origin/modesetting-101' into modesetting-101 + +commit 51e867c57880c85c87e187af0a667e9b99413206 +Author: Alan Hourihane +Date: Wed Apr 18 11:53:25 2007 +0100 + + Support the RGB outputs of SDVO cards, which are essentially + VGA outs. + + The drm_initial_config path has specific handling code to name + match for VGA, TMDS or LVDS. This is pretty restrictive and should + probably be dealt with to be more generic. + +commit ea8bcb466bca82081816ca3d83a420f09a62870c +Author: Alan Hourihane +Date: Wed Apr 18 11:47:21 2007 +0100 + + Check status after SDVO command for sdvo_set_control_bus_switch + +commit dc03e07f236ea5716d271155dcbbc54a218732c6 +Author: Alan Hourihane +Date: Wed Apr 18 11:46:04 2007 +0100 + + Move SDVO PENDING check to read_response so all SDVO commands + benefit from the spin loop. + +commit 20b2949e3738bc900407d6aeddc6338f05b0b169 +Author: Dave Airlie +Date: Wed Apr 18 14:55:43 2007 +1000 + + make sure TMDS gets a crtc + +commit e46e028bd21552331ca4db409c2b45e54491ced6 +Merge: c71c44b 5a96d59 +Author: Dave Airlie +Date: Wed Apr 18 14:11:49 2007 +1000 + + Merge branch 'origin' into modesetting-101 + + Conflicts: + + linux-core/drm_bo.c + + Merge in changes from master from Thomas fixiing TTM problems + +commit c71c44bb9288e0bf1b319ec19a2e25f4467d9583 +Merge: 4f0841a d20aaf4 +Author: Jesse Barnes +Date: Tue Apr 17 18:20:05 2007 -0700 + + Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101 + +commit 4f0841a31cbed315a3e891557eadc55cab0dfd23 +Author: Jesse Barnes +Date: Tue Apr 17 18:03:14 2007 -0700 + + Just use drm_output_destroy to cleanup LVDS failures. It'll call our cleanup + routine, which will take care of freeing our dev_priv and i2c ddc bus. + +commit d20aaf485893ed11dd0d68daf63ccadd77b02213 +Author: Dave Airlie +Date: Wed Apr 18 10:41:39 2007 +1000 + + don't crash if no desired mode + +commit 2352ec9bfab20761cc898ea40db2a7c6d53e81f3 +Author: Dave Airlie +Date: Wed Apr 18 10:39:58 2007 +1000 + + backout alanh's broken commit + +commit 7c9e19ba55dcdf212845253648194115639fe7b6 +Author: David Airlie +Date: Fri Apr 13 16:43:55 2007 +1000 + + clean up ring buffer and TTM in i915_driver_unload + + I've commented out the framebuffer for now + +commit 73b031df613b58c4462a65818b88200bed0a97de +Author: Jesse Barnes +Date: Tue Apr 17 17:30:46 2007 -0700 + + Add framebuffer bo freeing to drm_mode_config_cleanup (seems like the best + place for now). + +commit a45fa264f2b60185ae797f85d2084d57de49bbca +Author: Jakob Bornecrantz +Date: Tue Apr 17 22:27:46 2007 +0200 + + Lvds now power up backlight on commit + + Now saves previous power level in prepare and sets + that power level in commit, should power level + be 0 it will set maximum level. + +commit 1c7f895fa6531b16e7e9fd4568d4f6a50ca5711e +Merge: 4e4d9cb b729b91 +Author: Jesse Barnes +Date: Tue Apr 17 10:14:18 2007 -0700 + + Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101 + + Conflicts: + + shared-core/i915_init.c - reconcile with airlied's new code + +commit 4e4d9cbeb3f52b605e46aad8ae1a947ca236079f +Author: Jesse Barnes +Date: Tue Apr 17 10:00:37 2007 -0700 + + Move initial framebuffer allocation and configuration to drm_initial_config, + remove i915_driver_load fb related stuff. Add a small helper for setting up + outputs. + +commit eeb5de059401361871e34e29c456a1feebac0b1e +Author: Jesse Barnes +Date: Tue Apr 17 09:59:21 2007 -0700 + + Cleanup whitespace, rename macro argument. + +commit 5e6c34539694c58cd7e9dd60541fc6e2bde1a79d +Author: Jesse Barnes +Date: Tue Apr 17 09:57:08 2007 -0700 + + Add prototypes for drm_bo_init_mm and drm_buffer_object_create for use by + in-kernel code. + +commit b729b919baed250313caf3f0bbd4044e084de8bf +Author: Alan Hourihane +Date: Tue Apr 17 16:11:00 2007 +0100 + + Fix a register read that was swapped SDVOB/SDVOC + + Check for the PENDING message when reading the attached + displays. Ensures the command has completed before continuing. + + (probably need to check PENDING in other SDVO calls too) + +commit ecd9801c3cf08082b4aaa7e23f1f94a5e1d47a75 +Author: Alan Hourihane +Date: Tue Apr 17 16:09:40 2007 +0100 + + Fix SDVO outputs + +commit 32b5616cc681e404f671b4bc3b030ee24b753d4a +Author: Alan Hourihane +Date: Tue Apr 17 16:08:26 2007 +0100 + + Correct PCI ID for i845 + +commit 5a96d59ce9d9ad5816e2d0e195afa9902445f594 +Author: Thomas Hellstrom +Date: Tue Apr 17 14:15:37 2007 +0200 + + Don't always free up memory space when we unpin buffers. + +commit 5432cc4abf672ed3adb10fd5d61a6a5716089a98 +Author: Thomas Hellstrom +Date: Tue Apr 17 10:53:19 2007 +0200 + + Fix buffer object reference problems. + (Reported by Dave Airlie). + +commit 1a5e647f63f083788a7fe43c2367d2e022c48588 +Author: Dave Airlie +Date: Tue Apr 17 18:18:42 2007 +1000 + + I don't think this dec is necessary and my stuff all works without .. + with it everything falls over + +commit 56ef1ab8acc0c68b66c4f781107b605f9dd79657 +Author: Dave Airlie +Date: Tue Apr 17 18:18:25 2007 +1000 + + add some missing export symbols + +commit 79aa1d54746f33c33ffbf98fb96ccbf88c3cb390 +Author: Dave Airlie +Date: Tue Apr 17 18:16:38 2007 +1000 + + another large overhaul of interactions with userspace... + + We need to keep a list of user created fbs to nuke on master exit. + We also need to use the bo properly. + +commit e805ca959dbef85ac7b508639a64832a7995703a +Author: Thomas Hellstrom +Date: Tue Apr 17 08:58:23 2007 +0200 + + via: Make sure we flush write-combining using a follow-up read. + +commit e91ceff6c98661bfae5db008e024b71a8a0f5129 +Author: Thomas Hellstrom +Date: Tue Apr 17 08:46:45 2007 +0200 + + Add a code comment. + +commit cd5769c3b563048357535b24dc40783775adb227 +Author: Jakob Bornecrantz +Date: Mon Apr 16 20:54:24 2007 +0200 + + Fix offset should from pci device address + +commit e6e4946c82ab6f63143df7f49f38fa56f7e8980a +Author: Thomas Hellstrom +Date: Mon Apr 16 16:23:05 2007 +0200 + + Require the hardware lock for buffer creation + (since that implies a validate). + Fix drm_bo_wait_unfenced error messages and codes. + Fix some return codes from libdrm. + +commit 2aa183db1ff0fb6044d24eae51854ff128da9a0f +Author: Jesse Barnes +Date: Sat Apr 14 15:35:38 2007 -0700 + + Use drm_mem_reg_ioremap to map buffer object. + +commit 65619cab276ba1f00014f9701b8347e2b834abe4 +Author: Jesse Barnes +Date: Sat Apr 14 15:35:21 2007 -0700 + + Fix PRIV0 memory initialization (mm_init takes pages, not bytes), align fb + allocation correctly, and use drm_mem_reg_iomap to map ring buffer object. + +commit c4e944182db3002101c330453ebb3f454637743e +Author: Jakob Bornecrantz +Date: Fri Apr 13 02:23:42 2007 +0200 + + Added debug messages so we know which output we are dealing with + +commit cc471a361fc7058df4fb8d15d9c9a8b5cdd3dd77 +Author: David Airlie +Date: Fri Apr 13 14:33:52 2007 +1000 + + i915/drm: clean up a lot of the i915/drm startup/teardown sequences + + When the kernel driver is loaded it sets up a lot of stuff.. + it tears down the same stuff on unload. + + This add a new map type called DRM_DRIVER which means the driver will clean the mapping up + and fix up the map cleaner + +commit 27598bacfd8e086832753a8b931f0fce18989f8d +Author: David Airlie +Date: Fri Apr 13 14:31:10 2007 +1000 + + export drm_bo_driver_finish symbol + +commit a890d596fc22a3dca9d390f96f0f739cf90de5e1 +Author: David Airlie +Date: Fri Apr 13 14:30:44 2007 +1000 + + revert LVDS destroy - this oops on sysfs on sdvo init of i2c bus + +commit 9f0f6509f5278b5d46a282acf40e7b69790892a6 +Author: Jesse Barnes +Date: Thu Apr 12 18:30:36 2007 -0700 + + Move driver load call to after AGP init, in case the load routine needs AGP stuff. + +commit 79b7a588bb685459d51527e7ac6877696fe392a3 +Author: Jesse Barnes +Date: Thu Apr 12 14:57:07 2007 -0700 + + Oops, forgot to push the msleep() in the hotplug test. Wouldn't want to + spin in the kernel for a whole second w/o it... + +commit 9a39cb9b9a51516abcaf795fa6e38cbeb22d7db9 +Author: Jesse Barnes +Date: Thu Apr 12 12:43:47 2007 -0700 + + Use crtc_from_pipe call in intel_lvds.c and add get_mode panel mode detection. Also fix up error case for when LVDS mode can't be determined. Leave placeholder code in place for BIOS mode probing and platform quirks. + +commit 6b229c1e59e8d070e1822030f8f0c1d61140508d +Author: Jesse Barnes +Date: Thu Apr 12 12:41:56 2007 -0700 + + Add new function for getting a CRTC pointer given a pipe number. + +commit 9e5d61d5b8c052b4dc126b155dca1f0d2e4e5ad9 +Author: Jesse Barnes +Date: Thu Apr 12 12:40:51 2007 -0700 + + Fix 945+ hotplug detection, remove some unused variables. + +commit fb3c82f1d8362a0b7d64cb3bce75be8c72328e1c +Author: Jesse Barnes +Date: Thu Apr 12 11:50:57 2007 -0700 + + Don't need a NULL check prior to calling kfree. + +commit e183a091ff44e5b03ec521696830c45b2ce9ce87 +Author: Jesse Barnes +Date: Thu Apr 12 11:40:12 2007 -0700 + + Initialize the hw lock waitqueue so we don't hang in drm_lastclose. + +commit 2160e267ff3e1a503ab7666b60ffe21f4a90b803 +Author: Jesse Barnes +Date: Thu Apr 12 09:01:53 2007 -0700 + + Don't use drm_setup, do SAREA allocation and mapping directly instead. + +commit c2fce380c26d72f2d7971a4d08076da33c41f5ae +Author: Jesse Barnes +Date: Thu Apr 12 08:57:58 2007 -0700 + + Move i2c init back to where it belongs and add i2c unregistration in *_destroy. + +commit 258e1cf70345198209e6d49a428efc3de8ce8238 +Author: Jesse Barnes +Date: Thu Apr 12 08:56:34 2007 -0700 + + Whitespace cleanup + +commit e7b97f552390319d817595da8accefbe56199346 +Merge: f2e3d79 cf01689 +Author: Jesse Barnes +Date: Thu Apr 12 08:55:51 2007 -0700 + + Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101 + +commit f2e3d790ac05b2792e795f47fee32fe896a096cc +Author: Jesse Barnes +Date: Thu Apr 12 08:53:03 2007 -0700 + + Revert "Export drm_setup for use by new driver init code.", we don't really want to use this function + + This reverts commit e114b981bc291049fa6996d487334a408acc1ce2. + +commit cf016891435a0aa74dc4909ed4125c7ed906b7d1 +Author: Alan Hourihane +Date: Thu Apr 12 15:12:00 2007 +0100 + + Use drm_framebuffer instead of drm_crtc for fb & fbt + +commit a85440c8a6cac3de4b0e50805fa30cdce40e311b +Author: Alan Hourihane +Date: Thu Apr 12 15:11:38 2007 +0100 + + Remove extraneous drm_crtc.h include + +commit 9420ab4b419458605c678d179de6c80de23b8ee1 +Merge: 9b7211d b1f0fd6 +Author: Alan Hourihane +Date: Thu Apr 12 15:10:08 2007 +0100 + + Merge remote branch 'origin/modesetting-101' into modesetting-101 + +commit e8bd9fdf31bf3db91431b69ce1fc8d419148c838 +Merge: 0430a80 b1f0fd6 +Author: Jesse Barnes +Date: Wed Apr 11 20:41:54 2007 -0700 + + Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101 + +commit 0430a80fc7861a3397a3f2649dfeb9eff14359a5 +Author: Jesse Barnes +Date: Wed Apr 11 20:41:27 2007 -0700 + + Remove debug statement about buffer objects + +commit b1f0fd6dfbd1495aa08c6358e936582eeca042c8 +Author: Dave Airlie +Date: Thu Apr 12 12:11:58 2007 +1000 + + use FB everywhere + +commit 1bba3cb3b37ca9bc302d83377c1e9d5441653d0d +Author: Dave Airlie +Date: Thu Apr 12 11:55:10 2007 +1000 + + cleanup framebuffers on drm unload + +commit fb6c5aacb9955248300e0c62f68a5a65b40e15e1 +Author: Dave Airlie +Date: Thu Apr 12 11:54:49 2007 +1000 + + only initialise modes when fbcon or fbset asks for it + +commit b49b3ba4c1aad0d3f34f06013f2ffa67fc8d82c9 +Author: Dave Airlie +Date: Thu Apr 12 11:43:13 2007 +1000 + + set bracing style like Linux + +commit a5cf4cc369fcc2cf7b84bbaef1e458250ecb91ee +Author: Dave Airlie +Date: Thu Apr 12 11:28:55 2007 +1000 + + fix unbalanced lock and make sure mode list has modes so lvds code doesn't crash + +commit 981f8156de0c5ec6387f659fbcac031d663d943c +Author: Dave Airlie +Date: Thu Apr 12 08:54:31 2007 +1000 + + allow framebuffer changes on the crtc setup + +commit a81558d8b3ee17fbf46e32b10732e22fcd997858 +Author: Dave Airlie +Date: Thu Apr 12 08:45:40 2007 +1000 + + add getfb ioctl + +commit 9d7160c43a7475b9d2ab06c5c353acb9456efa12 +Author: Jesse Barnes +Date: Wed Apr 11 12:52:57 2007 -0700 + + Use new kernel buffer object type and cleanup agp probing. + +commit 2e21779992bd5026d8ec4dea52466377dbe5a0ed +Author: Jesse Barnes +Date: Wed Apr 11 12:51:52 2007 -0700 + + Add new buffer object type for kernel allocations that don't initially have a user mapping. + +commit 8dd75bd601f5fbf9793afc7b869a278050aa17d5 +Author: Jesse Barnes +Date: Wed Apr 11 11:47:58 2007 -0700 + + Add aperture size and preallocation probing (from intelfb), cleanup load code to be more general. + +commit 63d4d40463b04f1277470ccf5cc96dafd81e8687 +Author: Jesse Barnes +Date: Wed Apr 11 11:46:37 2007 -0700 + + Fix i2c unregistration, cleanup panel_fixed_mode assignment. + +commit 425da42e95606fec19cc87fad9329d48f93dfe6b +Author: Jesse Barnes +Date: Wed Apr 11 11:44:54 2007 -0700 + + Whitespace cleanups. + +commit c731b68091aa7284ee3a89c8a7ea3fdabac45a54 +Author: Jesse Barnes +Date: Wed Apr 11 11:42:00 2007 -0700 + + Fix EDID pixel clock calculation. + +commit cc7faa4de80a68d5a7a484046b9b42de961cdbef +Author: Jesse Barnes +Date: Wed Apr 11 07:21:24 2007 -0700 + + fix modeset cleanup for LVDS and reenable it in i915. + +commit dd00aa5851ca7c5590ae0b0825dd84c027cfd420 +Author: Jesse Barnes +Date: Wed Apr 11 07:08:48 2007 -0700 + + export vblank routine for use by intel_display.c and intel_sdvo.c. + +commit f35db6690625ccd01fb61dc766e6380a9c14c331 +Author: Jesse Barnes +Date: Wed Apr 11 07:08:29 2007 -0700 + + Fixup DDC probing. We only have one DDC bus so we have to use it only + on demand, and unregister when we're done. + +commit 78598fdaa8b23a199880a63b79f17cfd7f14cb0f +Author: Jesse Barnes +Date: Wed Apr 11 07:07:54 2007 -0700 + + Various changes for in-kernel modesetting: + - allow drm_buffer_object_create to be called w/o dev_mapping + - fixup i915 init code to allocate memory, fb and set modes right + - pass fb to drm_initial_config for setup + - change some debug output to make it easier to spot + - fixup lvds code to use DDC probing correctly + +commit 7e48d47fb51cc0f1a38a99acfe591821a45d7081 +Author: David Airlie +Date: Wed Apr 11 17:35:00 2007 +1000 + + line_length calculation was incorrect.. I now can get fbcon to run + +commit 0392badd84ec833ddd9e2b187844d246d860bbf7 +Author: David Airlie +Date: Wed Apr 11 17:25:37 2007 +1000 + + oops for 32 pitch.. hey I can see stuff on fbcon now.. it looks like text.. just a bit garbled + +commit 1147fefed8d1154482c9cc9a9785e6871cd6e6a1 +Author: David Airlie +Date: Wed Apr 11 17:13:57 2007 +1000 + + fixup framebuffer depth + +commit a6cc6a778f8b2f86300a8ce87441d044fd67f930 +Author: David Airlie +Date: Wed Apr 11 17:13:45 2007 +1000 + + add support for setting a framebuffer depth + +commit c582eaac194411f52a2c0527ffa093b5a422d7b9 +Author: Dave Airlie +Date: Wed Apr 11 16:34:40 2007 +1000 + + add copyright statement + +commit 32f6a58db216f23a7c71ca9c7eda56aaa8293078 +Author: Dave Airlie +Date: Wed Apr 11 16:33:03 2007 +1000 + + add initial drm_fb framebuffer + + So far I can load fbcon, once I use my miniglx to add a framebuffer. + fbcon doesn't show anything on screen but baby steps and all that. + +commit add7a928ad1819df17d5764d06fb81985b285d08 +Author: Dave Airlie +Date: Wed Apr 11 14:43:02 2007 +1000 + + comment out unworkable code + +commit 3dd5dc5728620cadec24ee5db323a20c3bb48bf0 +Author: Dave Airlie +Date: Wed Apr 11 14:34:43 2007 +1000 + + only init at driver load + +commit 9d12da5917ec57605a2c4cd81c1753145f7e229c +Author: Dave Airlie +Date: Wed Apr 11 14:34:22 2007 +1000 + + only bo finish at driver unload + +commit b329f91502a20cc6def44b7bea6cbc8b016edd5e +Author: Dave Airlie +Date: Wed Apr 11 14:04:18 2007 +1000 + + use the baseaddr at least + +commit 7e58276c76ff2297fdf9ba295d696338377d6e14 +Author: root +Date: Wed Apr 11 13:40:50 2007 +1000 + + Revert "Remove some delays from Intel i2c code, we'll need a more comprehensive fix" + + This reverts commit c0336989884e75bcd05284257e884754bb5f85b6. + + this break SDVO + +commit 44be9c9d5950d3b2ba4d5527189abec8dac0686f +Author: David Airlie +Date: Wed Apr 11 13:19:30 2007 +1000 + + add an fb count + id get to the get resources code path + +commit 3e994a56be1bfc633e49434c9e4a3e3262070248 +Author: David Airlie +Date: Wed Apr 11 13:18:49 2007 +1000 + + use fb pitch and fix up some whitespace + +commit f50eec752c8754595ba99f0ec7a7c8138316a819 +Merge: 44a8761 b62ffb8 +Author: Jesse Barnes +Date: Tue Apr 10 17:58:30 2007 -0700 + + Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101 + +commit b62ffb8e91dafbe46b4daa5be13a867b149b0170 +Author: David Airlie +Date: Wed Apr 11 09:56:09 2007 +1000 + + fixup calculation to make sdvo work + +commit 9b7211dd6793dc62d11ad1ae980b22fa2d61f9dd +Author: Matthieu Castet +Date: Tue Apr 10 23:19:29 2007 +0200 + + nouveau: nv10 per channel init from ddx + +commit 44a8761302888080f1cb6596d4573d88c1746da4 +Merge: e114b98 50672ad +Author: Jesse Barnes +Date: Tue Apr 10 10:45:55 2007 -0700 + + Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101 + + Conflicts: + + linux-core/drm_crtc.c - trivial merge + linux-core/drm_crtc.h - trivial merge + linux-core/intel_display.c - crtc_config -> mode_config + shared-core/i915_dma.c - accommodate new init code in i915_init.c + +commit e114b981bc291049fa6996d487334a408acc1ce2 +Author: Jesse Barnes +Date: Tue Apr 10 10:31:58 2007 -0700 + + Export drm_setup for use by new driver init code. + +commit b59285d738b1a832b12d9258bd6f1db8f7e61f08 +Author: Jesse Barnes +Date: Tue Apr 10 10:31:10 2007 -0700 + + Move i915 init code to new file, i915_init.c, and create a new high level + init routine that runs at driver load time. + +commit 5130918e2531b9a8f6f6b65cdfce81f4f0904329 +Author: Jesse Barnes +Date: Tue Apr 10 09:51:17 2007 -0700 + + Add save/restore state for LVDS code, along with a few other LVDS related + items to i915 private structure. + +commit 8785679f893ef9257c589a70113ac731edba0194 +Author: Jesse Barnes +Date: Tue Apr 10 09:49:02 2007 -0700 + + Remove some debug #if 0 codes and add a reminder to check locking around + output enumeration stuff. + +commit c0336989884e75bcd05284257e884754bb5f85b6 +Author: Jesse Barnes +Date: Tue Apr 10 09:48:20 2007 -0700 + + Remove some delays from Intel i2c code, we'll need a more comprehensive fix + in the Linux i2c layer to make DDC reliable on old monitors. + +commit 183cbd92dd016f8935f9b58ef9345fde1391173e +Author: Jesse Barnes +Date: Tue Apr 10 09:47:37 2007 -0700 + + Finish bringing in LVDS code, re-add to Makefile. Needed other changes too: + - move EDID structures to drm_edid.h + - add EDID info structure to drm_output + - add a few routines to intel_display for getting current mode info + - add some prototypes to intel_drv.h and drm_crtc.h + +commit 50672adb3142abca743535a8e60c360ef47b2a08 +Author: David Airlie +Date: Tue Apr 10 16:49:36 2007 +1000 + + add sdvo debugging output + +commit b9c7fa55e2c6685c4c533613ab14f305f033c353 +Author: David Airlie +Date: Tue Apr 10 16:32:17 2007 +1000 + + fixup sarea writes for set pipe base and dpms + +commit 23a66fd506e71fdfde906d1679fb07c0df8bec4c +Author: David Airlie +Date: Tue Apr 10 16:26:07 2007 +1000 + + fixup true/false in intel_sdvo.c + +commit f1476e4e5cefd4aa8c487b4e651a26056110e2f0 +Author: David Airlie +Date: Tue Apr 10 16:25:52 2007 +1000 + + re-tab and fixup the i915GM get core clock function to actually work + +commit 1e39dc43230ba1827eedc29ab422464281ec3e1b +Author: David Airlie +Date: Tue Apr 10 16:25:31 2007 +1000 + + export output name to userspace + +commit 40bd6dcd86d554ca426deccd4fbada693c4be8a6 +Author: David Airlie +Date: Tue Apr 10 15:20:50 2007 +1000 + + set the base address of the CRTC correctly + +commit 65f465ed5ad3caf773658bb2832785c963b987f6 +Author: David Airlie +Date: Tue Apr 10 14:49:49 2007 +1000 + + fixup numerous issues with adding framebuffer support + + This still isn't perfect but it fixes a few oopses and cleans up + some of the tabs and bugs in the original fb limit code + +commit c446bf50e3ae730f272c6842f4ad04d523bd40c3 +Author: Jesse Barnes +Date: Mon Apr 9 20:46:38 2007 -0700 + + Slam in most of X.Org's i830_lvds (not quite done yet so removed from Makefile.kernel too). + +commit eb9bdc27879d1aa307b234bbdb0f81494dcf7095 +Author: David Airlie +Date: Tue Apr 10 11:51:31 2007 +1000 + + mode: fixup problems with framebuffer add function + +commit ed0ebd9d3da2e5c4e8053b6e7a7d2898b184f857 +Author: Dave Airlie +Date: Tue Apr 10 18:56:02 2007 +1000 + + make crtc_config be named mode_config + + X.org calls this crtc_config but this is a bad name and will confuse ppl later + (and me now :-) + +commit b50bda002b824efb24e18e8d514ff0ca763c15b9 +Author: Jakob Bornecrantz +Date: Tue Apr 10 18:44:47 2007 +1000 + + add addfb/rmfb ioctls + + Originally from Jakob, cleaned up by airlied. + +commit 059b5d90770e32ba3d6d9a62acf74b352de7f421 +Author: Oliver McFadden +Date: Mon Apr 9 23:23:40 2007 +0000 + + rs480: Renamed some unknown registers. See dri-devel list. + +commit 7e2b1a6cf55579c6f8b1fd56a97e9f41e34b88fc +Author: Jesse Barnes +Date: Mon Apr 9 08:52:53 2007 -0700 + + Fix refresh calculation (mistakenly removed 1000 factor needed for integer calulations, fixed mode printout debugging routine instead). + +commit 2d7f9f59c3ae9dbaa516ee45ae26b32825e7bf3e +Author: Ben Skeggs +Date: Mon Apr 9 23:20:26 2007 +1000 + + nouveau: NV46 support + +commit 29f8fe80469a161c89c1a690ae2b62b3c21e4794 +Author: Dave Airlie +Date: Mon Apr 9 22:00:34 2007 +1000 + + radeon: bump version for IGPGART support + +commit a70f8e0ab265cc4a26ed2f9e92ab0618bd920a93 +Author: Dave Airlie +Date: Mon Apr 9 21:52:59 2007 +1000 + + radeon: add support for reverse engineered xpress200m + + The IGPGART setup code was traced using mmio-trace on fglrx by myself + and Phillip Ezolt on dri-devel. + + This code doesn't let the 3D driver work properly as the card has no + vertex shader support. + + Thanks to Matthew Garrett + Ubuntu for providing me some hardware to do this + work on. + +commit ab7ee9c1af3bd844653a83b5160773db671bbcad +Author: Jesse Barnes +Date: Sat Apr 7 19:26:55 2007 -0700 + + remove a printk to make things less verbose + +commit 2430d0c3157ef20a3319a4f93dc44b28d0189868 +Author: Jesse Barnes +Date: Sat Apr 7 19:25:25 2007 -0700 + + just codingstyle cleanups + +commit 491ed9e4c27da6b1b5a6a6921039a7bf3a98c290 +Author: Jesse Barnes +Date: Sat Apr 7 19:24:53 2007 -0700 + + document drm_mode_duplicate and fix vrefresh calculation (off by 1000 error) + +commit 13d4ea90c09fa834eb6eecaa082780aace78dac7 +Author: Jesse Barnes +Date: Sat Apr 7 19:24:09 2007 -0700 + + various cleanups to EDID code: + - pull in FB DDC code (we'll have to rewrite it anyway it appears) + - add comments + - note a few FIXMEs + - make it less quiet, and more informative when it actually does print + +commit a35ba455b27b72f1ee3e1136ca6659f672ada4fa +Author: Jesse Barnes +Date: Sat Apr 7 19:22:39 2007 -0700 + + make drmP.h include drm_crtc.h for CRTC related stuff. + fixup drm_crtc.c so it matches VGA and other outputs properly. + make drm_crtc.c less verbose. + add function declarations in drm_crtc.h for other files. + +commit b25558bb7377f6df6d457b50067a1d245f7911fd +Author: Dave Airlie +Date: Sat Apr 7 07:21:05 2007 +1000 + + fixup install target, not sure what I was smokin... + +commit 46257c51c1e402cf04007f01a90cb423b141f89e +Author: Dave Airlie +Date: Sun Apr 1 16:30:52 2007 +1000 + + i915: use breadcrumb macro everywhere + +commit 1c9ba24c2f37ca78965f8aa57ece02ef5bdb9b06 +Author: Eric Anholt +Date: Thu Apr 5 11:34:11 2007 -0700 + + Add required permission notices for code copied from X.Org source. + +commit 78034c06dfc0cd79cc47c2daa119ca3ee2a4fed4 +Author: Ben Skeggs +Date: Fri Apr 6 03:24:39 2007 +1000 + + nouveau: make a note about a bit that breaks some cards + +commit 38f52402a8b7126f0c1ceccf7c1843b1a5247ef6 +Author: Ben Skeggs +Date: Fri Apr 6 03:03:59 2007 +1000 + + nouveau: Power up all card units by default on startup. + +commit 50ee722e018a5f17f886286e3d9eebe93f3cecaa +Merge: 6f3534a 652bbb7 +Author: Jesse Barnes +Date: Thu Apr 5 09:27:12 2007 -0700 + + Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101 + +commit 6f3534a13abb0c8afb157511d0871dbc35bc403d +Author: Jesse Barnes +Date: Thu Apr 5 09:21:31 2007 -0700 + + Add copyrights before I forget + +commit 652bbb77f6c9efb7e0a67cc868dfda42b00fc5fb +Author: Dave Airlie +Date: Thu Apr 5 20:20:33 2007 +1000 + + add back compat for bool + +commit b4094864f188a1346cc3b51bcb457beeacefbf82 +Author: Dave Airlie +Date: Thu Apr 5 18:01:02 2007 +1000 + + checkpoint commit: implement SetCrtc so modes can in theory be set from user + + This hooks up the userspace mode set it "seems" to work. + +commit 7bb112fecadc6fe42e5828b861600691071ccd91 +Author: Dave Airlie +Date: Thu Apr 5 17:06:42 2007 +1000 + + checkpoint commit: added getresources, crtc and output + + This adds the user interfaces from Jakob and hooks them up for 3 ioctls + GetResources, GetCrtc and GetOutput. + + I've made the ids for everything fbs, crtcs, outputs and modes go via idr as + per krh's suggestion on irc as it make the code nice and consistent. + +commit 5bffbd6e275efffbb649c20c528a11412ccf99cd +Author: Dave Airlie +Date: Thu Apr 5 13:34:50 2007 +1000 + + initial userspace interface to get modes + +commit 52f9028c84baea81230dc673b756552e8e90aecd +Author: Dave Airlie +Date: Thu Apr 5 11:21:06 2007 +1000 + + Initial import of modesetting for intel driver in DRM + +commit 8fe8793a0fdf4e6082a0f0b0fc4650f171737356 +Author: Dave Airlie +Date: Thu Apr 5 11:20:23 2007 +1000 + + borrow edid.h from fb directory + +commit 9c793716591c141d7bb1796f5dc6473c45d9545c +Author: Dave Airlie +Date: Thu Apr 5 11:18:00 2007 +1000 + + add an install target to the drm modules makefile + +commit 29ac7b1fe364a4be1db7e22d2b400bef04fc240d +Author: Dave Airlie +Date: Tue Apr 3 21:20:00 2007 +1000 + + radeon: add setup for PCIE GART ttm + +commit e835820e2359952bd42a66137c6b7ab243a5a541 +Author: Dave Airlie +Date: Tue Apr 3 19:04:48 2007 +1000 + + add initial PCIE GART framework for TTM + +commit c4968279218cf246323e38bbbd44ce2774871fde +Author: Thomas Hellstrom +Date: Tue Apr 3 10:54:23 2007 +0200 + + Fix user object reference when caller is not object creator. + (Reported by Dave Airlie). + +commit 38d18acb8f3617d79735f71564d9f49e608461ec +Author: Thomas Hellstrom +Date: Tue Apr 3 10:24:06 2007 +0200 + + Add a fence flush event to each fence-signaled check when lazy-waiting + + to make sure we don't lose any sequence numbers if, for some reason, + they don't generate an IRQ. + +commit 139e4bbc73c65d6e1d7fc831ae15c8b28f92e821 +Author: Thomas Hellstrom +Date: Tue Apr 3 10:21:41 2007 +0200 + + Make sure we ack irqs before we read a breadcrumb so that + + breadcrumb updates that occur _AFTER_ we've read the breadcrumb really + generates a new IRQ. + +commit 7743af94492681f5aaf7cfdef78d695a6db7cbd0 +Author: Thomas Hellstrom +Date: Fri Mar 30 14:14:26 2007 +0200 + + Evicted no-move buffers can get lost if they end up in another + + memory type than local. + +commit d85e243259259d7702db0d344ae1ff7d26598227 +Author: Thomas Hellstrom +Date: Fri Mar 30 12:23:22 2007 +0200 + + Fix an oops when trying to clean a not yet initialized memory type. + +commit 72d457fc1973a61f906a42d049c1c160cc7dee4e +Author: Thomas Hellstrom +Date: Thu Mar 29 21:33:41 2007 +0200 + + Make sure CMA (Can't map aperture) pages are mapped uncached. + + (Should really make this write-combined using PATs, at some point). + +commit 5395a92d40337aa3de424f87fb38cb5a0ca45bcf +Author: Oliver McFadden +Date: Mon Apr 2 19:45:10 2007 +0000 + + r300: Synchronize the register header file again. + + It's a good idea to keep these synchronized; even though the DRM doesn't use all + the defines, maintaining two different copies is prone to errors when the diff + gets bigger. + +commit cbbdbd5e653860bcae165c8abd16006d4425e3de +Author: Matthieu Castet +Date: Sun Apr 1 14:31:41 2007 +0200 + + nouveau: fix usage of PGRAPH_CTX_CONTROL on nv20+ + + http://gitweb.freedesktop.org/?p=mesa/drm.git;a=commitdiff;h=17985f07d68322519919a7f629a6d2d9bf3916ed could have broken some nvxx_graph code : it rename NV03_PGRAPH_CTX_CONTROL to NV10_PGRAPH_CTX_CONTROL, but forgot to update it in nvxx_graph file. + + Also when migrating init stuff in http://gitweb.freedesktop.org/?p=mesa/drm.git;a=commitdiff;h=674cefd4fe4b537a20a10edcb4ec5df55facca8e, NV04_PGRAPH_CTX_CONTROL is used everywhere but the old ddx code use NV_PGRAPH_CTX_CONTROL_NV04 or NV_PGRAPH_CTX_CONTROL. + +commit 25cedcf76fae45f8a1a63ccb6b4bc5746b7d1587 +Author: Matthieu Castet +Date: Sun Apr 1 14:21:29 2007 +0200 + + nouveau : nv10 ctx switch fix + restoring NV10_PGRAPH_CTX_SWITCH1 now works + +commit bdc5a8b62ef2f59e05f69da2150212c0243f6efb +Author: Dave Airlie +Date: Sun Apr 1 19:09:00 2007 +1000 + + radeon: enable buffer manager + +commit b1f0b2d960a8f488332652677073ab95ce72cd3f +Author: Dave Airlie +Date: Sun Apr 1 18:24:23 2007 +1000 + + radeon: de-static irq function, fixup fence/buffer + +commit be5bf1346e49d5c2e0080913fd55e6898a8744cf +Author: Dave Airlie +Date: Sun Apr 1 16:48:38 2007 +1000 + + copy over some files and reorg radeon to add ttm fencing not working yet + +commit 223061e0846a95d4a3dba84b36afb2cef313bae9 +Author: Matthieu Castet +Date: Sun Apr 1 00:44:11 2007 +0200 + + nouveau : set the correct PGRAPH_CTX_CONTROL register + + "5a072f32 (Stephane Marchesin 2007-02-03 04:57:06 +0100" broke nv10 ctx switch by setting wrong PGRAPH_CTX_CONTROL reg + +commit ddb1715e06f6b5ab81ed0bc6667104bb9e7fcdee +Merge: cd4c821 406a894 +Author: Eric Anholt +Date: Fri Mar 30 12:56:34 2007 -0700 + + Merge branch 'crestline-qa', adding support for the 965GM chipset. + +commit cd4c82176f3f429e722ca3fac2abf231af479780 +Merge: 5d69640 3f70518 +Author: Eric Anholt +Date: Fri Mar 30 12:56:08 2007 -0700 + + Merge branch 'origin' + +commit 3f70518f0bcf36a1e2c82db962324dbdee106f67 +Author: Dave Airlie +Date: Thu Mar 29 09:25:04 2007 +1000 + + drm/bo: avoid oops if the memory manager for this type isn't initialised + +commit bdabc8f9986bf4e190f8e4a24466dec551b08006 +Author: Stephane Marchesin +Date: Thu Mar 29 00:54:18 2007 +0200 + + nouveau: fix nv04 context switches. + +commit 81b811da376fed5363f25e82e5285455df3e8157 +Author: Dave Airlie +Date: Tue Mar 27 18:01:31 2007 +1000 + + drm/i915: set the bo up at firstopen time not after DMA init + + This is required to use TTM to allocate the ring buffer. + +commit 72a1190f6d9acea5fb789bec706c842604954049 +Author: Dave Airlie +Date: Tue Mar 27 17:59:30 2007 +1000 + + drm/ttm: make sure dev_mapping is set-up for the first opener of the drm + + This was causing an oops in my miniglx code to try and use a TTM-only setup. + +commit 406a894e529267177e6161c1713f2aa2293e7734 +Merge: ddc87d3 674cefd +Author: Nian Wu +Date: Tue Mar 27 12:53:13 2007 +0800 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 674cefd4fe4b537a20a10edcb4ec5df55facca8e +Author: Ben Skeggs +Date: Mon Mar 26 19:43:48 2007 +1000 + + nouveau: move card initialisation into the drm + + The PGRAPH init for the various cards will need cleaning up at some point, + a lot of the values written there are per-context state left over from the + all the hardcoding done in the ddx. + + It's possible some cards get broken by this commit, let me know. + Tested on: NV5, NV18, NV28, NV35, NV40, NV4E + +commit ddc87d302526347f670e8b61e227c0eb05c15cde +Merge: e7cd5a1 5ad43f4 +Author: Nian Wu +Date: Sun Mar 25 17:00:36 2007 +0800 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 5d69640a6ad15522fa37c3b232eb34acef955892 +Author: Eric Anholt +Date: Sat Mar 24 09:39:09 2007 -0700 + + Catch up to new interrupt API, and retire FreeBSD 4.x support here. + +commit 5ad43f46759ff1eb473c9101e7de0d46a4ed8177 +Author: Dave Airlie +Date: Sat Mar 24 17:58:27 2007 +1100 + + vm: cleanup drm_vm.c along lines of cleanups queued for kernel + +commit e7cd5a1e2df29c1a06b74439faf750c6c5bb8e4a +Merge: 0467ad4 4988fa4 +Author: Nian Wu +Date: Fri Mar 23 17:00:41 2007 +0800 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 4988fa48869098b18a3b60884550614818d60445 +Author: Ben Skeggs +Date: Fri Mar 23 14:45:00 2007 +1100 + + nouveau: rework nouveau_fifo_alloc() so the drm can create internal FIFOs + +commit 8d918b0b63b3142d92204253bfc954ed12aa98ed +Author: Dave Airlie +Date: Fri Mar 23 14:56:39 2007 +1100 + + cleanup more whitespace from ttm merge + +commit 39795501a8d4d5286fd21d36f8b7258f70fec989 +Author: Dave Airlie +Date: Fri Mar 23 14:56:28 2007 +1100 + + drm: remove second spinlock init for tasklet lock + +commit 2bb9de96d5b58961ec2ff2e49e1e7260c8befa48 +Author: Ben Skeggs +Date: Fri Mar 23 13:45:29 2007 +1100 + + nouveau: remove unused cruft + +commit 0467ad41188031073cbbad1139a916e2439af2f1 +Merge: fe4cc50 e222254 +Author: Nian Wu +Date: Wed Mar 21 17:00:43 2007 +0800 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit e22225416a12c2beab7a5bcb866d214ee212cbc4 +Author: Ben Skeggs +Date: Wed Mar 21 17:57:47 2007 +1100 + + nouveau: support multiple channels per client (breaks drm interface) + +commit fe4cc50983bdaf51bf29ef041f65e0007f547844 +Merge: 8398b99 209870a +Author: Nian Wu +Date: Tue Mar 20 13:11:02 2007 +0800 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 209870a88262a4a27b36e5cc97f3b1e7021dbefd +Author: Dave Airlie +Date: Tue Mar 20 10:13:58 2007 +1100 + + rename badly named define + +commit ef71b6230b50b81c1169d63f44d397ef0b77f94d +Author: Alan Hourihane +Date: Mon Mar 19 11:40:52 2007 +0000 + + remove i830 reference + +commit cbe31d0dc7ead9e690faf8b68c481a39f0f01195 +Author: Alan Hourihane +Date: Mon Mar 19 11:40:05 2007 +0000 + + Remove old i830 kernel driver. + +commit 8398b99d8d146278adc13d6093811e53cd42c88a +Merge: df73975 1e77e52 +Author: Nian Wu +Date: Mon Mar 19 17:00:31 2007 +0800 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 1e77e52755c9bb94c9230778845e6701b4d82b3a +Author: Dave Airlie +Date: Mon Mar 19 09:20:04 2007 +1100 + + more return values fixup + +commit 46fac1708242756d280128888bda7218fb224603 +Author: Dave Airlie +Date: Mon Mar 19 09:12:08 2007 +1100 + + fixup return values in drm ioctl + +commit 26aba875e1094dcb3ba88ac4c41e943ef46df2c8 +Author: Dave Airlie +Date: Mon Mar 19 08:56:24 2007 +1100 + + more whitespace issues + +commit c991f8e049d8f39cbbb74afb81097affdc110a29 +Author: Dave Airlie +Date: Mon Mar 19 08:46:39 2007 +1100 + + cleanup ioctl expansion code + +commit a2e3bae8e23398b1db25ea79cf1086a1fa735946 +Author: Dave Airlie +Date: Mon Mar 19 08:46:25 2007 +1100 + + oops missing else + +commit bbb6fc9307c42891120faeaca5c57cf7884866ad +Author: Dave Airlie +Date: Mon Mar 19 08:36:01 2007 +1100 + + make drm fops const from kernel + +commit 483f6a113d21b90821d091c4dae413703f9907e5 +Author: Dave Airlie +Date: Mon Mar 19 08:32:25 2007 +1100 + + use ARRAY_SIZE + +commit 2d7ecb84221278a9b6a0328fb2f9a63ea6b8e2e2 +Author: Dave Airlie +Date: Mon Mar 19 08:29:07 2007 +1100 + + more tab/space conversion + +commit 2463b03cb4d89cfcc5f2af6d6f09b28a491cb971 +Author: Dave Airlie +Date: Mon Mar 19 08:23:43 2007 +1100 + + whitespace cleanup pending a kernel merge + +commit 6c4428d40c7531a28aa405e3db407461d20a0110 +Author: Dave Airlie +Date: Mon Mar 19 08:09:21 2007 +1100 + + clean up more of inline functions agp_remap/drm_lookup_map + +commit 27197d7836b913976f6b75005d1c0c926774825a +Author: Dave Airlie +Date: Sun Mar 18 21:45:07 2007 +1100 + + deinline agp_remap along lines of kernel + +commit c4808e206bcc5b3d3c0baa2e6e5130e67b78152b +Author: Dave Airlie +Date: Sun Mar 18 21:42:48 2007 +1100 + + remove drm_lookup_map unused now + +commit df73975980e926e350bf36bf4bc8a07220f66164 +Merge: 80d0018 93f66af +Author: Nian Wu +Date: Wed Mar 14 17:00:27 2007 +0800 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 93f66af76a18357f7e3bfcb52c241962287c5caa +Author: Oliver McFadden +Date: Tue Mar 13 14:48:01 2007 +0000 + + r300: Renamed the CACHE_CTLSTAT values to include UNKNOWN in the name; not + enough information is known about them to be sure as to what the values mean. + +commit 80d0018bc078d489f509152673c838be3c471854 +Merge: ab75d50 a90c285 +Author: Nian Wu +Date: Tue Mar 13 17:00:31 2007 +0800 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit a90c2854a7a71953e03d36b1ff7db3e9c2babb99 +Author: Oliver McFadden +Date: Tue Mar 13 06:25:04 2007 +0000 + + Add defines for the values written to R300_RB3D_ZCACHE_CTLSTAT. + + Note that just like the values written to R300_RB3D_DSTCACHE_CTLSTAT these + values are really unknown; ideally more reverse engineering should be done to + determine what these values mean and when they should be set. + +commit 90f8c691a57a79a6a9652b7d2a01c59acc127b3f +Author: Ben Skeggs +Date: Tue Mar 13 14:51:55 2007 +1100 + + nouveau: make sure cmdbuf object gets destroyed + +commit 1775202cf96c51018bf369b1b4d08023d622513c +Author: Ben Skeggs +Date: Tue Mar 13 14:18:03 2007 +1100 + + nouveau: associate all created objects with a channel + cleanups + +commit 7e2bbe295424adfcd455a4c4b42dd0342087615e +Author: Ben Skeggs +Date: Tue Mar 13 13:43:14 2007 +1100 + + nouveau: s/fifo/channel/ + +commit 462a6ea4caadae0c68f6fe3e0343950ced2095cb +Author: Oliver McFadden +Date: Tue Mar 13 01:19:56 2007 +0000 + + Corrected values written to R300_RB3D_DSTCACHE_CTLSTAT to either + R300_RB3D_DSTCACHE_02 or R300_RB3D_DSTCACHE_0A, rather than hexadecimal values. + +commit 5667396e05723afc5a626e1ba0384e29a240dea3 +Author: Oliver McFadden +Date: Tue Mar 13 00:50:05 2007 +0000 + + Guess another unknown register used for R300 pacification. + +commit ab75d50d6ca72615259e4fa857effeb6192c28a9 +Merge: b369724 0cd5c65 +Author: Nian Wu +Date: Mon Mar 12 09:03:40 2007 +0800 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 0cd5c650d1bb36e0ba6b40abd1da1459d1a767f0 +Author: Patrice Mandin +Date: Sun Mar 11 14:02:40 2007 +0100 + + nouveau: PUT,GET, not 2xPUT + +commit b36972407747154abc0c5f2cdcf3b8ddbba4ff2e +Merge: 0a85c9f 6ffe94f +Author: Nian Wu +Date: Wed Mar 7 16:01:50 2007 -0500 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 6ffe94f008db22f959d4d397861b7439cb5404ba +Author: Thomas Hellstrom +Date: Wed Mar 7 09:19:57 2007 +0100 + + Add via CX700. + +commit 0a85c9fa02608426a9a97f1d26e37c301330926b +Merge: 6c48b8e 188a93c +Author: Nian Wu +Date: Mon Mar 5 09:01:45 2007 -0500 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 188a93c9dfde31de4d86733fa46b50487d3a4ac0 +Author: Dave Airlie +Date: Sun Mar 4 19:10:46 2007 +1100 + + radeon: make PCI GART aperture size variable, but making table size variable + + This is precursor to getting a TTM backend for this stuff, and also + allows the PCI table to be allocated at fb 0 + +commit c9178c3d01f6f38a33f9624c620d290cb9036964 +Author: Dave Airlie +Date: Sun Mar 4 18:13:34 2007 +1100 + + ati: make pcigart code able to handle variable size PCI GART aperture + + This code doesn't enable a variable aperture it just modifies the codebase + to allow me fix it up later + +commit 6c48b8e7ffd0af4d49855d7175e822f4af1f526f +Merge: 0bbbb46 72caa48 +Author: Nian Wu +Date: Thu Mar 1 09:02:09 2007 -0500 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 0bbbb46650667c84a50f1a675a7a910d6ef7df4b +Merge: 7c3aeaf 6a51da7 +Author: Nian Wu +Date: Wed Feb 28 09:00:12 2007 -0500 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 72caa48c82e4334d3292185dbadf758d2dd14c16 +Author: Ben Skeggs +Date: Wed Feb 28 15:14:08 2007 +1100 + + nouveau: intrusive drm interface changes + + graphics objects: + - No longer takes flags/dmaobj parameters, requires some major changes + to the ddx to setup the object through the FIFO. This change is + likely to cause breakages on some cards (tested on NV05,NV28,NV35, + NV40 and NV4E). + dma objects: + - now takes a "class" parameter, not really used yet but we may need + it at some point. + - parameters are checked, so clients can't randomly create DMA objects + pointing at whatever they feel like. + misc: + - Added FB_SIZE/AGP_SIZE getparams + - Read PFIFO_INTR in PFIFO irq handler, not PMC_INTR + - Dump PGRAPH trap info on PGRAPH_INTR_NOTIFY if NSOURCE isn't + NOTIFICATION_PENDING. + +commit 7c3aeafe756f823e2cd6352ed1788aeec0000b95 +Merge: df2fc3e 80468e7 +Author: Nian Wu +Date: Tue Feb 27 14:42:26 2007 -0500 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 6a51da7325163151678c27dcbf51595092773d7a +Author: Jay Estabrook +Date: Tue Feb 27 08:55:08 2007 +0000 + + Fix Alpha domain/bus issue + +commit 80468e75323a4353e29f010b61ee657851f8508c +Author: Thomas Hellstrom +Date: Mon Feb 26 18:17:54 2007 +0100 + + Fix build for 2.6.21-rc1. + The vm subsystem of 2.6.21 is fully compatible with the buffer object + vm code. + +commit df2fc3ec62d6799a3266cfb18b1279a126892f44 +Merge: 80095ff 9d8ba2d +Author: Nian Wu +Date: Sun Feb 25 17:06:13 2007 -0800 + + Merge git://proxy01.pd.intel.com:9419/git/mesa/drm into crestline + +commit 9d8ba2d0d479f53b996c0a0e366acfee52daab3b +Author: Jakob Bornecrantz +Date: Sun Feb 25 10:48:26 2007 +1100 + + drm: remove unnecessary NULL checks, and fix some indents.. + +commit 2b7a9afa0977d4a8b21db3d436cec66e5a45764d +Author: Thomas Hellstrom +Date: Thu Feb 22 17:04:20 2007 +0100 + + Some fencing cleanup. + +commit a253de2fcfa11abadd4697a9d89137adf3f35f78 +Author: Dave Airlie +Date: Sun Feb 18 17:59:40 2007 +1100 + + drm: remove last usage of VM_OFFSET + +commit 6d8ed5aedda27ec238aac3d69fb9dfadc82bfa9a +Author: Thomas Hellstrom +Date: Fri Feb 16 20:25:26 2007 +0100 + + Leftover files from previous commit. + +commit e0f53e59be4b96ed6eb28bd2df9f6a9d789d1734 +Author: Thomas Hellstrom +Date: Fri Feb 16 20:22:24 2007 +0100 + + Simple fence object sample driver for via, based on idling the GPU. + Buffer object driver for via. + Some changes to buffer object driver callbacks. + Improve fence flushing. + +commit 7766378d97323de375687285f2e125008b79045d +Author: Thomas Hellstrom +Date: Thu Feb 15 12:10:33 2007 +0100 + + Initial support for fence object classes. + + (Fence objects belonging to different command submission mechanisms). + +commit 7803977aa9c3ca6360e6c22e77415cf17151cb9e +Author: Michel Dänzer +Date: Thu Feb 15 09:26:16 2007 +0100 + + Fix build against older kernels. + +commit a78f70faade8950ebb11ac8334c8c551f8e32b35 +Merge: 35eb12d 1345076 +Author: Thomas Hellstrom +Date: Wed Feb 14 15:33:40 2007 +0100 + + Merge branch 'ttm-vram-0-1-branch' + +commit 35eb12d8bf91e7a3b0702385fa47b648194803c4 +Author: Thomas Hellstrom +Date: Wed Feb 14 15:32:08 2007 +0100 + + Fix multiple spinlock unlocking + +commit 1345076c8f93936563cd5c15588b1d76d87969d3 +Author: Thomas Hellstrom +Date: Wed Feb 14 14:10:10 2007 +0100 + + Rename drm_ttm.h to drm_objects.h + Fix up some header incompatibilities in drm_fence.c caused by the previous + commit. + +commit 8ffc1844b083e36266ebc4d1a47f6e8fe619fd05 +Author: Thomas Hellstrom +Date: Wed Feb 14 14:05:40 2007 +0100 + + Move fence- and buffer-object related header stuff to drm_ttm.h + +commit 5c9a7b0f9499b94856916facd110059223d243dc +Author: Thomas Hellstrom +Date: Wed Feb 14 13:31:35 2007 +0100 + + Remove an intel-specific hack and replace it with a fence driver callback. + +commit 04760563b88c8e94f3ae448710d1ab8b350c2e5f +Author: Thomas Hellstrom +Date: Wed Feb 14 12:39:02 2007 +0100 + + Set the drm bus map type for each buffer object memory type. + +commit 7bcb62b45d18ab7b48ad3cb5d13aec3bc577678e +Author: Thomas Hellstrom +Date: Wed Feb 14 10:49:37 2007 +0100 + + Rework buffer object vm code to use nopfn() for kernels >= 2.6.19. + +commit f524870184b29885c6207af21fcb45c47fbaa576 +Author: Stephane Marchesin +Date: Wed Feb 14 00:08:55 2007 +0100 + + nouveau: fix the build on big endian (thanks CyberFoxx) + +commit 59af900e4f62370457117b0659e3f28f89949499 +Author: B. Rathmann +Date: Wed Feb 14 00:07:31 2007 +0100 + + nouveau: fix memory initialization with multiple cards. + +commit 6b289db05496c5cc89c29817be16cb107a522722 +Author: Thomas Hellstrom +Date: Tue Feb 13 20:46:56 2007 +0100 + + Remove debug printout. + +commit e1460426b885ab656e3cda3fd3841d64260434c5 +Author: Thomas Hellstrom +Date: Sun Feb 11 20:33:57 2007 +0100 + + Bugzilla Bug #9457 + + Add refcounting of user waiters to the DRM hardware lock, so that we can use the + DRM_LOCK_CONT flag more conservatively. + + Also add a kernel waiter refcount that if nonzero transfers the lock for the kernel context, + when it is released. This is useful when waiting for idle and can be used + for very simple fence object driver implementations for the new memory manager. + + It also resolves the AIGLX startup deadlock for the sis and the via drivers. + i810, i830 still require that the hardware lock is really taken so the deadlock remains + for those two. I'm not sure about ffb. Anyone familiar with that code? + +commit 9efdae317ce01cea95f75855b175243ae858fde4 +Author: Thomas Hellstrom +Date: Tue Feb 13 20:05:32 2007 +0100 + + More bugfixes. + Fixed memory, pinned buffers and unmappable memory now seems + fully functional. + +commit 80095ffe01efe79983c2124ecc99ce979d7ac6a9 +Author: Wang Zhenyu +Date: Tue Feb 13 16:20:45 2007 +0800 + + i915: Add 965GM pci id update + +commit 2a2d72623306de01e620485169721c790167d2b1 +Merge: 3234b29 5bd13c5 +Author: Wang Zhenyu +Date: Tue Feb 13 16:18:15 2007 +0800 + + Merge branch 'master' into crestline + +commit 3234b290585235e3ce7db99dfeb1714ccc1f6697 +Author: Wang Zhenyu +Date: Tue Feb 13 16:17:38 2007 +0800 + + Revert "Add Intel 965GM chipset support" + + This would be updated with external pci id file change. + +commit 5bd13c5e15a14d34356f2363c55b1d4c7ca3269a +Author: Adam Jackson +Date: Mon Feb 12 15:45:51 2007 -0500 + + Fix some outdated URLs, remove others. + +commit abc14ddfb5ad85bf2a5094597d829e6614e6c359 +Author: Thomas Hellstrom +Date: Mon Feb 12 21:40:42 2007 +0100 + + Update flags and comments. + +commit 398913dc0e632c71e3095a7d50dae911aed18884 +Author: Thomas Hellstrom +Date: Mon Feb 12 20:34:50 2007 +0100 + + Lindent. + +commit b0c5339ed69c6ff08b7817f870e895aae2ef04c7 +Author: Thomas Hellstrom +Date: Mon Feb 12 20:32:03 2007 +0100 + + More bugfixes. + +commit f02f83ee08a2bb87700544a9b67f475532e84af4 +Author: Thomas Hellstrom +Date: Mon Feb 12 17:47:57 2007 +0100 + + Cleanup and fix support for pinned buffers. + +commit 130c39be3cf9a5fd742aa6b00d0383e96bbbd7b7 +Author: Aapo Tahkola +Date: Sun Feb 11 10:24:14 2007 +0200 + + Sync r300_reg.h from mesa driver. #10210 + +commit 6a60b47d12b94d8c0a0feb00f165048be51153dd +Author: Maarten Maathuis +Date: Sun Mar 11 12:13:58 2007 +1100 + + replace instance of SA_SHIRQ with IRQF_SHARED + + backwards compat added by airlied + +commit caf0c481a6b998fc5e4a78d6b95f9f390c0ecc28 +Author: Michel Dänzer +Date: Sat Mar 10 17:13:54 2007 +0100 + + Bump version patchlevel so it can be tested for new functionality. + +commit 4f795a05f1f987491d85d5b9bdbf280451c7ed20 +Merge: 1b3a6d4 d734992 +Author: Michel Dänzer +Date: Sat Mar 10 00:11:10 2007 +0100 + + Merge branch 'i915-pageflip' + +commit d734992e6a8a5757dc360ab6a5e7c80ebc03b1cd +Author: Michel Dänzer +Date: Fri Mar 9 23:34:11 2007 +0100 + + i915: Only wait for pending flips before asynchronous flips again. + +commit 0741064df4b913189d26a184a7c5dcc7827152be +Author: Michel Dänzer +Date: Fri Mar 9 16:39:13 2007 +0100 + + i915: Do not wait for pending flips on both pipes at the same time. + + The MI_WAIT_FOR_EVENT instruction does not support waiting for several events + at once, so this should fix the lockups with page flipping when both pipes are + enabled. + +commit 1b3a6d47751018c75e4333ee3ab8ba21dbd55bdd +Author: Ben Skeggs +Date: Wed Mar 7 21:17:45 2007 +1100 + + nouveau: remove a hack that's not needed since the last interface change. + +commit 5bd0e52dbacb9f492433cbfa1e66c73faf67dcd5 +Author: Ben Skeggs +Date: Wed Mar 7 21:00:55 2007 +1100 + + nouveau: ack PFIFO interrupts at PFIFO, not PMC. + +commit a33859184aa852777a50ea83f9dfa013f63f806f +Author: Michel Dänzer +Date: Wed Feb 28 17:48:56 2007 +0100 + + i915: Eliminate dev_priv->current_page. + + Always use dev_priv->sarea_priv->pf_current_page directly. This allows clients + to modify it as well while they hold the HW lock, e.g. in order to sync pages + between pipes. + +commit 074e10b384c893a256fcf964676562792fdf93c8 +Author: Michel Dänzer +Date: Wed Feb 28 15:57:08 2007 +0100 + + i915: Only clean up page flipping when the last client goes away, not any one. + +commit 1cdc1b6fbabffc0dd4d3c1f8405d9372a45480a2 +Author: Michel Dänzer +Date: Wed Feb 28 15:23:19 2007 +0100 + + i915: Don't emit waits for pending flips before emitting synchronous flips. + + The assumption is that synchronous flips are not isolated usually, and waiting + for all of them could result in stalling the pipeline for long periods of time. + + Also use i915_emit_mi_flush() instead of an old-fashioned way to achieve the + same effect. + +commit fd0fed3f1e10d7ff1205a485621767b650c6f5ff +Author: Michel Dänzer +Date: Wed Feb 28 12:33:56 2007 +0100 + + i915: Fix test for synchronous flip affecting both pipes. + +commit 1a0d890a42bee78177ad45d5e5956d2c3c4fcdc7 +Author: Michel Dänzer +Date: Thu Feb 22 17:21:18 2007 +0100 + + i915: Add support for scheduled buffer swaps to be done as flips. + + Unfortunately, emitting asynchronous flips during vertical blank results in + tearing. So we have to wait for the previous vertical blank and emit a + synchronous flip. + +commit 5a40c043ccf965b1c3c74c80828090d2bc4438d4 +Author: Michel Dänzer +Date: Thu Feb 22 17:19:30 2007 +0100 + + Add DRM_VBLANK_FLIP. + + Used to request that a scheduled buffer swap be done as a flip instead of a + blit. + +commit 6f89584e136211d7c4c69d88005f0e70393274f8 +Author: Michel Dänzer +Date: Mon Feb 19 12:27:54 2007 +0100 + + i915: Improved page flipping support, including triple buffering. + + Pages are tracked independently on each pipe. + + Bump the minor version for 3D clients to know page flipping is usable, and + bump driver date. + +commit 34aa3393d04da1201815143c92a5bef83bf0d585 +Author: Michel Dänzer +Date: Fri Feb 2 17:28:43 2007 +0100 + + i915: Page flipping enhancements. + + Leave it to the client to wait for the flip to complete when necessary, + but wait for a previous flip to complete before emitting another one. This + should help avoid unnecessary stalling of the ring due to pending flips. + + Call i915_do_cleanup_pageflip() unconditionally in preclose. + +commit 078e4307266bcfdc7d4be1a70df65d35dda4d0d3 +Author: Michel Dänzer +Date: Fri Feb 2 17:23:42 2007 +0100 + + i915: Unify breadcrumb emission. + +commit 85ee2a8d044cd4d8de4894a794151af9471648e3 +Author: Thomas Hellstrom +Date: Sat Feb 10 12:06:36 2007 +0100 + + Various bugfixes. + +commit 53aee3122a1821b8ca24ed2bc5c1940cb0f2ff8e +Author: Thomas Hellstrom +Date: Fri Feb 9 16:36:53 2007 +0100 + + I915 accelerated blit copy functional. + Fixed - to System memory copies are implemented by + flipping in a cache-coherent TTM, + blitting to it, and then flipping it out. + +commit 57df3980724d3da446c4576b3fadcd89c5da414e +Author: Thomas Hellstrom +Date: Fri Feb 9 12:43:18 2007 +0100 + + Reinstate some LRU handling. + +commit d32b21e016c371b8676f42da5fc3aeded039a6c8 +Author: Thomas Hellstrom +Date: Fri Feb 9 00:11:53 2007 +0100 + + Remove some code that should have gone in + commit 6a49d9a8abd9f168211017c2d585d0d64e89c530 + +commit 99acdaee482fc8a2fc6718317e2f546401e93739 +Author: Thomas Hellstrom +Date: Fri Feb 9 00:07:29 2007 +0100 + + Fix copyright statements. + +commit 6a49d9a8abd9f168211017c2d585d0d64e89c530 +Author: Thomas Hellstrom +Date: Fri Feb 9 00:02:02 2007 +0100 + + Fix evict_mutex locking range. + Implement unmappable buffers. (fault moves them to mappable when needed). + Various bugfixes. + +commit b2bcbf874b0f26ca0c490fb0453bef64ce6d9dd7 +Author: Thomas Hellstrom +Date: Thu Feb 8 21:28:33 2007 +0100 + + Add an accelerated buffer copy cleanup helper. + Export helper functions and make some important buffer-object functions non-static. + Add an i915 accelerated blit buffer move for pci memory buffers. + +commit a0ed808d05a7965366e329a6e8f4e538350b9c23 +Author: Thomas Hellstrom +Date: Thu Feb 8 19:06:39 2007 +0100 + + Don't create a ttm just to copy from. + +commit bf8f46d4c64eb5b66814223f7e5ddb8d8e7a555e +Author: Thomas Hellstrom +Date: Thu Feb 8 18:59:02 2007 +0100 + + Fix mm_block leak. + Some other minor fixes. + +commit e4b2da440699f581a8779ea8cb9e99e4c903e6a7 +Author: Thomas Hellstrom +Date: Thu Feb 8 16:21:38 2007 +0100 + + A minor function interface change and some memcpy bugfixing. + + Hooray!! it sort of works with a fixed AGP area as faked VRAM. + +commit 1257907fa9a24de7aa95485e1b3ab509fdc4d4e6 +Author: Thomas Hellstrom +Date: Thu Feb 8 13:29:08 2007 +0100 + + Simplify external ttm page allocation. + Implement a memcpy fallback for copying between buffers. + +commit 09984ad77bdeca0e9d87b1fe2be1489205fda297 +Author: Thomas Hellstrom +Date: Thu Feb 8 11:55:24 2007 +0100 + + Update memory compatibility tests. + Now only pinned buffers are broken. + +commit 898aca1a66d5e685a01944f92d572641b7980c85 +Author: Eric Anholt +Date: Tue Jan 23 08:34:25 2007 +0800 + + Warning fix: correct type of i915_mmio argument. + +commit ef9a9d3cd1fb6f7def03ddea69af3db8502d8eb9 +Author: Eric Anholt +Date: Tue Jan 23 08:19:43 2007 +0800 + + Define __iomem for systems without it. + +commit 8918748058bc1aff64298855cde09512e2128367 +Author: Eric Anholt +Date: Tue Jan 23 08:05:36 2007 +0800 + + Add chip family flags to i915 driver, and fix a missing '"' in mach64 ID list. + +commit c1fbd8a56653b91af57a408bbcf20a760a2bd8c8 +Author: Thomas Hellstrom +Date: Wed Feb 7 17:25:13 2007 +0100 + + Checkpoint commit. + Flag handling and memory type selection cleanup. + glxgears won't start. + +commit af24465b2eddfcc5296edc830ea5ed86065a4abd +Author: Thomas Hellstrom +Date: Wed Feb 7 12:52:23 2007 +0100 + + Fix a stray unlock_kernel() in drm_vm.c + Add a file for memory move helpers, drm_bo_move.c + Implement generic memory move. + Cached, no_move and unmapped memory temporarily broken. + +commit 71b9e876f99db219fcbf4e3ab977b64b068cc2b4 +Author: Thomas Hellstrom +Date: Tue Feb 6 16:59:45 2007 +0100 + + Simplify pci map vs no pci map choice. + +commit 40ce53dfde11f84d7bf8db5db93fb73715b2e96e +Author: Thomas Hellstrom +Date: Tue Feb 6 15:56:43 2007 +0100 + + Implement a drm_mem_reg_t substructure in the buffer object type. + +commit 609e3b037526021d20c7cc18b7fed1152206dc68 +Author: Thomas Hellstrom +Date: Tue Feb 6 14:20:33 2007 +0100 + + Implement a policy for selecting memory types. + +commit 17985f07d68322519919a7f629a6d2d9bf3916ed +Author: Stephane Marchesin +Date: Tue Feb 6 01:17:32 2007 +0100 + + nouveau: more work on the nv04 context switch code. + +commit 2d962332dea5ed328ae45c6ef7298ea15216b635 +Author: Thomas Hellstrom +Date: Mon Feb 5 16:13:32 2007 +0100 + + i915: Add copy-blit operation. + +commit 8c663b4e56b45d377a5a0fed4318a129fc1233fa +Author: Stephane Marchesin +Date: Sat Feb 3 06:13:27 2007 +0100 + + nouveau: and of course, I was missing the last nv04 piece. + +commit ebf22aed9aa56e8ba00b5d3d1d2ca4600e5f1ec5 +Author: Stephane Marchesin +Date: Sat Feb 3 06:02:12 2007 +0100 + + nouveau: add missing nv04_graph.c symlink. + +commit 0c13657c33f282233b9f4bb397acb99c4cd65919 +Author: Stephane Marchesin +Date: Sat Feb 3 06:00:29 2007 +0100 + + nouveau: plugin the nv04 graph init function. + +commit 7ab9e7f36f5fb58652f915a0839a167c6206743a +Author: Stephane Marchesin +Date: Sat Feb 3 05:56:42 2007 +0100 + + nouveau: cleanup the nv04 pgraph save/restore mechanism. + +commit d69902db3b1f82dd35f5bbb3327bdf836961850c +Author: Stephane Marchesin +Date: Sat Feb 3 05:25:36 2007 +0100 + + nouveau: fix nv04 graph routines for new register names. + +commit 5a072f32c8f941d1ef301811881e8c89c8d8a5f1 +Author: Stephane Marchesin +Date: Sat Feb 3 04:57:06 2007 +0100 + + nouveau: rename registers to their proper names. + +commit e64dbef911cd739ba5c4d26493dfef6766ff83fd +Author: Stephane Marchesin +Date: Mon Jan 29 04:03:59 2007 +0100 + + nouveau: add NV04 registers required for PGRAPH context switching. + +commit 55f7859a256814e3843790d88b275150f6161a26 +Author: Matthieu Castet +Date: Fri Feb 2 23:01:03 2007 +0100 + + nouveau: nv ctx switch opps the size of array was wrong + +commit 63cf3b3da7ee039c98c793d31ea1aa586a069c43 +Author: Matthieu Castet +Date: Fri Feb 2 20:08:33 2007 +0100 + + nouveau: nv10 ctx switch, some regs are nv17+ only + +commit 63f2abd721c40f1cddae555c79b4ab4c55aae006 +Author: Thomas Hellstrom +Date: Fri Feb 2 19:49:11 2007 +0100 + + Make also later kernels work with buffer object vm + and clean up some function names. + +commit c269d560e4d71448cfc9c2ea51eee3d5feafaad4 +Author: Thomas Hellstrom +Date: Fri Feb 2 14:47:44 2007 +0100 + + Make vm handle buffer objects instead of ttm objects. + Remove ttm objects. + Make vm aware of PCI memory type buffer objects. + (Only works for pre 2.6.16 kernels for now). + +commit 8c17edf23c04371e513b29ad14eca0d2bf32b812 +Author: Michel Dänzer +Date: Thu Jan 18 10:34:59 2007 +0100 + + Make git ignore generated config.h.in. + +commit 6c04185857694b2293046b7ea1d4515404a740c3 +Author: Thomas Hellstrom +Date: Fri Feb 2 09:15:44 2007 +0100 + + via: Try to improve command-buffer chaining. + + Bump driver date and patchlevel. + +commit 70bba11bc7bbf0cfb028521c1b6676ed0962c317 +Author: Thomas Hellstrom +Date: Fri Feb 2 09:20:16 2007 +0100 + + Disable AGP DMA for chips with the new 3D engine. + +commit 77a6d8ae938e14051da3039414b64ff060746de6 +Author: Wang Zhenyu +Date: Fri Feb 2 09:52:37 2007 +0800 + + Add Intel 965GM chipset support + +commit 9907b32c6790f6e9dad42cdce60e3b1b457233e5 +Author: Wang Zhenyu +Date: Fri Feb 2 09:51:38 2007 +0800 + + Revert origin crestline pci id patch + +commit dd733dea3856e7ddbba7c4c3928ccaba909b4535 +Author: Thomas Hellstrom +Date: Thu Feb 1 13:19:05 2007 +0100 + + Fix missing ttm_open_vma call from previous commit. + Honour the ttm backend cant-use-aperture flag. + +commit 9677c5ecc6b97ef75b3141b671fb5cfbbf8a3fa8 +Author: Thomas Hellstrom +Date: Thu Feb 1 10:53:07 2007 +0100 + + Prepare for removal of the ttm_object type. + +commit 333c6af47a906461678b5a8b2af415936d30babc +Author: Thomas Hellstrom +Date: Thu Feb 1 00:38:57 2007 +0100 + + Protect drm_mmap against disappearing maps. + + The map lists and hash tables are protected using dev->struct_mutex, + but drm_mmap strangely never locked this mutex. + +commit 3024f23c6551e219b0236041a8205bf1bc60ed94 +Author: Thomas Hellstrom +Date: Wed Jan 31 14:50:57 2007 +0100 + + memory manager: Make device driver aware of different memory types. + + Memory types are either fixed (on-card or pre-bound AGP) or not fixed + (dynamically bound) to an aperture. They also carry information about: + + 1) Whether they can be mapped cached. + 2) Whether they are at all mappable. + 3) Whether they need an ioremap to be accessible from kernel space. + + In this way VRAM memory and, for example, pre-bound AGP appear + identical to the memory manager. + + This also makes support for unmappable VRAM simple to implement. + +commit 07fabc3fd8f00006e6117081f5183a826a6d2bbb +Author: Thomas Hellstrom +Date: Wed Jan 31 11:41:44 2007 +0100 + + Make the utility runnable also for normal users. + +commit 36d50687dd88e0e42cf2adfd8ff81a160765e12a +Author: Thomas Hellstrom +Date: Wed Jan 31 11:03:53 2007 +0100 + + Fix an error-path oops. + +commit d399fcf46f3b9eab0eb37aefc8e593f8a711d1ef +Author: Thomas Hellstrom +Date: Tue Jan 30 16:20:23 2007 +0100 + + Add a buffer object transfer function. + Creates a placeholder for the old buffer contents + when it is transfered to / from static memory like VRAM. + +commit 0932269656825397b4b9e1bfdfc75254f544c96f +Author: Thomas Hellstrom +Date: Tue Jan 30 14:42:27 2007 +0100 + + Indent according to xorg rules. + +commit 2bc925430b522eda596499561eba6fb61278ae8c +Author: Thomas Hellstrom +Date: Tue Jan 30 14:41:02 2007 +0100 + + Add license header. + +commit 9968a21be11a3d64dac9daab768a11d729cdd77c +Author: Thomas Hellstrom +Date: Tue Jan 30 14:38:49 2007 +0100 + + Add some relevant tests for the new buffer object interface. + +commit c01fe2cdd4a86f37c1a9bce344b41b6432dbe427 +Author: Thomas Hellstrom +Date: Tue Jan 30 12:56:51 2007 +0100 + + Add the ttmtest test utility. + +commit 9bbdc0fb10101586fb2bbddeb700e3241a993b1f +Author: Thomas Hellstrom +Date: Tue Jan 30 12:33:46 2007 +0100 + + Clean up buffer object destruction somewhat. + +commit 9a654e71bda3530f6d18d115729af27cc15033de +Author: Thomas Hellstrom +Date: Mon Jan 29 13:36:17 2007 +0100 + + Use pre-defined list_splice function. + +commit 45418bb1b1a0fac38f0dda7e29022bfb4cae3d03 +Author: Thomas Hellstrom +Date: Mon Jan 29 13:19:20 2007 +0100 + + s/buf/bo/ for consistency. + +commit 1e4c7d69f5b55f5299e5b0c220e4af1dfb21f69d +Author: Thomas Hellstrom +Date: Mon Jan 29 13:11:55 2007 +0100 + + Some cleanup. A buffer object should only have one active memory type. + +commit ee4ac5c897faa499ad24c148b4f065bc770b529d +Author: Ben Skeggs +Date: Sun Jan 28 23:48:33 2007 +1100 + + nouveau: determine chipset type at startup, instead of every time we use it. + +commit c744bfde2de1713f0c15a185538a003d64c52d80 +Author: Matthieu Castet +Date: Fri Jan 26 21:57:44 2007 +0100 + + make works ctx switch on nv10. + +commit 9c03ca81e75c1c0749b719bb62ae56b99c9ff2ae +Author: Patrice Mandin +Date: Fri Jan 26 21:05:59 2007 +0100 + + nouveau: oops, wrong indexing in nv17 regs + +commit 5534c90ff39bf2bd41daca024d5b19889e78b1a0 +Author: Patrice Mandin +Date: Fri Jan 26 19:54:35 2007 +0100 + + nouveau: read gpu type once + +commit 05d3ed472e6ab5cfa7741e523bdb3992591ecc7e +Author: Patrice Mandin +Date: Fri Jan 26 19:25:49 2007 +0100 + + nouveau: only save/restore nv17 regs on nv17,18 hw + +commit e7ba15a00369d85d3abeb42d95fe76dc40a544a8 +Author: Patrice Mandin +Date: Fri Jan 26 19:24:34 2007 +0100 + + nouveau: add extra pgraph registers + +commit d4c9f135b56eee826f0d5eaf41f2088a861da590 +Author: Patrice Mandin +Date: Fri Jan 26 18:10:31 2007 +0100 + + nouveau: add some nv10 pgraph defines + +commit 6d9ef1a960a76410e816425d8a53fb96cf2b871d +Author: Patrice Mandin +Date: Thu Jan 25 23:06:48 2007 +0100 + + nouveau: simplify and fix BIG_ENDIAN flags + +commit 3886b7e62925a6eb7ca05e3ab23f3d4781439d06 +Merge: 9f5cda4 90ae39d +Author: Nian Wu +Date: Thu Jan 25 13:30:46 2007 -0800 + + Merge branch 'master' into crestline + +commit 582637641abbadc75795ac7e0671e1a5e3b41880 +Author: Thomas Hellstrom +Date: Thu Jan 25 14:26:58 2007 +0100 + + Remove a scary error printed when we were leaking memory caches. + + We don't use memory caches anymore... + + Fix memory accounting initialization to only use low or DMA32 memory. + +commit 90ae39d2f07058dd128d2fb19ffad712ee75c9a0 +Author: Ben Skeggs +Date: Thu Jan 25 11:11:01 2007 +1100 + + nouveau: nv4c default context + +commit aa7266385e0af26b9225f7dba0643867ac4e231a +Author: Ben Skeggs +Date: Thu Jan 25 08:16:23 2007 +1100 + + nouveau: always print nsource/nstatus regs on PGRAPH errors + +commit 7d4e6b1445d4c734f1dd6070ffa041c42e649e91 +Author: Zou Nan hai +Date: Wed Jan 24 16:33:21 2007 +0800 + + vblank interrupt fix + +commit 19ba0749384994662e0d6167c70cc6fbd78eb0ff +Author: Ben Skeggs +Date: Fri Jan 19 15:41:51 2007 +1100 + + nouveau: fix getparam from 32-bit client on 64-bit kernel + +commit 4291df69bd03f71cbbe91b7b1ad82b580e1d362a +Author: Ben Skeggs +Date: Sun Jan 14 10:42:58 2007 +1100 + + nouveau: re-add 6150 Go pciid (0x0244) + +commit a40de938fa5cf98f01d569e39fe3931d545c357a +Author: Jeremy Kolb +Date: Thu Jan 18 21:39:36 2007 -0500 + + nouveau: cleanup nv30_graph.c + +commit ab72a7714e4e9b87cc93887d1978f1c533255566 +Author: Jeremy Kolb +Date: Thu Jan 18 21:39:09 2007 -0500 + + nouveau: Remove write to CTX_SIZE. This gives us proper nv3x PGRAPH switching. + +commit bd0418cb01232d7529ecb0f515aa9b6d6804a3ac +Author: Dave Jones +Date: Thu Jan 18 01:28:49 2007 -0500 + + add missing quadro id + +commit 78a4f5c1bc37cbc581191f47b8b19250bfb86c1e +Author: Jeremy Kolb +Date: Wed Jan 17 08:46:59 2007 -0500 + + nouveau: Try to get nv35 pgraph switching working. Doesn't quite yet. + + Hook into nv20 pgraph switching functions (they're identical for nv3x). + Actually call nv30_pgraph_context_init so the ctx_table is allocated. + + Thanks to Carlos Martin for the help. + +commit 9f5cda44dbf5b8f3c7cc00b8a58eee2690a864e6 +Merge: 6ac742d fdbc34f +Author: Xiang, Haihao +Date: Tue Jan 16 09:49:20 2007 +0800 + + Merge branch 'master' into crestline + +commit fdbc34fab03eba8d257e14c6d557ffed5fa32c2d +Author: Matthieu Castet +Date: Sun Jan 14 20:04:20 2007 +0100 + + nouveau: opps nv20 ctx ramin size was wrong + +commit 06cd15559525cd023fe347fcb8e918c6418b938e +Author: Matthieu Castet +Date: Sat Jan 13 23:30:43 2007 +0100 + + nouveau: opps restored the wrong channel + +commit f04347f371c6c9c3a47550c6b7d26b7bd5629c85 +Author: Matthieu Castet +Date: Sat Jan 13 23:19:41 2007 +0100 + + nouveau: nv20 graph ctx switch. + + Untested... + +commit cd5f543b2f3d6dd4c45f676c6fb9848b4d8a1c33 +Author: Matthieu Castet +Date: Sat Jan 13 21:43:47 2007 +0100 + + nouveau: first step to make graph ctx works + + It is still not working, but now we could use some 3D commands + without needed to run nvidia blob before. + +commit 4ae64a1b583be3ef13338e8029e7e9efe21f2c2f +Author: Matthieu Castet +Date: Sat Jan 13 21:41:33 2007 +0100 + + nouveau: add and indent pgraph regs + +commit 1967aa82cfc18c422360ef544b66e316d98f53a1 +Author: Stephane Marchesin +Date: Sat Jan 13 12:32:45 2007 +0100 + + nouveau: Oops, fix the nv04 RAMFC_DMA_FETCH value. + +commit 69a98d89d5204ec224703bddc3582bb854716a20 +Author: Dave Airlie +Date: Sat Jan 13 08:43:15 2007 +1100 + + nouveau: add missing symlink + +commit 1bad7e0d02ff82227c34b853e06ca25a80193347 +Author: Matthieu Castet +Date: Fri Jan 12 20:30:14 2007 +0100 + + nouveau : remove useless init : we clear RAMIN before + +commit 9d3deddc4a8f12b9493858a529570e77f8362ad1 +Author: Haihao Xiang +Date: Fri Jan 12 11:24:14 2007 -0800 + + Delay for a usec while spinning waiting for ring buffer space. + + This means the loop will wait up to ~10ms for ring buffer space to become + available, rather than just however long it takes to check the space 10000 + times. This matches other drivers' behavior when waiting for ring buffer/fifo + space. + +commit 4297a83b48664b2b6a6dc0a72a4d11b043f34778 +Author: Jeremy Kolb +Date: Fri Jan 12 00:13:05 2007 -0500 + + nouveau: get nv30 context switching to work. + + * Pulled in some registers from nv10reg.h. Needed for context switching. + * Filled in nv30 graphics context (based on nv40_graph.c). + * Figure out nv30 context table, set up on context creation. Allows the cards automatic switching to work. + +commit 8ff026723cf170034173052a58c650c8c1f28c0b +Author: Michel Dänzer +Date: Thu Jan 11 09:02:07 2007 +0100 + + radeon: Fix u32 overflows when determining AGP base address in card space. + + The overflows could lead to the AGP aperture overlapping the framebuffer area + in the card's address space when the latter is located at the very end of the + 32 bit address space, which would result in a freeze on X server startup, + probably because the card read commands from the framebuffer instead of from + AGP. + + See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=392915 . + +commit 125f3ff36796c8d28c29e960247fdd42d4cd877c +Author: Dave Airlie +Date: Wed Jan 10 15:19:47 2007 +1100 + + Revert "nouveau: Fill in context_init for nv10-nv3x." + + This reverts ac076cb9aff976e8fae567cfa82a898bfc2712e8 commit. + + Well it didn't do anything interesting... + +commit ac076cb9aff976e8fae567cfa82a898bfc2712e8 +Author: Jeremy Kolb jkolb@brandeis.edu +Date: Tue Jan 9 23:12:37 2007 -0500 + + nouveau: Fill in context_init for nv10-nv3x. + + Fill in the context with the values from PFIFO_CACH1. This should work from nv10 through the nv30 series. + +commit ec12209c763d0ea258b3e1e567bf097f9e918265 +Author: Stephane Marchesin +Date: Wed Jan 10 04:42:09 2007 +0100 + + nouveau: Don't use DRIVER_USE_MTRR, we already setup our own mtrr over vram. + +commit f6ba3b2603c58b9f5624fd4a97511b2913ec7866 +Author: Dave Airlie +Date: Tue Jan 9 15:51:29 2007 +1100 + + ttm: make ttm alloc/free into alloc_pages/free_pages + + Add a vmalloc flag to the page flags + +commit a70aedd5fc78a162aeb681d47a75edcc831ed3f3 +Author: Dave Airlie +Date: Tue Jan 9 13:38:36 2007 +1100 + + novueau: try resource 3 if resource 2 is 0 length + + This happens on my NV43 PPC + +commit deba42ef32da0c2d0977cdeb639420e1ac1b7f2b +Author: Stephane Marchesin +Date: Mon Jan 8 20:55:57 2007 +0100 + + nouveau: fix nv4a context size. + +commit 22821cf01d6509b7c074e42ae0ef9567e48e97d2 +Author: Dave Airlie +Date: Mon Jan 8 22:26:35 2007 +1100 + + add export symbol for memory manager + +commit 6ac742d95dfd717ae730035da34624682c652b7b +Author: Keith Packard +Date: Sun Jan 7 23:05:39 2007 -0800 + + Align whitespace with master + +commit c5aaf7648df82665851c9e67f5509b427ca34c8e +Merge: 63c0f39 d0080d7 +Author: Keith Packard +Date: Sun Jan 7 22:37:40 2007 -0800 + + Merge branch 'master' into crestline + + Conflicts: + + shared-core/i915_drm.h + + Whitespace change only + +commit d0080d71b9f3df0d4f743324b7e8f1ce580bdcaf +Author: Stephane Marchesin +Date: Mon Jan 8 05:02:40 2007 +0100 + + nouveau: nv4a context support. + +commit 6eaa1272b4159a547d6da21f14cbcc5b5d0f600c +Merge: 1f0f7d7 5bf60c9 +Author: Stephane Marchesin +Date: Mon Jan 8 03:50:34 2007 +0100 + + Merge branch 'master' of git+ssh://marcheu@git.freedesktop.org/git/mesa/drm + +commit 5bf60c9d6c2e04a65085a0a332de24b06043fcb8 +Author: Dave Airlie +Date: Mon Jan 8 13:09:12 2007 +1100 + + i830: complete fix for i830 maps + +commit 26bf6d9b5b5be19973f6da4f5ed292c7f83de099 +Author: Ben Skeggs +Date: Mon Jan 8 12:50:44 2007 +1100 + + nouveau: oops + +commit 128d87a3dd26b1c633dac3fe0f0d5e9190f11d53 +Author: Ben Skeggs +Date: Mon Jan 8 12:47:22 2007 +1100 + + nouveau: nv43 context stuff + +commit b147c3926352e4dcb9dbf53b8b12baae8ce34254 +Author: Christoph Hellwig +Date: Mon Jan 8 10:55:49 2007 +1100 + + drm: remove drm_follow_page, and drm_ioremap and ioremapfree + + This comes from the Re: [patch] paravirt: isolate module ops on lkml + It needs some testing, please report any regressions caused. + + Signed-off-by: Dave Airlie + +commit fe5770b89e57c669a946dea86a58b17387bf9cf4 +Author: Dave Airlie +Date: Mon Jan 8 22:27:11 2007 +1100 + + fixup i810/i830 to use drm_core_ioremap instead of drm_ioremap + +commit 1f0f7d7a180af088d6c79d55da04402f0eff0416 +Author: Stephane Marchesin +Date: Mon Jan 8 00:11:39 2007 +0100 + + nouveau: fix a stupid bug from me. + +commit faa46122993bc5970b3d67933bd81d863a3c4762 +Author: Ben Skeggs +Date: Mon Jan 8 00:37:39 2007 +1100 + + nouveau: avoid allocating vram that's used as instance memory. + +commit cd3711455e7e5e69448b4805bddc2adcd480c6d5 +Author: Ben Skeggs +Date: Sun Jan 7 23:56:45 2007 +1100 + + nouveau: map pci resource 2 on >=nv40 + +commit 31daf669624c35bdf686aaeea7d7844d0cb5141a +Author: Keith Packard +Date: Sat Jan 6 17:40:50 2007 -0800 + + Revert i915 drm driver name to i915; miniglx doesn't work otherwise + + Yes, this driver supports the new memory manager, that is indicated by the + version number being >= 1.7. + +commit 2851c9f5c6c6847151d011d68ec00897ac9d9634 +Author: Wang Zhenyu +Date: Mon Dec 4 15:48:04 2006 +0800 + + Bump i915 minor for ARB_OC ioctl + +commit f7180349fde6947e229ecde17215c2984e6e883b +Author: Zou Nan hai +Date: Mon Dec 4 15:48:04 2006 +0800 + + i915: ARB_Occlusion_query(MMIO ioctl) support. + + This adds a new ioctl for passing counter information from the chip back to + applications, these counters include the data needed to perform OC. + +commit 1f1714cf3dd24ea4109722ea2b47bcf4725f27ea +Author: Ben Skeggs +Date: Sat Jan 6 18:05:21 2007 +1100 + + nouveau: get c51 doing glxgears without the binary driver's help. + +commit dbb0d979cc6c4e1f444cdbbf6dc3571c3818ea39 +Author: Ben Skeggs +Date: Sat Jan 6 17:50:00 2007 +1100 + + nouveau: Use PMC_BOOT_0 to determine which ctx_voodoo to load. + +commit 528ab8ce4038397c043b05a46f95c666a985f7a3 +Author: Stephane Marchesin +Date: Fri Jan 5 20:59:45 2007 +0100 + + nouveau: oops, we don't need OS_HAS_MTRR actually. + +commit d99c7c27e2df1a7093f3d2f5c7d196f58bfe1647 +Merge: 025f281 0f95ddc +Author: Stephane Marchesin +Date: Fri Jan 5 20:50:46 2007 +0100 + + Merge branch 'master' of git+ssh://marcheu@git.freedesktop.org/git/mesa/drm + +commit 025f281bbfe81960e8c60234f5eafd37cbe2d881 +Author: Stephane Marchesin +Date: Fri Jan 5 20:49:34 2007 +0100 + + nouveau: Add an mtrr over the whole FB + +commit 0f95ddc42892abdbc1f111b6b105f2ef4ed2b05f +Merge: 9d167f1 f80659b +Author: Matthieu Castet +Date: Fri Jan 5 19:41:12 2007 +0100 + + Merge branch 'master' of git+ssh://matc@git.freedesktop.org/git/mesa/drm/ + +commit 9d167f1f4bc89b784248d22bc95dfc15a72d0244 +Author: Matthieu Castet +Date: Fri Jan 5 19:40:11 2007 +0100 + + Add basic pgraph context for nv10. + It only fake a context switch : pgraph state are not save/restored. + +commit f80659bc2967dbed4aed0d44a550bb4a9e4569b5 +Author: Stephane Marchesin +Date: Fri Jan 5 19:37:06 2007 +0100 + + Cleanup the nv04 fifo code a bit. + +commit 4fe2858f53c6ea542cd81961ebdad118acfc8f32 +Author: Michel Dänzer +Date: Tue Jan 2 10:05:48 2007 +0100 + + i915: Fix a DRM_ERROR that should be DRM_DEBUG. + + It would clutter up the kernel output in a situation which is legitimate before + X.org 7.2 and handled correctly by the 3D driver. + +commit 176b62991ad59e9a03a8416db8945d5e37ab0406 +Author: Michel Dänzer +Date: Tue Jan 2 10:03:56 2007 +0100 + + Make git ignore Emacs style backup files and cscope files. + +commit 972074b5d618575d9291de50ffe12f2f4ca01a20 +Author: Michel Dänzer +Date: Tue Jan 2 10:02:44 2007 +0100 + + linux-core: Make git ignore generated module symbol version files. + +commit 91855bb2540bbb824d4d5d437f3eb2d5d06c11ba +Author: Ben Skeggs +Date: Tue Jan 2 16:35:00 2007 +1100 + + nouveau: oops, forgot to free RAMIN.. + +commit 861017e6d50f5724c179717f995322c498ee15db +Author: Ben Skeggs +Date: Tue Jan 2 15:56:10 2007 +1100 + + nouveau: Hookup nv40_graph_init. + + Now I can get 3D + working grctx switching on my NV40 without + the binary driver initialising the card first. However, this + change also breaks 3D on my C51 even *with* the binary driver's + help. So, it's likely that the weird voodoo is card-specific. + +commit 41da9fd2e59b2af295c8f345586030e5a70d7a83 +Author: Ben Skeggs +Date: Tue Jan 2 15:08:04 2007 +1100 + + nouveau: Hook up grctx code for NV4x. + + This is enough to get grctx switching going on my NV40 and C51 after + the binary driver has initialised the card first. + + Bumping the drm patchlevel because the ddx needs some modifications to + have NV4x work at all with these changes. + +commit 0e0d954584ba95656663efa3daf6e191e521040b +Author: Ben Skeggs +Date: Tue Jan 2 14:52:43 2007 +1100 + + nouveau: Add nv40-specific PGRAPH code, not hooked up yet. + +commit 2c3bc69ba2b60e4f89b93332fa8da758170b2285 +Author: Ben Skeggs +Date: Tue Jan 2 14:41:34 2007 +1100 + + nouveau: Only clobber PFIFO if no channels are already alloc'd + + With this change the GPU is responsible for doing the channel switch + itself. This is needed for the upcoming NV4x PGRAPH context work as + we don't yet know enough to manually swap PGRAPH contexts. + +commit 2dcbf6a59918761cffb27e027b1235c551ed03dd +Author: Dave Airlie +Date: Mon Jan 1 11:30:38 2007 +1100 + + make build against 2.6.20 hopefully + +commit 87faf62fae711c8337793abaf0f529f2660245db +Author: Dave Airlie +Date: Mon Jan 1 11:22:35 2007 +1100 + + fixup permission along line of kernel + +commit a16a8a47cdb04e29f5d8ed05403f21714f7aaf9d +Author: Thomas Hellstrom +Date: Thu Dec 28 22:17:08 2006 +0100 + + Add some new via chipsets. + Disable 3D functionality and AGP DMA for chipsets with the DX9 3D engine. + +commit 7859bd61d3d5b5dd69ce978adeae91eaa1e533aa +Author: Thomas Hellstrom +Date: Wed Dec 27 19:46:46 2006 +0100 + + Leftover from previous commit. + +commit 2980ec22a165bc71add7464e28a2e56b5c971d20 +Author: Thomas Hellstrom +Date: Wed Dec 27 19:38:33 2006 +0100 + + Allow for non-power-of-two texture pitch alignment. + +commit 975136d6e5adc6b6a03719499cf39fbd3f67dc90 +Author: Thomas Hellstrom +Date: Wed Dec 27 15:32:09 2006 +0100 + + Proper allocation of AGP pages for ttms. + +commit c38ede06670b47620bbce33c5a4affd063769475 +Author: Ben Skeggs +Date: Wed Dec 27 01:58:57 2006 +1100 + + nouveau: return the *actual* type of memory alloc'd to userspace + +commit 9e019df75764a7ce79266ceb058307336ddf00ef +Author: Ben Skeggs +Date: Tue Dec 26 23:30:26 2006 +1100 + + nouveau: Alloc cmdbuf for each channel individually + +commit 72cb361c5cbf4f0aeae25312369087b8a234bc5a +Author: Thomas Hellstrom +Date: Thu Dec 21 12:05:49 2006 +0100 + + Bug #9120. + Require at least agpgart version 0.102 for the AGP TTM backend. + This should hopefully avoid crashes when the wrong agpgart + driver is installed. + +commit ae5822561370b34808603820a063fc6e8b17dbe2 +Author: Thomas Hellstrom +Date: Thu Dec 21 10:40:25 2006 +0100 + + Improve memory manager accounting printout formatting. + +commit a467d248293f9384092ab39a9214fbf725d21927 +Author: Thomas Hellstrom +Date: Thu Dec 21 10:32:13 2006 +0100 + + Fix buggy aligned allocations. + +commit b7586ab539e5f8d16b473543ab829d0a4441f87c +Author: Ben Skeggs +Date: Thu Dec 21 17:43:48 2006 +1100 + + nouveau: save/restore endianness flag on FIFO switch + + This makes my G5 survive glxinfo and nouveau_demo - airlied + +commit 9acd4a13f2355e8f550669702a5c6db16cc14b0f +Author: Thomas Hellstrom +Date: Wed Dec 20 19:33:50 2006 +0100 + + Remove the stupid root_node field from the core memory manager. + +commit 672593f611df484af89e425ff5f1ea0ea074f2bb +Author: Thomas Hellstrom +Date: Wed Dec 20 14:40:36 2006 +0100 + + Replace vmalloc_32. + + The vmalloc_32 function together with the memset to clear + the new pages are replaced with a vmalloc_user. + + A pre-2.6.18 compat vmalloc_user is added. + + Please replace any breakage on machines with > 1GB of memory. + +commit 3b47b27558915a3a28591209e324b977e09d7c03 +Author: Thomas Hellstrom +Date: Wed Dec 20 13:04:21 2006 +0100 + + Some via PCI posting flushes. + +commit e5c4a26a29a9af301cb8b0aebbba84e70f995b83 +Merge: 3b7508d dc1b68a +Author: Dave Airlie +Date: Wed Dec 20 10:30:16 2006 +1100 + + Merge branch 'nouveau-1' + +commit dc1b68aacbfc8d53d78f7388e0e52da1747a1f71 +Author: Dave Airlie +Date: Wed Dec 20 10:29:43 2006 +1100 + + fixup symlinks via Makefile + +commit 744f9ac9c74f1571b54e08f9eaaaff22dd3230c8 +Author: Dave Airlie +Date: Wed Dec 20 10:28:55 2006 +1100 + + add nouveau symlinks via git + +commit 3b7508d1bf2c78f19d882beffa6d8b4f58bd19a8 +Author: Dave Airlie +Date: Wed Dec 20 10:22:43 2006 +1100 + + remove unused via/sis files from lk build + +commit 3b8e6ccd2573a027aa30c10d08253de1756540c2 +Author: Thomas Hellstrom +Date: Tue Dec 19 23:45:59 2006 +0100 + + Security fix. Zero pages before they are handed to user space. + + TTM pages were not cleared when allocated and handed to user space. + Sensitive information may leak. + +commit 72b5d1507a7e9c18fc0141c13819ea01c0813924 +Author: Thomas Hellstrom +Date: Tue Dec 19 23:23:17 2006 +0100 + + Security fix. Zero pages before they are handed to user space. + + Shared memory areas were not cleared when they are allocated and + handed to user space. Sensitive information may leak. + +commit 81251bf78f06dc26e26c3edb09639850371fe540 +Author: Thomas Hellstrom +Date: Tue Dec 19 23:14:11 2006 +0100 + + Reclaim buffers locked fixup. + + Avoid calling reclaim_buffers_locked if we don't have a + hardware lock. + + Improve reclaim_buffers_locked deadlock error formatting. + +commit 737c73d1a081823f5c95a6fd68173b56a304eae5 +Author: Dave Airlie +Date: Tue Dec 19 22:10:34 2006 +1100 + + add kcalloc compat for before 2.6.10 + +commit bc4c83573111361e9817d6a7414bd84f73ca7cce +Author: Dave Airlie +Date: Tue Dec 19 21:51:30 2006 +1100 + + remove do munmap 4 args + +commit 7458909beae274198ca2a29b510a808ce2feca0a +Author: Dave Airlie +Date: Tue Dec 19 21:48:18 2006 +1100 + + fixup i915 return values from kernel + +commit 98799f862e58e02ef07f0d0db0863e7c91c7e5b0 +Author: Dave Airlie +Date: Tue Dec 19 21:48:06 2006 +1100 + + fixup i915 defines in create script + +commit 6333bfdb58b300494b2ec6f7b5a3ea5b392a210a +Author: Dave Airlie +Date: Tue Dec 19 21:37:50 2006 +1100 + + fixup inclusion of agp.h + +commit aa07b2ab0e1c8a24fb1694ca3b13eb9ea4618fbe +Author: Dave Airlie +Date: Tue Dec 19 21:33:47 2006 +1100 + + remove drm pci from 2.5 days + +commit ff4b5ccdb4ef985c29e3f0d36e1c5094d02733e2 +Author: Dave Airlie +Date: Tue Dec 19 21:30:27 2006 +1100 + + remove legacy taskqueue code + +commit 86ff2aeb9bfea357d5748b3587ab224e813b37b6 +Author: Dave Airlie +Date: Tue Dec 19 20:29:03 2006 +1100 + + drm: remove all 2.4 support for drm development tree. + + Bye bye 2.4 you served us well.. + +commit 656c3a3737180d507bec352d56fbd9ef8b8a4feb +Author: Dave Airlie +Date: Tue Dec 19 18:27:20 2006 +1100 + + [SPARC]: Respect vm_page_prot in io_remap_page_range(). + + Make sure the callers do a pgprot_noncached() on + vma->vm_page_prot. + + Pointed out by Hugh Dickens. + + Signed-off-by: David S. Miller + +commit 0ab48b0841de138f4a428a6d32d3e4d3e552db53 +Author: Dave Airlie +Date: Tue Dec 19 18:24:44 2006 +1100 + + [PATCH] mm: incorrect VM_FAULT_OOM returns from drivers + + Some drivers are returning OOM when it is not in response to a memory + shortage. + + Signed-off-by: Nick Piggin + +commit 303307d25484f3f7179e6967697d28369a73dca9 +Author: Dave Airlie +Date: Tue Dec 19 18:03:20 2006 +1100 + + fix irq args compatiblity with pre 2.6.19 + +commit 1a3316f667963fca2f9a3bffcbee39cb01bf5f09 +Author: Dave Airlie +Date: Tue Dec 19 17:57:16 2006 +1100 + + use unifdef to clean up some code + +commit 07635f26a9310d2a4f0f65c5e773e6cfa92346bc +Author: Dave Airlie +Date: Tue Dec 19 17:57:01 2006 +1100 + + fix comment in r128 + +commit c52dea9a7d9ea978307441842b02c09c97720467 +Author: Dave Airlie +Date: Tue Dec 19 17:46:10 2006 +1100 + + fix some sizes in sis_drv.h + +commit 2253e334cc6f8cf7dff6dbe398dd9ecbbcb4c5fe +Author: Dave Airlie +Date: Tue Dec 19 17:42:45 2006 +1100 + + make sizeof match the copy struct + +commit 8cc82c50332d62d1c58bbc4f184b1ab4ecfa9efc +Author: Dave Airlie +Date: Tue Dec 19 17:22:04 2006 +1100 + + remove inline from large function + +commit 13659357adeae90dbeb1b3284f08667f6edd4cad +Author: Dave Airlie +Date: Tue Dec 19 17:03:42 2006 +1100 + + make a savage function static from kernel + +commit 6c8712ba8a3c3c2c2fd9dd1ff5ab71e30ecdf50a +Author: Dave Airlie +Date: Tue Dec 19 16:58:48 2006 +1100 + + use spin_lock_init in via dmablit + +commit cb280ad3c0b048fe5b024439af70e9fcc8d04269 +Author: Dave Airlie +Date: Tue Dec 19 16:58:27 2006 +1100 + + fix missing DRM_ERR from kernel + +commit 696f2bfbd1b6da73893bce082308a43878e6ab75 +Author: Dave Airlie +Date: Tue Dec 19 16:44:57 2006 +1100 + + Revert "drm: ioremap balanced with iounmap for drivers/char/drm" + + This reverts cc22cd8bde39f3e4be8ca9f726a773b0270ebdbc commit. + + I put this patch incorrectly in .. will fix now + +commit cc22cd8bde39f3e4be8ca9f726a773b0270ebdbc +Author: Dave Airlie +Date: Tue Dec 19 16:39:13 2006 +1100 + + drm: ioremap balanced with iounmap for drivers/char/drm + + ioremap must be balanced by an iounmap and failing to do so can result + in a memory leak. + + Tested (compilation only) to make sure the files are compiling without + any warning/error due to new changes + + Signed-off-by: Amol Lad + Signed-off-by: Dave Airlie + +commit b3c88d31e1e83458c6125a02b80f2e57ebcf750d +Author: Michael Buesch +Date: Fri Dec 15 14:24:24 2006 +0100 + + drm/linux-core: drmP.h compilation fix + + I need the following patch to fix compilation of + latest drm/linux-core on my ppc64 machine. + + /home/mb/develop/git/drm/linux-core/savage_bci.c: In function ‘savage_driver_firstopen’: + /home/mb/develop/git/drm/linux-core/savage_bci.c:587: error: ‘DRM_MTRR_WC’ undeclared (first use in this function) + /home/mb/develop/git/drm/linux-core/savage_bci.c:587: error: (Each undeclared identifier is reported only once + /home/mb/develop/git/drm/linux-core/savage_bci.c:587: error: for each function it appears in.) + /home/mb/develop/git/drm/linux-core/savage_bci.c: In function ‘savage_driver_lastclose’: + /home/mb/develop/git/drm/linux-core/savage_bci.c:664: error: ‘DRM_MTRR_WC’ undeclared (first use in this function) + + I looked at in-kernel drmP.h and it actually + has the same fix in it. + + Signed-off-by: Michael Buesch + +commit 38ed67196f4ba891568c5ff66e67ced341696eb9 +Author: Thomas Hellstrom +Date: Fri Dec 15 12:37:24 2006 +0100 + + Remove the memory caches for fence objects and memory manager nodes, + since the support for memory caches has gone from 2.6.20. + +commit aefc7a34431a8f1540b261e23d8b8d05d824b60a +Author: Michel Dänzer +Date: Thu Dec 14 19:31:56 2006 +0100 + + Unify radeon offset checking. + + Replace r300_check_offset() with generic radeon_check_offset(), which doesn't + reject valid offsets when the framebuffer area is at the very end of the card's + 32 bit address space. Make radeon_check_and_fixup_offset() use + radeon_check_offset() as well. + + This fixes https://bugs.freedesktop.org/show_bug.cgi?id=7697 . + +commit 1a40f3318c2660b83f64f7ed189d0f1692644ee4 +Author: Ben Skeggs +Date: Tue Dec 12 00:11:42 2006 +1100 + + Port remaining NV4 RAMIN access from the ddx into the drm. + + Should fix lockups seen on NV4 cards. + +commit 30acb90a6077798b1e0c4927273067500905d6d1 +Author: Stephane Marchesin +Date: Sun Dec 3 10:02:54 2006 +0100 + + Merge the pciid work. + Add getparams for AGP and FB physical adresses. + Fix the MEM_ALLOC issue properly. + Fix context switches for nv44. + Change the DRM version to 0.0.1. + +commit 74a92bbf6ea9b9766a2b827f22605559791569b8 +Author: Michel Dänzer +Date: Fri Dec 1 11:00:32 2006 +0100 + + Core build fix for BSD. + +commit a97bb85c2a6852e37ed560e6cbe1242e5f68ad8d +Author: Michel Dänzer +Date: Fri Dec 1 10:46:21 2006 +0100 + + Unshare drm_drawable.c again for now. + + The current version didn't build on BSD, where the new functionality isn't used + yet anyway. Whoever changes that will hopefully be able to make the OSes share + this file as well. + +commit 4a0e61d91013f88ca9555a280e2363bed14aec02 +Author: Michel Dänzer +Date: Sat Oct 21 16:14:20 2006 +0200 + + Track linux-core symlinks in git. + +commit 80d75cf6950acf1a00a031ceb6511b26dcc9b056 +Author: Ben Skeggs +Date: Thu Nov 30 10:31:42 2006 +1100 + + Use nouveau_mem.c to allocate RAMIN. + +commit b1a9a769711d83af8ab4c7ba4eec52a05a351533 +Author: Ben Skeggs +Date: Thu Nov 30 08:35:42 2006 +1100 + + Wrap access to objects in RAMIN. + + This will make it easier to support extra RAMIN in vram at a later point. + +commit f48a7685bd7a241001cec89acd8cce6cdefa941e +Author: Matthieu Castet +Date: Tue Nov 28 21:32:03 2006 +0100 + + For nv10, bit 16 of RAMFC need to be set for 64 bytes fifo context. + When cleaning a fifo, we shouldn't assume everybody use nv40 ;) + Fill DMA_SUBROUTINE fill correct value. + +commit ddcb994c3eac97e153922e2a4c71384404f68597 +Author: Michel Dänzer +Date: Thu Oct 26 13:15:30 2006 +0200 + + i915_vblank_tasklet: Try harder to avoid tearing. + + Previously, if there were several buffer swaps scheduled for the same vertical + blank, all but the first blit emitted stood a chance of exhibiting tearing. In + order to avoid this, split the blits along slices of each output top to bottom. + +commit 63c0f3946056d044b7c5688fa5cb670782212c77 +Author: root +Date: Mon Nov 27 15:55:32 2006 +0800 + + ARB_Occlusion_query(MMIO ioctl) support + + Zou Nan hai + +commit 0a364be289c27c81a1d157c94291bdf60b43299e +Merge: 5e7f584 adf71cb +Author: Stephane Marchesin +Date: Tue Nov 21 23:32:58 2006 +0100 + + Merge branch 'nouveau-1' of git+ssh://marcheu@git.freedesktop.org/git/mesa/drm into nouveau-1 + +commit adf71cb29b72b7d199f737b7b00eb7e80939ea4b +Author: Ben Skeggs +Date: Tue Nov 21 11:41:46 2006 +1100 + + Don't spam dmesg if PMC_INTSTAT is 0 + +commit 9ac7a8b0b4c0431b605c3f8d0b4a696903010c51 +Author: Ben Skeggs +Date: Sat Nov 18 10:09:29 2006 +1100 + + Only return FIFO number if the FIFO is marked as in use.. + +commit e9194dd1b068666dd94e73d95dc3cd031a89a6b7 +Author: Ben Skeggs +Date: Sat Nov 18 10:03:45 2006 +1100 + + Check some return vals, fixes a couple of oopses. + +commit 18bba3fa29187bb5122ed057989203dc05bc46aa +Author: Ben Skeggs +Date: Fri Nov 17 08:05:23 2006 +1100 + + Dump some useful info when a PGRAPH error occurs. + + The "channel" detect doesn't work on my nv40, but the rest + seems to produce sane info. + +commit 5e7f58474dbc766632a71c3eb556e24ead6c6afc +Merge: 5a0cdf7 2fd812f +Author: Stephane Marchesin +Date: Thu Nov 16 14:47:52 2006 +0100 + + Merge branch 'nouveau-1' of git+ssh://marcheu@git.freedesktop.org/git/mesa/drm into nouveau-1 + +commit 2fd812f8ef8adb09fd8d17cab869f9fc8b047d75 +Author: Ben Skeggs +Date: Tue Nov 14 09:00:31 2006 +1100 + + Completely untested NV10/20/30 FIFO context switching changes. + +commit 7002082944a69e1d11b0146b1176fd4293581dcd +Author: Ben Skeggs +Date: Tue Nov 14 08:11:49 2006 +1100 + + Restructure initialisation a bit. + + - Do important card init in firstopen + - Give each channel it's own cmdbuf dma object + - Move RAMHT config state to the same place as RAMRO/RAMFC + - Make sure instance mem for objects is *after* RAM{FC,HT,RO} + +commit 35bf8fb5cf8ab4d4e055cdef26531d86dbf822dc +Merge: 9ef4bbc 1123ab0 +Author: Ben Skeggs +Date: Tue Nov 14 04:52:08 2006 +1100 + + Merge branch 'nouveau-1' of git+ssh://git.freedesktop.org/git/mesa/drm into nouveau-1 + +commit 9ef4bbc66c1b055b4450ea9354945d784751cef7 +Author: Ben Skeggs +Date: Tue Nov 14 04:51:13 2006 +1100 + + Hack around yet another "X restart borkage without nouveau.ko reload" problem. + + On X init, PFIFO and PGRAPH are reset to defaults. This causes the GPU to + loose the configuration done by the drm. Perhaps a CARD_INIT ioctl a proper + solution to having this problem again in the future.. + +commit 5a0cdf7db34fc679160a58b257afc9e9b216907e +Merge: 1123ab0 d51e1bb +Author: Stephane Marchesin +Date: Sat Nov 11 01:57:05 2006 +0100 + + Merge branch 'master' of git+ssh://marcheu@git.freedesktop.org/git/mesa/drm into nouveau-1 + +commit 14e3f2711e90fe9a9c315d96abd4c7681539936a +Merge: e2ea721 d51e1bb +Author: Nian Wu +Date: Thu Nov 9 21:21:17 2006 -0800 + + Merge branch 'master' into crestline + + Conflicts: + + shared-core/i915_dma.c + +commit 1123ab089075af3141c794696ec394fa46b4353f +Author: Stephane Marchesin +Date: Fri Nov 10 02:18:38 2006 +0100 + + Fix memory detection on TNT2 M64/TNT2 vanta. + +commit d51e1bb56ca2f7858cdeac6f61a7b747c1e15b1e +Author: Dave Airlie +Date: Thu Nov 9 08:55:58 2006 +1100 + + libdrm: add drmOpenOnce + drmCloseOnce to libdrm + +commit 79038751ffe47ed1ce82766e027d98fd2f0e2c6a +Author: Dave Airlie +Date: Wed Nov 8 15:08:09 2006 +1100 + + libdrm: add support for server side functionality in libdrm + + This adds APIs to allow the X server to use libdrm from the system + rather than its own in-built copy. + +commit 584acab6d6103552711bd6b5596ee4ccad305bc2 +Author: Eric Anholt +Date: Tue Nov 7 09:36:40 2006 -0800 + + Add drm_u64_t typedef on non-linux to fix libdrm build. + +commit f7affda35bb0c47fbc973725e05847669e215d46 +Author: Dave Airlie +Date: Mon Nov 6 11:44:36 2006 +1100 + + drm: fixup page alignment on SAREA map on ppc64 + +commit 2dd3c039fdbe86db4043abcc69babf768edb3ab8 +Author: Dave Airlie +Date: Mon Nov 6 11:42:15 2006 +1100 + + fixup fifo size so it is page aligned + +commit 5e55594061b24521551c45838fbe6c3df57050d1 +Author: Dave Airlie +Date: Mon Nov 6 11:41:51 2006 +1100 + + use a uint64_t for this not a pointer + +commit 1e90b7ee8cefff59b70e285557aa7920dea77e81 +Merge: 0c34d0f 7b6cd95 +Author: Dave Airlie +Date: Mon Nov 6 08:03:18 2006 +1100 + + Merge branch 'master' into nouveau-1 + + Conflicts: + + linux-core/Makefile.kernel + +commit 0c34d0f31a691bb649ed69f19e93fc1a723aa1d4 +Author: Ben Skeggs +Date: Mon Nov 6 05:46:03 2006 +1100 + + Leave the bottom 64kb of RAMIN untouched. + + The binary driver will screw up either it's init or shutdown, leaving the + screen(s) in an unusable state without this. Something important in there? + +commit 94ab96c4d8203c236c6a5a8d8a6a761ccf808662 +Author: Dave Airlie +Date: Sun Nov 5 20:38:44 2006 +1100 + + nouveau: add compat ioc32 support + +commit 665c8385c7865dcc4f92b9c212d6e2b35d7fa9f0 +Author: Dave Airlie +Date: Sun Nov 5 19:46:53 2006 +1100 + + add powerpc mmio swapper to NV_READ/WRITE macros + +commit 1e118aeb39076a103c6581640b04a9b7e2a8209a +Author: Dave Airlie +Date: Sun Nov 5 19:46:30 2006 +1100 + + remove config.h + +commit 06639801ce1d515f790739a70b051498c8615288 +Author: Stephane Marchesin +Date: Sat Nov 4 20:39:59 2006 +0100 + + Add some getparams. + +commit 3ea0500be1ab7a058c90be35b5d8d2be26692f6a +Author: Stephane Marchesin +Date: Sat Nov 4 16:56:10 2006 +0100 + + Move the context object creation flag handling to the drm. + +commit 7b6cd95bb6c41653aed78952da0a461bd4791413 +Author: Alan Hourihane +Date: Tue Oct 31 10:01:53 2006 +0000 + + Fix bug #8839 - a comment + +commit 4b04c0cc45f7a89c757ce442e4f2742b9d3aa293 +Author: Thomas Hellstrom +Date: Mon Oct 30 11:18:44 2006 +0100 + + Bugzilla Bug #8819 + Build fixes for powerpc. + Reported by Katerina Barone-Adesi + +commit 56563c22d658b6dcb7926fd41513618cd46c31a6 +Author: Thomas Hellstrom +Date: Sun Oct 29 15:39:11 2006 +0100 + + Minor bugfix, indentation and removal of unnused variables. + +commit decacb2e6415029fe87a3680c8f967483ba05281 +Author: Thomas Hellstrom +Date: Fri Oct 27 13:08:31 2006 +0200 + + Reserve the new IOCTLs also for *bsd. + Bump libdrm version number to 2.2.0 + +commit f6d5fecdd20b9fd9e8744d8f43fa276b73a1da78 +Author: Thomas Hellstrom +Date: Fri Oct 27 11:28:37 2006 +0200 + + Last minute changes to support multi-page size buffer offset alignments. + This will come in very handy for tiled buffers on intel hardware. + Also add some padding to interface structures to allow future binary backwards + compatible changes. + +commit e09544a2d3f44e96d01ed2bdcb4a4eb8eec26225 +Author: Thomas Hellstrom +Date: Thu Oct 26 21:20:34 2006 +0200 + + New mm function names. Update header. + +commit 47dbfc4e4a3e8ce2ec468bc3874f74f7e2b13476 +Author: Thomas Hellstrom +Date: Thu Oct 26 21:17:43 2006 +0200 + + Add improved alignment functionality to the core memory manager. + This makes an allocated block actually align itself and returns any + wasted space to the manager. + + Also add some functions to grow and shrink the managed area. + This will be used in the future to manage the buffer object swap cache. + +commit b4fba1679b6156e3ca6f053b44cae0b003febe7f +Author: Thomas Hellstrom +Date: Thu Oct 26 21:14:23 2006 +0200 + + Add a one-page hole in the file offset space between buffers. + +commit 7ea059ae076c50f2012dee2ccbb8d41745705383 +Merge: 9ed4656 a8909a0 +Author: Thomas Hellstrom +Date: Sat Oct 21 14:20:28 2006 +0200 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm + +commit 9ed4656799043f24f4d64615ebb8128bedc99799 +Author: Thomas Hellstrom +Date: Sat Oct 21 14:17:51 2006 +0200 + + The CPU cache must be flushed _before_ we start modifying the kernel map ptes, + otherwise data will be missing, which becomes apparent when the kernel evicts + batch buffers which are likely to be written into in the evicted state, + and then rebound to the AGP aperture. + This means we cannot rely on the AGP module to flush the + cache for us. + +commit a8909a0ebcc21ad6b92b93ffe87878ece4b56506 +Author: Tilman Sauerbeck +Date: Fri Oct 20 17:05:07 2006 +0200 + + Bug #1746: Set dev_priv_size for the MGA driver. + +commit 9321592149c031694c459bb05e7a31d1197fe5cb +Author: Thomas Hellstrom +Date: Fri Oct 20 15:07:21 2006 +0200 + + We apparently need this global cache flush anyway. + +commit 3624e43282b0c6aad32829f116fd8f7bce66fbb6 +Author: Thomas Hellstrom +Date: Fri Oct 20 15:06:31 2006 +0200 + + Bug #8707, 2.6.19-rc compatibility for memory manager code. + +commit d70347bfc07bb5e34e36684b95560df37d669db4 +Merge: 5de4665 561e23a +Author: Thomas Hellstrom +Date: Thu Oct 19 17:07:26 2006 +0200 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm + +commit 5de4665747c441b2a8e82b020cc386f2d974499d +Merge: e22b04f e8ba62d +Author: Thomas Hellstrom +Date: Thu Oct 19 17:00:03 2006 +0200 + + Importing fixes from drm-ttm-0-2-branch + +commit e8ba62db722eb0b915377269d7e1c3a039928669 +Author: Thomas Hellstrom +Date: Thu Oct 19 16:58:00 2006 +0200 + + Make sure delayed delete list is empty on lastclose. + Fix some refcounting errors. + Fix some error messages. + +commit e22b04f807b9869c8c89b6316214517f5da13322 +Merge: 11aaa35 e172945 +Author: Thomas Hellstrom +Date: Wed Oct 18 17:33:19 2006 +0200 + + Merging drm-ttm-0-2-branch + + Conflicts: + + linux-core/drmP.h + linux-core/drm_drv.c + linux-core/drm_irq.c + linux-core/drm_stub.c + shared-core/drm.h + shared-core/i915_drv.h + shared-core/i915_irq.c + +commit 11aaa358a0f56afb64df44c737ec331d90118537 +Author: Thomas Hellstrom +Date: Wed Oct 18 17:18:23 2006 +0200 + + Remove stray softlink. + +commit e172945d668f1de1243ac2ae91ab77f3b2bda40a +Author: Thomas Hellstrom +Date: Wed Oct 18 16:54:17 2006 +0200 + + Avoid driver-specific AGP user-populated types, since we don't know what AGP + driver we're on. + Avoid global cache flushes before inserting pages. + In general, they are never mapped, and not accessed through the kernel map, so + a cache flush should not be necessary. The exception is pages that are bound + cached. We might need a cache flush for those. + +commit 25fe4a80490bba709099f0401535d2f96ac7729c +Author: Thomas Hellstrom +Date: Tue Oct 17 20:04:41 2006 +0200 + + Remove some debugging messages. + +commit c34faf224b959bf61e4c3eb29c66a12edbd31841 +Author: Thomas Hellstrom +Date: Tue Oct 17 20:03:26 2006 +0200 + + Remove max number of locked pages check and call, since + that is now handled by the memory accounting. + +commit 89b944179856fadf8667587eff142129c2c6b826 +Author: Thomas Hellstrom +Date: Tue Oct 17 19:57:06 2006 +0200 + + Lindent. + +commit f22f89e6b3c970a29197d3a53c170fb7d0340cbe +Author: Thomas Hellstrom +Date: Tue Oct 17 19:52:34 2006 +0200 + + Add vma list memory usage to memory accounting. + Use byte unit for /proc printout of memory usage for small sizes to be + able to detect memory allocation bugs more easily. + +commit d515936ea7f98f6aaa9217699796beadef9d664b +Author: Thomas Hellstrom +Date: Tue Oct 17 19:40:57 2006 +0200 + + Add memory usage accounting to avoid DOS problems. + +commit b5cf0d635c81d2c99510ce5e3f67f4aa593cd6d7 +Author: Ben Skeggs +Date: Wed Oct 18 02:37:19 2006 +1100 + + Remove hack which delays activation of a additional channel. The previously active channel's state is saved to RAMFC before PFIFO gets clobbered. + +commit 725984364bd899c2dee1ca9b44f56fc70ccba3ad +Author: Ben Skeggs +Date: Wed Oct 18 01:07:48 2006 +1100 + + Oops, we have more than 4 subchannels.. + +commit 5443dbe35f182b9286a96d24d29037d5cb625e3d +Author: Thomas Hellstrom +Date: Tue Oct 17 16:00:25 2006 +0200 + + Implement mm_lock and mm_unlock functions. + The mm_lock function is used when leaving vt. It evicts _all_ buffers. + Buffers with the DRM_BO_NO_MOVE attribute set will be guaranteed to + get the same offset when / if they are rebound. + +commit 55de3f763f0de66b99f1afde9872f0072a84a9e3 +Author: Ben Skeggs +Date: Tue Oct 17 23:44:05 2006 +1100 + + Useful output on a FIFO error interrupt. + +commit 07059f427819755e13b051e1422c6e8671c70f92 +Author: Ben Skeggs +Date: Tue Oct 17 23:08:03 2006 +1100 + + typo + +commit db5c671e86c3db8c99ce5a4954632248e6f849aa +Author: Thomas Hellstrom +Date: Tue Oct 17 11:28:48 2006 +0200 + + Remove the memory manager parameter from the put_block function, as this + makes the client code a lot cleaner. Prepare buffer manager for lock and + unlock calls. + +commit 5881ce1b91034fbdf81dda37a23215cfc1310cdf +Author: Thomas Hellstrom +Date: Tue Oct 17 11:05:37 2006 +0200 + + Extend generality for more memory types. + Fix up init and destruction code. + +commit 561e23a7c2f06b382613d3e2ae8d23104d0949aa +Author: Michael Karcher +Date: Mon Oct 16 22:06:58 2006 -0400 + + dev->agp_buffer_map is not initialized for AGP DMA on savages + bug 8662 + +commit 4b43ee63f90c93701c9f1cdf7fefd1816b316d33 +Author: Ben Skeggs +Date: Tue Oct 17 12:33:49 2006 +1100 + + NV40: *Now* fifo ctx switching works for me.. + Ok, I lied before.. it was a fluke it worked and required magic to repeat it.. + It actually helps to fill in RAMFC entries in the correct place. + + The code also clears RAMIN entirely instead of just the hash-table. + +commit 98e718d48fcd166accf1af3c017c34e331ab09cb +Author: Ben Skeggs +Date: Tue Oct 17 07:29:31 2006 +1100 + + NV40: FIFO context switching now WorksForMe(tm) + +commit 1943f39d8ce27c799f928bab172e521f4d540166 +Author: Ben Skeggs +Date: Tue Oct 17 06:37:40 2006 +1100 + + Setup NV40 RAMFC (in wrong location.. but anyway), rearrange the RAMFC setup code a bit. + +commit 95486bbde05ae51975c4d51fd194111788edee9a +Author: Ben Skeggs +Date: Tue Oct 17 06:12:18 2006 +1100 + + Some info on NV40's RAMFC + +commit 5b2a60f550090a41c13483ceaaa1a84d3a9257f8 +Author: Thomas Hellstrom +Date: Mon Oct 16 14:22:27 2006 +0200 + + Change Intel AGP memory type numbers. + +commit 93fee5cf222ad6d97e0dcb85e13a8d8b84dba81f +Merge: 2c5b91a a9f57a2 +Author: Stephane Marchesin +Date: Sun Oct 15 00:12:13 2006 +0200 + + Merge branch 'master' of git://anongit.freedesktop.org/git/mesa/drm into nouveau-1 + +commit 2c5b91aecf3d21684ffca758c034cd9a8ed2155d +Author: Stephane Marchesin +Date: Sat Oct 14 16:36:11 2006 +0200 + + Again more work on context switches. They work, sometimes. And when they do they seem to screw up the PGRAPH state. + +commit 1bab514c0a1a535c19d53e3d39e3b351db3ab7a4 +Author: Dave Airlie +Date: Sat Oct 14 23:38:20 2006 +1000 + + remove config.h from build no longer exists kbuild does it + +commit 3a0cd7c7e221f625585675490f626de8677a9dc7 +Author: Stephane Marchesin +Date: Sat Oct 14 01:21:31 2006 +0200 + + Add the missing breaks. + +commit b509abe413f74bd08f6415dec8147bd07e78a84b +Author: Stephane Marchesin +Date: Fri Oct 13 22:35:22 2006 +0200 + + Fix the fifo context size on nv10, nv20 and nv30. + +commit 4988074794531939ec0cb0ad183633b59e9ccff4 +Author: Ben Skeggs +Date: Sat Oct 14 06:57:49 2006 +1100 + + Fix some randomness in activating a second channel on NV40 (odd GET/PUT vals). Ch 1 GET now advances, but no ctx_switch. + +commit a9c6c3f21d90257db94536f202b3a1f03896b2f7 +Author: Stephane Marchesin +Date: Thu Oct 12 21:18:55 2006 +0200 + + Oops. + +commit 7ef44b2b8dd1745f5b228e6161ebd989844c3088 +Author: Stephane Marchesin +Date: Thu Oct 12 17:31:49 2006 +0200 + + Still more work on the context switching code. + +commit 540c64c378daafaad1c3f63faf5af81f39388665 +Author: Thomas Hellstrom +Date: Thu Oct 12 16:10:47 2006 +0200 + + Bugfixes. + +commit 10150df02b7062b9975661ccd82b475cd23c8839 +Author: Thomas Hellstrom +Date: Thu Oct 12 12:09:16 2006 +0200 + + Simplify the AGP backend interface somewhat. + + Fix buffer bound caching policy changing, Allow + on-the-fly changing of caching policy on bound buffers if the hardware + supports it. + + Allow drivers to use driver-specific AGP memory types for TTM AGP pages. + Will make AGP drivers much easier to migrate. + +commit a749d9d5b49ea0e402848bd6024e5c44826e784f +Author: Stephane Marchesin +Date: Thu Oct 12 01:08:15 2006 +0200 + + More work on the context switch code. Still doesn't work. I'm mostly convinced it's an initialization issue. + +commit 30703893674b3da5b862dee2acd6efca13424398 +Author: Thomas Hellstrom +Date: Wed Oct 11 22:21:01 2006 +0200 + + Compatibility code for 2.6.15-2.6.18. It is ugly but a little comfort is that + it will go away in the mainstream kernel. + Some bugfixes, mainly in error paths. + +commit f2db76e2f206d2017f710eaddc4b33add4498898 +Author: Thomas Hellstrom +Date: Wed Oct 11 13:40:35 2006 +0200 + + Big update: + Adapt for new functions in the 2.6.19 kernel. + Remove the ability to have multiple regions in one TTM. + This simplifies a lot of code. + Remove the ability to access TTMs from user space. + We don't need it anymore without ttm regions. + Don't change caching policy for evicted buffers. Instead change it only + when the buffer is accessed by the CPU (on the first page fault). + This tremendously speeds up eviction rates. + Current code is safe for kernels <= 2.6.14. + Should also be OK with 2.6.19 and above. + +commit dd473411f889cc16af255437d2a61c616bcee695 +Author: Stephane Marchesin +Date: Wed Oct 11 00:28:15 2006 +0200 + + Context switching work. + Added preliminary support for context switches (triggers the interrupts, but hangs after the switch ; something's not quite right yet). + Removed the PFIFO_REINIT ioctl. I hope it's that a good idea... + Requires the upcoming commit to the DDX. + +commit c58574c60505a699e19e1ed59e1b441be2594e53 +Author: Thomas Hellstrom +Date: Tue Oct 10 10:37:26 2006 +0200 + + Use a nopage-based approach to fault in pfns. + +commit a9f57a2b9c5897cbf568bf75342204b780566de0 +Author: Roland Scheidegger +Date: Tue Oct 10 02:24:19 2006 +0200 + + only allow specific type-3 packets to pass the verifier instead of all for r100/r200 as others might be unsafe (r300 already does this), and add checking for these we need but aren't safe. Check the RADEON_CP_INDX_BUFFER packet on both r200 and r300 as it isn't safe neither. + +commit cee659afb56e7ac443402ac791144f391721061e +Author: Thomas Hellstrom +Date: Tue Oct 3 12:08:07 2006 +0200 + + Get rid of all ugly PTE hacks. + +commit c9e3aa961eb90265ec024ff57013786e4d47d0e7 +Author: George Sapountzis +Date: Mon Oct 2 06:13:38 2006 +0300 + + Bug 6242: [mach64] Use private DMA buffers, part #4. + + mach64_state.c: convert the DRM_MACH64_BLIT ioctl to submit a pointer to + user-space memory rather than a DMA buffer index, similar to DRM_MACH64_VERTEX. + + This change allows the DDX to map the DMA buffers read-only and eliminate a + security problem where a client can alter the contents of the DMA buffer after + submission to the DRM. + + This change also affects the DRI/DRM interface. Performace-wise, it basically + affects PCI mode where I get a ~12% speedup for some Mesa demos I tested. + This is mainly due to eliminating an ioctl for allocating the DMA buffer. + + mach64_dma.c: move the responsibility for allocating memory for the DMA ring + in PCI mode to the DDX. + + This change affects the DDX/DRM interface and unifies a couple of PCI/AGP code + paths for ring memory in the DRM. + + Bump the mach64 DRM version major and date. + +commit f3deef730d52c94ce21ada7e4ceb63aa28a8601b +Author: George Sapountzis +Date: Mon Oct 2 05:46:42 2006 +0300 + + Bug 6242: [mach64] Use private DMA buffers, part #3. + + Add DRM_PCI_BUFFER_RO flag for mapping PCI DMA buffer read-only. An additional + flag is needed, since PCI DMA buffers do not have an associated map. + +commit 25760c30d4aedb370423d0bb03c014cab47b5d4f +Author: George Sapountzis +Date: Mon Aug 28 05:44:37 2006 +0300 + + Bug 6242: [mach64] Use private DMA buffers, part #2. + + Factor out from mach64_dma_dispatch_vertex() the code to reclaim an unsed + buffer, in preperation for using it in mach64_dma_dispatch_blit() also. + +commit eea150e776657faca7d5b76aca75a33dc74fbc9d +Author: George Sapountzis +Date: Sun Jul 16 02:15:02 2006 +0300 + + Bug 6242: [mach64] Use private DMA buffers, part #1. + + Factor out from mach64_freelist_get() the code to reclaim a completed buffer, + this is to improve readability for me. + +commit d1b31a228b72b8dd8e588f0a0cc8eeabc3845f70 +Author: George Sapountzis +Date: Sun Jul 16 01:02:06 2006 +0300 + + Bug 6209: [mach64] AGP DMA buffers not mapped correctly. + + Map the DMA buffers from the same linear address as the vertex bufs. If + dev->agp_buffer_token is not set, mach64 drm maps the DMA buffers from + linear address 0x0. + +commit 16be6ba63a41f03e98a741464d3b51eefb277373 +Author: Michel Dänzer +Date: Mon Oct 2 15:33:19 2006 +0200 + + Fix type of second argument to spin_lock_irqsave(). + (cherry picked from f6238cf6244b32bd84e3d2819963d7f5473867c8 commit) + +commit f6238cf6244b32bd84e3d2819963d7f5473867c8 +Author: Michel Dänzer +Date: Mon Oct 2 15:33:19 2006 +0200 + + Fix type of second argument to spin_lock_irqsave(). + +commit eacedf41a65f135722e7bee6f1a66a803619237f +Author: Thomas Hellstrom +Date: Mon Oct 2 15:06:35 2006 +0200 + + Make the user_token 44-bit for TTMs, and have them occupy a unique file space + starting at 0x00100000000. This will hopefully allow us to use + unmap_mapping_range(). Note that user-space will need + 64-bit file offset support. + +commit a31046b8734f12ed22127ef5f6ca4fc33df72ec1 +Author: Thomas Hellstrom +Date: Mon Oct 2 14:03:15 2006 +0200 + + Add a buffer object manager for TTM maps. + +commit d85b99435f0ea7a17b3b7be31b53c00632c07177 +Author: Thomas Hellstrom +Date: Mon Oct 2 13:49:43 2006 +0200 + + Allow for 44 bit user-tokens (or drm_file offsets) + +commit 418b81c65c55601d4e414b351db5b8d76db8a109 +Author: Thomas Hellstrom +Date: Mon Oct 2 13:37:54 2006 +0200 + + Add a comment to previos commit. + +commit c6be27401fbc12ec72bac13d07e3cc93bd63732a +Author: Thomas Hellstrom +Date: Mon Oct 2 13:34:30 2006 +0200 + + Trap and be verbose about a deadlock that occurs with AIGLX and drivers that + use drm_reclaim_buffers_locked(). + +commit 58a23d193f7d25d23c76a58c192c814a415a843b +Author: Felix Kühling +Date: Mon Oct 2 10:50:40 2006 +0200 + + drm_rmdraw: Declare id and idx as signed so testing for < 0 works as intended. + (cherry picked from d58389968124191a546a14b42ef84edc224be23d commit) + +commit 3a16e615cabfed18b1891a732e7243ef41dc0ad0 +Author: Michel Dänzer +Date: Mon Oct 2 11:04:42 2006 +0200 + + Make locked tasklet handling more robust. + + Initialize the spinlock unconditionally when struct drm_device is filled in, + and return early in drm_locked_tasklet() if the driver doesn't support IRQs. + +commit d58389968124191a546a14b42ef84edc224be23d +Author: Felix Kühling +Date: Mon Oct 2 10:50:40 2006 +0200 + + drm_rmdraw: Declare id and idx as signed so testing for < 0 works as intended. + +commit 8e908eaf50d5331ee875fefbf793dbe07d99786a +Author: Thomas Hellstrom +Date: Fri Sep 29 14:21:51 2006 +0200 + + Bump driver date. + +commit 17a640419a447083470880f1266e14063cd5acd0 +Author: Michel Dänzer +Date: Fri Sep 29 10:27:29 2006 +0200 + + i915: Only schedule vblank tasklet if there are scheduled swaps pending. + + This fixes issues on X server startup with versions of xf86-video-intel that + enable the IRQ before they have a context ID. + (cherry picked from 7af93dd9849442270ec89cb4bbeef5bfd4f9e424 commit) + +commit 48367fdfe677adada52ad61d850e2980e1070632 +Author: Michel Dänzer +Date: Thu Sep 28 19:13:59 2006 +0200 + + i915: Only initialize IRQ fields in postinstall, not the PIPE_SET ioctl. + + Some other minor changes in preparation for actually disabling user interrupts. + +commit 3620a3ec85033d3d1d1a44ec32492fb2ef20fd8a +Author: Michel Dänzer +Date: Thu Sep 28 19:05:58 2006 +0200 + + i915: Bump minor again to differentiate from vsync changes. + +commit 390184df92915d232cab90469937de875ee65b91 +Author: Michel Dänzer +Date: Wed Sep 27 18:22:10 2006 +0200 + + i915: Avoid mis-counting vblank interrupts when they're only enabled for pipe A. + + It looks like 'after a while', I915REG_INT_IDENTITY_R for some reason always has + VSYNC_PIPEB_FLAG set in the interrupt handler, even though pipe B is disabled. + So we only increase dev->vbl_received if the corresponding bit is also set in + dev->vblank_pipe. + (cherry picked from 881ba569929ceafd42e3c86228b0172099083d1d commit) + +commit c0bff9f9cd08066df7f3bccd77d4d4dd4edb4163 +Author: Michel Dänzer +Date: Mon Sep 18 12:15:38 2006 +0200 + + i915: Bump minor for swap scheduling ioctl and secondary vblank support. + + (cherry picked from 2627131e5d0c8cd5e3f0db06451c2e7ae7569b1b commit) + +commit 0a7d9edcfb427724f0cad5ff6d0a4493d266b4e8 +Author: Michel Dänzer +Date: Wed Sep 13 08:59:35 2006 +0200 + + i915_vblank_swap: Add support for DRM_VBLANK_NEXTONMISS. + + (cherry picked from 0356fe260dcf80f6d2d20e3384f2a1f4ee7f5b30 commit) + +commit c47ebd970783873164578126fa5481a166cd837e +Author: Michel Dänzer +Date: Fri Sep 1 11:48:07 2006 +0200 + + Only return EBUSY after we've established we need to schedule a new swap. + + (cherry picked from 50a0284a61d4415c0ebdb02decee76ef3115007a commit) + +commit cef0f243251103be81c914d5b83ee3401c2a9c34 +Author: Michel Dänzer +Date: Fri Sep 1 11:35:31 2006 +0200 + + Core vsync: Don't clobber target sequence number when scheduling signal. + + It looks like this would have caused signals to always get sent on the next + vertical blank, regardless of the sequence number. + (cherry picked from cf6b2c5299e9be3542d4deddfd05d5811f11d2ef commit) + +commit ed82172378666d35ca60e6094fdecb59511a135f +Author: Michel Dänzer +Date: Fri Sep 1 11:27:14 2006 +0200 + + Core vsync: Add flag DRM_VBLANK_NEXTONMISS. + + When this flag is set and the target sequence is missed, wait for the next + vertical blank instead of returning immediately. + (cherry picked from 89e323e4900af84cc33219ad24eb0b435a039d23 commit) + +commit c4c47a7eacf8e8cb96b2fb63164e28f0db7353ad +Author: Michel Dänzer +Date: Fri Sep 1 11:24:38 2006 +0200 + + Fix 'sequence has passed' condition in i915_vblank_swap(). + + (cherry picked from 7f09f957d9a61ac107f8fd29128d7899a3e8a228 commit) + +commit f9aa4f5973d6098b95e92f606dc1967c627897db +Author: Michel Dänzer +Date: Thu Aug 31 18:33:04 2006 +0200 + + Add SAREA fileds for determining which pipe to sync window buffer swaps to. + + (cherry picked from c2bdb76814755c9ac6e66a8815f23af0fe4f3a91 commit) + +commit 316e73676861c0e019d52ec7bf7b7b1451eaed97 +Author: Michel Dänzer +Date: Thu Aug 31 18:32:08 2006 +0200 + + Add definition of DRM_VBLANK_SECONDARY. + + (cherry picked from 84b38b63f05e04ade8b1ddfb770047fd86de0d64 commit) + +commit 4a3d270862f6dbc52ca3e16ba66fdb24667b2aa2 +Author: Michel Dänzer +Date: Thu Aug 31 18:30:55 2006 +0200 + + Make handling of dev_priv->vblank_pipe more robust. + + Initialize it to default value if it hasn't been set by the X server yet. + + In i915_vblank_pipe_set(), only update dev_priv->vblank_pipe and call + i915_enable_interrupt() if the argument passed from userspace is valid to avoid + corrupting dev_priv->vblank_pipe on invalid arguments. + (cherry picked from 87c57cba1a70221fc570b253bf3b24682ef6b894 commit) + +commit 1f3493f65ba0959e401191c648f57501216eeb0a +Author: Michel Dänzer +Date: Wed Aug 30 19:33:28 2006 +0200 + + DRM_I915_VBLANK_SWAP ioctl: Take drm_vblank_seq_type_t instead of pipe number. + + Handle relative as well as absolute target sequence numbers. + + Return error if target sequence has already passed, so userspace can deal with + this situation as it sees fit. + + On success, return the sequence number of the vertical blank when the buffer + swap is expected to take place. + + Also add DRM_IOCTL_I915_VBLANK_SWAP definition for userspace code that may want + to use ioctl() instead of drmCommandWriteRead(). + (cherry picked from d5a0f107511e128658e2d5e15bd7e6215c507f29 commit) + +commit 00531cecad3cf9a1ec230f7f33535d153b9d9bd0 +Author: Michel Dänzer +Date: Wed Aug 30 19:24:04 2006 +0200 + + Change first valid DRM drawable ID to be 1 instead of 0. + + This makes it easier for userspace to know when it needs to allocate an ID. + + Also free drawable information memory when it's no longer needed. + (cherry picked from df7551ef7334d728ec0371423661bb403d3e270a commit) + +commit 7d487602a31dd886037417db088b6e643ed86918 +Author: Michel Dänzer +Date: Mon Aug 28 18:19:58 2006 +0200 + + Add copyright notice. + + (cherry picked from d04751facea36cb888c7510b126658fdbc4277d5 commit) + +commit da75d59cd65764c6076ab9b96ad8195ed71ed80b +Author: Michel Dänzer +Date: Fri Aug 25 19:01:05 2006 +0200 + + i915: Add ioctl for scheduling buffer swaps at vertical blanks. + + This uses the core facility to schedule a driver callback that will be called + ASAP after the given vertical blank interrupt with the HW lock held. + (cherry picked from 257771fa290b62d4d2ad896843cf3a207978d0bb commit) + +commit d7389a9758944ab0d241d3c1108adfeeec9eee76 +Author: Michel Dänzer +Date: Fri Aug 25 18:55:55 2006 +0200 + + Locking and memory management fixes. + + (cherry picked from 23d2833aaa37a33b9ddcf06cc796f59befc0d360 commit) + +commit ca3a1b5ec4a417785238fb7c0cb4c3570dbcb31a +Author: Michel Dänzer +Date: Fri Aug 25 18:55:06 2006 +0200 + + Drop tasklet locked driver callback when uninstalling IRQ. + + (cherry picked from b9f3009160d8bd1a26a77d6f1616f1679c7b969d commit) + +commit f93e4822694b066427f70c23216b78f92edb1bff +Author: Michel Dänzer +Date: Wed Aug 23 19:00:26 2006 +0200 + + Export drm_get_drawable_info symbol from core. + + (cherry picked from 43f8675534c7e95efbc92eaf2c8cc43aef95f125 commit) + +commit 67e88e5628d02cd94561e31fd68e02b6bde66e6f +Author: Michel Dänzer +Date: Wed Aug 23 16:05:47 2006 +0200 + + Hook up DRM_IOCTL_UPDATE_DRAW ioctl. + + (cherry picked from 98a89504589427a76c3f5cfa2266962a1a212672 commit) + +commit baa26c5faa3d5903569d1c94ad93b843d6979ba5 +Author: Michel Dänzer +Date: Wed Aug 23 16:04:41 2006 +0200 + + Only reallocate cliprect memory if the number of cliprects changes. + + Also improve diagnostic output. + (cherry picked from af48be1096221d551319c67a9e782b50ef58fefd commit) + +commit 9810ec2737de6aa81e764225f580e4ea39de437a +Author: Michel Dänzer +Date: Tue Aug 22 16:40:07 2006 +0200 + + Add support for tracking drawable information to core + + Actually make the existing ioctls for adding and removing drawables do + something useful, and add another ioctl for the X server to update drawable + information. The only kind of drawable information tracked so far is cliprects. + (cherry picked from 29598e5253ff5c085ccf63580fd24b84db848424 commit) + +commit a7b8c8d523d7f726b8fb74cb37f807d2316cf5dd +Author: Michel Dänzer +Date: Wed Aug 16 15:47:22 2006 +0200 + + Add support for interrupt triggered driver callback with lock held to DRM core. + + (cherry picked from d817cc1f30060fcc4a85a05b2de8a2a1687421b5 commit) + +commit 596d7e998403f565a796c431dbbcaf9e0c49908b +Author: Michel Dänzer +Date: Fri Aug 11 18:06:46 2006 +0200 + + Add support for secondary vertical blank interrupt to i915 driver. + + When the vertical blank interrupt is enabled for both pipes, pipe A is + considered primary and pipe B secondary. When it's only enabled for one pipe, + it's always considered primary for backwards compatibility. + (cherry picked from 0c7d7f43610f705e8536a949cf2407efaa5ec217 commit) + +commit 2735f9e2908b786586d18f6384371b991bdce430 +Author: Michel Dänzer +Date: Fri Aug 11 17:57:59 2006 +0200 + + Add support for secondary vertical blank interrupt to DRM core. + + (cherry picked from ab351505f36a6c66405ea7604378268848340a42 commit) + +commit ae96e264198323916ee58e293468c9b924feca75 +Author: Thomas Hellstrom +Date: Fri Sep 29 11:46:45 2006 +0200 + + Add a new buffer flag. + Fix up some comments. + +commit 3802f9adbf9a7e3d5c356f74b0c1ee966476fb97 +Author: Thomas Hellstrom +Date: Fri Sep 29 11:15:59 2006 +0200 + + Fix buffer manager takedown error. + Prepare for the possibility to evict all buffers from vram / agp. + This will be used by the X server when, for example, switching vts. + +commit 7af93dd9849442270ec89cb4bbeef5bfd4f9e424 +Author: Michel Dänzer +Date: Fri Sep 29 10:27:29 2006 +0200 + + i915: Only schedule vblank tasklet if there are scheduled swaps pending. + + This fixes issues on X server startup with versions of xf86-video-intel that + enable the IRQ before they have a context ID. + +commit 881ba569929ceafd42e3c86228b0172099083d1d +Author: Michel Dänzer +Date: Wed Sep 27 18:22:10 2006 +0200 + + i915: Avoid mis-counting vblank interrupts when they're only enabled for pipe A. + + It looks like 'after a while', I915REG_INT_IDENTITY_R for some reason always has + VSYNC_PIPEB_FLAG set in the interrupt handler, even though pipe B is disabled. + So we only increase dev->vbl_received if the corresponding bit is also set in + dev->vblank_pipe. + +commit 2627131e5d0c8cd5e3f0db06451c2e7ae7569b1b +Author: Michel Dänzer +Date: Mon Sep 18 12:15:38 2006 +0200 + + i915: Bump minor for swap scheduling ioctl and secondary vblank support. + +commit 0356fe260dcf80f6d2d20e3384f2a1f4ee7f5b30 +Author: Michel Dänzer +Date: Wed Sep 13 08:59:35 2006 +0200 + + i915_vblank_swap: Add support for DRM_VBLANK_NEXTONMISS. + +commit 50a0284a61d4415c0ebdb02decee76ef3115007a +Author: Michel Dänzer +Date: Fri Sep 1 11:48:07 2006 +0200 + + Only return EBUSY after we've established we need to schedule a new swap. + +commit cf6b2c5299e9be3542d4deddfd05d5811f11d2ef +Author: Michel Dänzer +Date: Fri Sep 1 11:35:31 2006 +0200 + + Core vsync: Don't clobber target sequence number when scheduling signal. + + It looks like this would have caused signals to always get sent on the next + vertical blank, regardless of the sequence number. + +commit 89e323e4900af84cc33219ad24eb0b435a039d23 +Author: Michel Dänzer +Date: Fri Sep 1 11:27:14 2006 +0200 + + Core vsync: Add flag DRM_VBLANK_NEXTONMISS. + + When this flag is set and the target sequence is missed, wait for the next + vertical blank instead of returning immediately. + +commit 7f09f957d9a61ac107f8fd29128d7899a3e8a228 +Author: Michel Dänzer +Date: Fri Sep 1 11:24:38 2006 +0200 + + Fix 'sequence has passed' condition in i915_vblank_swap(). + +commit c2bdb76814755c9ac6e66a8815f23af0fe4f3a91 +Author: Michel Dänzer +Date: Thu Aug 31 18:33:04 2006 +0200 + + Add SAREA fileds for determining which pipe to sync window buffer swaps to. + +commit 84b38b63f05e04ade8b1ddfb770047fd86de0d64 +Author: Michel Dänzer +Date: Thu Aug 31 18:32:08 2006 +0200 + + Add definition of DRM_VBLANK_SECONDARY. + +commit 87c57cba1a70221fc570b253bf3b24682ef6b894 +Author: Michel Dänzer +Date: Thu Aug 31 18:30:55 2006 +0200 + + Make handling of dev_priv->vblank_pipe more robust. + + Initialize it to default value if it hasn't been set by the X server yet. + + In i915_vblank_pipe_set(), only update dev_priv->vblank_pipe and call + i915_enable_interrupt() if the argument passed from userspace is valid to avoid + corrupting dev_priv->vblank_pipe on invalid arguments. + +commit d5a0f107511e128658e2d5e15bd7e6215c507f29 +Author: Michel Dänzer +Date: Wed Aug 30 19:33:28 2006 +0200 + + DRM_I915_VBLANK_SWAP ioctl: Take drm_vblank_seq_type_t instead of pipe number. + + Handle relative as well as absolute target sequence numbers. + + Return error if target sequence has already passed, so userspace can deal with + this situation as it sees fit. + + On success, return the sequence number of the vertical blank when the buffer + swap is expected to take place. + + Also add DRM_IOCTL_I915_VBLANK_SWAP definition for userspace code that may want + to use ioctl() instead of drmCommandWriteRead(). + +commit df7551ef7334d728ec0371423661bb403d3e270a +Author: Michel Dänzer +Date: Wed Aug 30 19:24:04 2006 +0200 + + Change first valid DRM drawable ID to be 1 instead of 0. + + This makes it easier for userspace to know when it needs to allocate an ID. + + Also free drawable information memory when it's no longer needed. + +commit d04751facea36cb888c7510b126658fdbc4277d5 +Author: Michel Dänzer +Date: Mon Aug 28 18:19:58 2006 +0200 + + Add copyright notice. + +commit 257771fa290b62d4d2ad896843cf3a207978d0bb +Author: Michel Dänzer +Date: Fri Aug 25 19:01:05 2006 +0200 + + i915: Add ioctl for scheduling buffer swaps at vertical blanks. + + This uses the core facility to schedule a driver callback that will be called + ASAP after the given vertical blank interrupt with the HW lock held. + +commit 23d2833aaa37a33b9ddcf06cc796f59befc0d360 +Author: Michel Dänzer +Date: Fri Aug 25 18:55:55 2006 +0200 + + Locking and memory management fixes. + +commit b9f3009160d8bd1a26a77d6f1616f1679c7b969d +Author: Michel Dänzer +Date: Fri Aug 25 18:55:06 2006 +0200 + + Drop tasklet locked driver callback when uninstalling IRQ. + +commit 43f8675534c7e95efbc92eaf2c8cc43aef95f125 +Author: Michel Dänzer +Date: Wed Aug 23 19:00:26 2006 +0200 + + Export drm_get_drawable_info symbol from core. + +commit 98a89504589427a76c3f5cfa2266962a1a212672 +Author: Michel Dänzer +Date: Wed Aug 23 16:05:47 2006 +0200 + + Hook up DRM_IOCTL_UPDATE_DRAW ioctl. + +commit af48be1096221d551319c67a9e782b50ef58fefd +Author: Michel Dänzer +Date: Wed Aug 23 16:04:41 2006 +0200 + + Only reallocate cliprect memory if the number of cliprects changes. + + Also improve diagnostic output. + +commit 29598e5253ff5c085ccf63580fd24b84db848424 +Author: Michel Dänzer +Date: Tue Aug 22 16:40:07 2006 +0200 + + Add support for tracking drawable information to core + + Actually make the existing ioctls for adding and removing drawables do + something useful, and add another ioctl for the X server to update drawable + information. The only kind of drawable information tracked so far is cliprects. + +commit d817cc1f30060fcc4a85a05b2de8a2a1687421b5 +Author: Michel Dänzer +Date: Wed Aug 16 15:47:22 2006 +0200 + + Add support for interrupt triggered driver callback with lock held to DRM core. + +commit 0c7d7f43610f705e8536a949cf2407efaa5ec217 +Author: Michel Dänzer +Date: Fri Aug 11 18:06:46 2006 +0200 + + Add support for secondary vertical blank interrupt to i915 driver. + + When the vertical blank interrupt is enabled for both pipes, pipe A is + considered primary and pipe B secondary. When it's only enabled for one pipe, + it's always considered primary for backwards compatibility. + +commit ab351505f36a6c66405ea7604378268848340a42 +Author: Michel Dänzer +Date: Fri Aug 11 17:57:59 2006 +0200 + + Add support for secondary vertical blank interrupt to DRM core. + +commit b15bc8a0bad43c68dd1bbff27e7a7bd54e9e6938 +Author: Thomas Hellstrom +Date: Thu Sep 28 12:19:54 2006 +0200 + + Libdrm version bump and naming. + +commit c52fafa6288b4e6ecfce27151969749113a41f0b +Author: Thomas Hellstrom +Date: Thu Sep 28 11:33:03 2006 +0200 + + Don't enable fence / buffer objects on non-linux systems. + Bump driver minor and date. + +commit 1c6f0ea43c47603c2265248ce8a91698c8982f3c +Author: Thomas Hellstrom +Date: Wed Sep 27 19:11:27 2006 +0200 + + Activate error message that was never hit since it was masked + by drm_lock_transfer. + Ifdef out drm_lock_transfer. I see no use for it currently. Should be removed. + +commit f2c03ecae627df77db25391fe85fcd8a2a4bdc0c +Author: Thomas Hellstrom +Date: Wed Sep 27 19:07:55 2006 +0200 + + Fix racy buffer object destruction. + +commit c97149b45be9d0e9385d4c6721aa70dad68a1aa1 +Author: Thomas Hellstrom +Date: Wed Sep 27 09:31:39 2006 +0200 + + Fix tt fixed size that slipped through in previous commit. + +commit 235f6fc650e9974211843b9196a903963dae0211 +Author: Thomas Hellstrom +Date: Wed Sep 27 09:27:31 2006 +0200 + + Adapt to architecture-specific hooks for gatt pages. + +commit bd8ca12b7baff778d5bb7b4ad1d38d16b60a4d5a +Author: Thomas Hellstrom +Date: Tue Sep 26 16:00:22 2006 +0200 + + Silence valgrind. + +commit 26528627a6cea7f92a949e89e5db6e17ef9560c2 +Author: Thomas Hellstrom +Date: Tue Sep 26 14:40:11 2006 +0200 + + Remove the call to drm_lock_transfer, since it is not used anymore. + Fix up drm_lock_free to retain the last locking context information. + +commit 711f077b7423c1a436d703885c6d18a2ad2940aa +Author: Thomas Hellstrom +Date: Tue Sep 26 14:36:53 2006 +0200 + + Allow for a driver to overload the ttm backend object methods. + +commit 273eb7833d69db2d72430d5c96c21cebd05c206e +Author: Thomas Hellstrom +Date: Mon Sep 25 11:51:08 2006 +0200 + + Add /proc filesystem buffer / fence object accounting. + Check for NULL pointer in the i915 flush handler. + Remove i915_sync_flush declaration. + +commit a02155a0d92d3933d42a3655db261446bfe72b44 +Author: Thomas Hellstrom +Date: Fri Sep 22 09:25:36 2006 +0200 + + Fix proc formatting broken by last commit. + GPU lockup error reporting. + +commit 62f6ea225615392098dedee47d4ccdd69e126a43 +Author: Felix Kuhling +Date: Fri Sep 22 03:46:54 2006 +1000 + + bug 5942: add stubs for drm_mtrr_add/del for non-MTRR configured linux + +commit 255f3e6f76dfd267a14765dd1293229184298d89 +Author: Anish Mistry +Date: Fri Sep 22 03:43:34 2006 +1000 + + bug 7092 : add pci ids for mach64 in Dell poweredge 4200 + +commit 1f71b8d7a456fe3ec4bfc2fed70b7420cdd0d55a +Author: Roland Scheidegger +Date: Wed Sep 20 19:44:57 2006 +0200 + + do a TCL state flush before accessing VAP_CNTL to prevent lockups on r200 when enabling/disabling vertex programs + +commit fa511a3ff5150d932fd963594d1ef67a94bb8b1f +Author: Thomas Hellstrom +Date: Wed Sep 20 16:31:15 2006 +0200 + + Allow for 64-bit map handles of ttms and buffer objects. + +commit aac918e7c72a46a1b0f2329380e2d6b4196d04e4 +Author: Thomas Hellstrom +Date: Mon Sep 18 21:50:00 2006 +0200 + + Fence handler fix + +commit ca1b15d645c74e20f638f5a09981bcf02f58caee +Author: Thomas Hellstrom +Date: Mon Sep 18 20:43:31 2006 +0200 + + Alternative implementation of page table zeroing using zap page_range. + (Disabled for now) + Fix bo_wait_idle bug. + Remove stray debug message. + +commit c4fad4c96168a3dfabaa8a7e97758fefd014c8a7 +Author: Thomas Hellstrom +Date: Mon Sep 18 16:02:33 2006 +0200 + + More verbose error reporting in some cases. + Add a buffer object waitIdle user-space function. + Fix some names and minor glitches. + +commit ef98a8e20dad8ae7e38f397d63c13bd24105ce53 +Author: Dave Airlie +Date: Mon Sep 18 21:22:12 2006 +1000 + + drm: put domain number back to 0, domain support is seriously fubar.. + +commit 22382bd8c540231641bfc75d778a50ddf1463783 +Author: Ben Skeggs +Date: Sun Sep 17 13:00:27 2006 +1000 + + Add pciid for GeForce Go 6150 (0x0244). + +commit 6ba9127753eff7615ba553fbc567aec98ecf8104 +Author: Michel Dänzer +Date: Fri Sep 15 16:37:47 2006 +0200 + + Use register writes instead of BITBLT_MULTI packets for buffer swap blits. + + This takes up two more ring buffer entries per rectangle blitted but makes sure + the blit is performed top to bottom, reducing the likelyhood of tearing. + +commit f613022ceef1814cb734bb3375f01962fd3bcf10 +Author: Thomas Hellstrom +Date: Fri Sep 15 16:47:09 2006 +0200 + + Allow a "native type" to be associated with a fence sequence. + In the intel case, we can associate a flush with a sequence. + +commit 49fbeb339c232804866cd548d6023fe559597353 +Author: Thomas Hellstrom +Date: Fri Sep 15 11:18:35 2006 +0200 + + Some bugfixes. + Change the fence object interface somewhat to allow some more flexibility. + Make list IOCTLS really restartable. + Try to avoid busy-waits in the kernel using immediate return to user-space with an -EAGAIN. + +commit 7223b4e264a64df2df70715d8777f2ccaa883d5e +Author: Thomas Hellstrom +Date: Thu Sep 14 16:42:00 2006 +0200 + + Simplify ttm alloc and free. + +commit 682c6ed0293771b093452597540118f47fda1adf +Author: Thomas Hellstrom +Date: Thu Sep 14 12:17:38 2006 +0200 + + Remove the use of reserved pages, and use locked pages instead. + Update compatibility for latest linux versions. + +commit 9adc9584a7e0b61b16a943720bef31a71faeaef4 +Author: Thomas Hellstrom +Date: Tue Sep 12 17:39:44 2006 +0200 + + Fix some debug messages. + +commit 861b26578cd5e497fb506ad5952fa62bd03ea201 +Author: Thomas Hellstrom +Date: Tue Sep 12 16:28:34 2006 +0200 + + Use lazy fence wait when possible even for RW fences. Saves some CPU. + Lindent. + +commit 191e284709ee792a32124e96e43d5876406b93dc +Author: Thomas Hellstrom +Date: Tue Sep 12 12:01:00 2006 +0200 + + More bugfixes. + Disable the i915 IRQ turnoff for now since it seems to be causing problems. + +commit 3cc64a943a7240c73c92ab103ba0502b9ec07fee +Author: Dave Airlie +Date: Tue Sep 12 06:13:14 2006 +1000 + + drm: use radeon specific names for radeon flags + +commit aa80e2f48f291aa41524dfb53023499c91473705 +Author: Ben Skeggs +Date: Sat Sep 9 07:35:55 2006 +1000 + + Add copyright notices while I still remember.. + +commit 99acb7936660843090ea8a9f22d2d50d9433e0de +Author: Thomas Hellstrom +Date: Fri Sep 8 17:24:38 2006 +0200 + + Various bugfixes. + +commit 0ef29768ca909421539c3d8f65bb8e94912fa597 +Author: Ben Skeggs +Date: Thu Sep 7 23:59:19 2006 +1000 + + Fix second start of X server without module reload beforehand, and a couple of other fixes. + + - Mark the correct RAMIN slots as free (oops) + - Remove a VRAM alloc that shouldn't have been there (oops) + - Move HT init out of firstopen() and into dma_init() + - Setup PFIFO_RAM{HT,FC,RO} in pfifo_init() + +commit dddacd7a3a4bd0c453b346cee70d1d36a401e539 +Author: Eric Anholt +Date: Wed Sep 6 23:26:50 2006 -0700 + + Use the DRM_INIT_WAITQUEUE argument (needed on Linux) to avoid a warning. + +commit 55057660f035a03078910d678e5fd9b0cb0b795a +Author: Eric Anholt +Date: Wed Sep 6 23:25:14 2006 -0700 + + Put the PCI device/vendor id in the drm_device_t. + + This helps us unbreak FreeBSD DRM from the 965 changes. + +commit d5726761858b1ff0fd6e6ee92ec1648fbb958a53 +Author: Eric Anholt +Date: Wed Sep 6 23:08:29 2006 -0700 + + Add a typedef for u64. + +commit d89c623f8e739815ea952adc77cfe5c0f7204407 +Author: Stephane Marchesin +Date: Thu Sep 7 00:35:17 2006 +0200 + + Remove a 64 bit div. + +commit e2ea72187e470c2c13adbd3fba4177bd4a0ecc37 +Author: Wang Zhenyu +Date: Wed Sep 6 22:57:17 2006 +0800 + + Adding pci id for Crestline + +commit e3f54ecdd9d266607afd7d8b62960b2154b63e9d +Author: Thomas Hellstrom +Date: Tue Sep 5 19:36:45 2006 +0200 + + Multithreaded application note. + +commit 604215396847a7964fd7d68aa89d4f778b3bf22b +Author: Thomas Hellstrom +Date: Tue Sep 5 18:00:25 2006 +0200 + + Fence all unfenced buffers function. + +commit 034fc31292edaa25779a938ab3e92ef34697eaf9 +Author: Thomas Hellstrom +Date: Tue Sep 5 14:23:18 2006 +0200 + + i915: Only turn on user IRQs when they are needed. + +commit 8c613a8363963330fbf701186f654007d6208bba +Author: Thomas Hellstrom +Date: Tue Sep 5 11:00:52 2006 +0200 + + Fix memory cache initialization. + +commit f88c32fd4cb93fe8b9dfa543a26d74733d0cd8ef +Author: Thomas Hellstrom +Date: Mon Sep 4 22:05:21 2006 +0200 + + Libdrm function headers. Some renaming. + +commit 550f51b4bf9920718aab2c611b15de3020537f92 +Author: Thomas Hellstrom +Date: Mon Sep 4 21:50:12 2006 +0200 + + Buffer object wait IOCTL operation. + Remove option to wait for fence / buffers and block signals. + +commit a6b8e3eaf49044e135a0b9288192525f301458d5 +Author: Thomas Hellstrom +Date: Mon Sep 4 16:57:20 2006 +0200 + + Make memory caches global so that they can be used with + multiple heads. + +commit b119966ae65c9ee74096cf0b246bf7703cb58ec4 +Author: Ben Skeggs +Date: Sun Sep 3 06:36:06 2006 +1000 + + Allow cmdbuf location(AGP,VRAM) and size to be configured. + +commit 97291a6ad05848b05af69e52453d93db1e96473b +Author: Ben Skeggs +Date: Sat Sep 2 22:25:26 2006 +1000 + + Use DMA_IN_MEMORY for DMA objects. This is needed for a DDX change that will + be committed soon after this. Without the change, MEMFORMAT_DMA_OUT appears + to have no effect. + +commit a96b61fdc4fc3df50c91ca489f45f12cdad74f69 +Author: Thomas Hellstrom +Date: Fri Sep 1 18:11:34 2006 +0200 + + Lindent drm_bo.c + +commit 405b5d9ca8cc9f6c5c7bb764c684bf74ba7660c6 +Author: Thomas Hellstrom +Date: Fri Sep 1 18:11:05 2006 +0200 + + Flag bit pattern bugfixes. Remove some error messages. + +commit ef8e618cf30ab7dcbe8c7211e0c2508c5520a669 +Author: Thomas Hellstrom +Date: Fri Sep 1 16:38:06 2006 +0200 + + Export buffer info on map and validate ioctls. + Add an info ioctl operation. + +commit 11f51a9a877d1231551e8c6482a6f70daf380cdd +Author: Thomas Hellstrom +Date: Fri Sep 1 15:41:55 2006 +0200 + + Bugfixes, + Memory allocation optimizations. + Buffer manager takedown. + +commit 4edb95d6e0a00a9a8885603cab2c99e3c6daa705 +Author: Thomas Hellstrom +Date: Fri Sep 1 11:23:21 2006 +0200 + + Various bugfixes. + +commit 44f6d08988a77a640bea40d09cb61eec7566a5ce +Author: Thomas Hellstrom +Date: Thu Aug 31 21:42:29 2006 +0200 + + Validation and fencing. + +commit 03c137c5f8d44c374406efe19c01105fcf34d583 +Author: Thomas Hellstrom +Date: Thu Aug 31 15:36:40 2006 +0200 + + Remove the buffer manager mutex. Use dev->struct_mutex instead. + Add a function to free buffers on hold for destruction if their + fence object has expired. + Add a timer to periodically call that function when there are + buffers pending deletion. + +commit ec8c79b79de6544cc09b5a2c85213a5f30e0d906 +Author: Thomas Hellstrom +Date: Thu Aug 31 14:10:13 2006 +0200 + + More mapping synchronization. + libdrm validate and fencing functions. + +commit ed9de124cc88cee398b7013de6b822bfaa3f397e +Author: Thomas Hellstrom +Date: Wed Aug 30 21:31:38 2006 +0200 + + Lindenting drm_bo.c and drm_ttm.c + +commit 914a77a15aae07cc305cc5da5ad6c7a639cbc121 +Author: Thomas Hellstrom +Date: Wed Aug 30 21:30:47 2006 +0200 + + Buffer object binding. + Some code reordering. + +commit 611662ab287c279a95ae33442325626e0191e2c5 +Author: Thomas Hellstrom +Date: Wed Aug 30 20:23:40 2006 +0200 + + Buffer eviction. + Reworked map refcounting so that any process waiting on buffer object unmap + will allow in other processes to unmap the buffer object. + +commit d39055174b5a487f0d848e1af4c3459fb4261bf1 +Author: Thomas Hellstrom +Date: Wed Aug 30 17:40:07 2006 +0200 + + Remove the buffer object hint field and use it only + as an argument. + Validate stub. + +commit ff95ea5536d70f9bc8eac12f2c97dae71fb97066 +Author: Thomas Hellstrom +Date: Wed Aug 30 15:11:50 2006 +0200 + + Add missing map flags. + +commit 14a835be616183e733a2d6a7dcc697b8a6f46caf +Author: Thomas Hellstrom +Date: Wed Aug 30 15:08:40 2006 +0200 + + Buffer object mapping and mapping synchronization for multiple clients. + +commit e47a4fda2ef7aada45b7799ad20e8012102dc12e +Author: Thomas Hellstrom +Date: Wed Aug 30 13:04:08 2006 +0200 + + Memory manager init and takedown. + +commit 033bda07e9a4eab5058fb919b375deb57b08b5be +Author: Thomas Hellstrom +Date: Wed Aug 30 09:57:35 2006 +0200 + + Buffer object reply fill in. + Lindent of drm_bo.c drm_ttm.c + +commit 24dddc27549f2b8cf837305ee84dd1ca97df98e7 +Author: Ben Skeggs +Date: Wed Aug 30 16:55:02 2006 +1000 + + Add stub {get,set}param ioctls. + +commit de144ba23c1245cf021a63cc739c7c9903568272 +Author: Thomas Hellstrom +Date: Tue Aug 29 21:57:37 2006 +0200 + + Part of buffer object libdrm interface. + +commit 23f01c9fe8e6170459fe46ad5fc9757bbe967d96 +Author: Thomas Hellstrom +Date: Tue Aug 29 18:40:08 2006 +0200 + + Checkpoint commit. Buffer object flags and IOCTL argument list. + +commit 0dedfc2cd03f50b435476e56637b333d345fddbd +Author: Thomas Hellstrom +Date: Tue Aug 29 14:52:02 2006 +0200 + + Checkpoint ttm addition to buffer objects. + +commit 279e8d26c6cf7347aa9cb6d50d025a41dff9a5be +Author: Thomas Hellstrom +Date: Tue Aug 29 10:45:34 2006 +0200 + + 64-bit IOCTL integer (Michel Dänzer & Brian Paul) + +commit 205740647060bc3bdec2b4402a666eb1015932ff +Author: Thomas Hellstrom +Date: Mon Aug 28 17:51:53 2006 +0200 + + Buffer object creation. + +commit 0d67356de4e0c9e0d068ea9c16cf33df4fd13776 +Author: Thomas Hellstrom +Date: Mon Aug 28 16:36:37 2006 +0200 + + Proper TTM dereferencing + Initial buffer object creation. + +commit 3cfab681b3c82c7951f1cc337d2021a6f0d08b1e +Merge: 8892838 9b984b3 +Author: Dave Airlie +Date: Tue Aug 29 00:01:19 2006 +1000 + + Merge branch 'master' into nouveau-1 + +commit 05536a64785223ee8c57556300a14ba9c89837ae +Author: Thomas Hellstrom +Date: Mon Aug 28 13:51:39 2006 +0200 + + Buffer object idle and mapping synchronization. + +commit 480ea65ee4b02fa21d1ddf3bea09ac23085618cc +Author: Thomas Hellstrom +Date: Mon Aug 28 10:58:21 2006 +0200 + + Checkpoint buffer object IOCTL stub. + +commit e181f594a4a75790ce1d2a8e907f9fcc5e88b419 +Author: Thomas Hellstrom +Date: Mon Aug 28 09:49:09 2006 +0200 + + Add a 64-bit drm unsigned type for 64-bit clean IOCTLS. + Conversion functions in drmP.h and xf86drm.c. + +commit 4ddabd15620e6e4638a6a37a3a2b5bced626fcf9 +Merge: 886d3b3 9b984b3 +Author: Thomas Hellstrom +Date: Mon Aug 28 09:28:10 2006 +0200 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into drm-ttm-0-2-branch + + Conflicts: + + linux-core/drmP.h + +commit 9b984b34e99f694e10251e15bc2ec1bc844dcca4 +Author: Dave Airlie +Date: Sat Aug 19 17:59:18 2006 +1000 + + drm: lots of small cleanups and whitespace issues fixed up + + remove a mach64 warning, align a lot of things from linux kernel + +commit 60ddaaf2e07b57997bcbaef0576005b52130bd24 +Author: Dave Airlie +Date: Sat Aug 19 16:56:03 2006 +1000 + + add static function, and remove bad attributions + +commit 3586ecd060d9468eba73c203c5e9de965fe904fb +Author: Dave Airlie +Date: Sat Aug 19 16:55:30 2006 +1000 + + fix const pointer warnings with file_operations + +commit 205c573e449b38d759273f6a51eb8c1131585ece +Author: Dave Airlie +Date: Sat Aug 19 16:55:00 2006 +1000 + + remove local copies of pci domain/bus/slot/num + +commit b4feb2c04efdcf31d094b03ea32327a06d9dcdd2 +Author: Dave Airlie +Date: Sat Aug 19 16:43:16 2006 +1000 + + remove some DRM_ARRAY_SIZE from linux core code + +commit 3a91e1a5fbfbca4654cca0ef41dc016fd8be80dd +Author: Dave Airlie +Date: Sat Aug 19 16:36:26 2006 +1000 + + fixup some of the comments in drm_context.c + +commit 27c72b67eceec7517c34d2ca456c7474a353d6e6 +Author: Dave Airlie +Date: Sat Aug 19 16:31:34 2006 +1000 + + drm: i810_dma.c: fix pointer arithmetic for 64-bit target + + First warning result from open-coded PTR_ERR, + the rest is caused by code like this: + + *(u32 *) ((u32) buf_priv->kernel_virtual + used) + + I've also fixed a missing PTR_ERR in i830_dma.c + + From: Denis Vlasenko + Signed-off-by: Dave Airlie + +commit 886d3b3061cdf53f5a353cbaac843f63104d2658 +Author: Thomas Hellstrom +Date: Sun Aug 27 22:01:33 2006 +0200 + + Bugfixes. + +commit 928bdc6c1c9cd1e60f0b070533768aaca56c84d8 +Author: Thomas Hellstrom +Date: Sun Aug 27 21:21:06 2006 +0200 + + Initialize i915 saved flush flags. + +commit b4b7b997605f88f3ffdcb0cc7cd1271e0cb24073 +Author: Thomas Hellstrom +Date: Sun Aug 27 21:16:13 2006 +0200 + + Remove the ioctl multiplexing, and instead allow for generic + drm ioctls 0x80 - 0xFF. + +commit ac26b51503dfedf422d6ae49518adcf41dff1af3 +Author: Thomas Hellstrom +Date: Sun Aug 27 19:45:38 2006 +0200 + + Have TTM create and reference ioctl call return the actual TTM size. + +commit 4fa58aa15242333a635cb590762c6e6312945745 +Author: Thomas Hellstrom +Date: Sun Aug 27 19:07:38 2006 +0200 + + Add TTM map handle on reference. + +commit 65e7274008446d2059b7fd7cd6d7b1d6b04da0ce +Author: Thomas Hellstrom +Date: Sun Aug 27 19:03:20 2006 +0200 + + ttm create / destroy / ref / unref ioctl. + +commit 88928380c87e60d22a0a9698c468036f180f0761 +Author: Dave Airlie +Date: Sun Aug 27 08:59:50 2006 +1000 + + add pci ids for nouveau + +commit fef9b30a2b437c0103c33443566604027529b91d +Author: Dave Airlie +Date: Sun Aug 27 08:55:02 2006 +1000 + + initial import of nouveau code from nouveau CVS + +commit b99e332236ca5fcc11e8d7c89566bbf3bcf959ee +Author: Michel Dänzer +Date: Sat Aug 26 12:21:11 2006 +0200 + + Bug #7595: Avoid u32 overflows in radeon_check_and_fixup_offset(). + + The overflows could cause valid offsets to get rejected under some + circumstances, e.g. when the framebuffer resides at the very end of the card's + address space. + +commit c488e25ceb421c6f84f110d786d9814ac4dba1b2 +Author: Thomas Hellstrom +Date: Fri Aug 25 20:03:39 2006 +0200 + + More ioctl stubs. + Buffer object locking order documentation. + +commit 35c8ce6c2945ff09dc52dbc2a7382798ba64c1da +Author: Thomas Hellstrom +Date: Fri Aug 25 19:03:42 2006 +0200 + + ttm and buffer objects ioctl stubs. + +commit 1d3cf107d20cb11ad07667622785ef8341ab9c2a +Author: Thomas Hellstrom +Date: Fri Aug 25 18:14:22 2006 +0200 + + Module protection map access is moving into mainline kernels. + Update drm_compat accordingly. + (Reported by Dave Airlie) + +commit 4c03030b12bae28dad50d69bd271de632c43ff13 +Author: Thomas Hellstrom +Date: Fri Aug 25 18:05:35 2006 +0200 + + Checkpoint commit + Buffer object code. + +commit ea5709997329a6c425261dcc454cf7dd97a81167 +Author: Thomas Hellstrom +Date: Wed Aug 23 13:49:13 2006 +0200 + + Fix previous commit: Only fall back to hashed handles + when there is a duplicate handle error. Not for other errors. + +commit 8fa43d4b2ff4137bab743bfaf6282aa327f16830 +Merge: e201511 459b234 +Author: Thomas Hellstrom +Date: Wed Aug 23 13:31:45 2006 +0200 + + Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into drm-ttm-0-2-branch + +commit 459b234d79daaa8a003da9ea48775a5587d5ba2a +Author: Thomas Hellstrom +Date: Wed Aug 23 11:31:10 2006 +0200 + + Allow multiple addMaps with the same 32-bit map offset. + (Reported by Dave Airlie) + +commit 8dfe917cb26bbeddda0e1b52060d8dce188468f3 +Author: Thomas Hellstrom +Date: Wed Aug 23 11:21:33 2006 +0200 + + Fix hashtab implementation leaking illegal error codes to user space. + (Reported by Dave Airlie) + +commit e201511a0fbeb177a9ecd7f77d177fc88c1616fb +Author: Thomas Hellstrom +Date: Tue Aug 22 11:57:08 2006 +0200 + + More ttm cleanups. + +commit ca4e34e532e818921f7b2d36fc6886874b7f7924 +Author: Thomas Hellstrom +Date: Tue Aug 22 11:19:53 2006 +0200 + + ttm code cleanup. + Fix the sleep-in-page-table-spinlock bug discovered by Dave Airlie + +commit a6535c8db4614376ce8ecb7d889b92db066a96cc +Author: Thomas Hellstrom +Date: Tue Aug 22 10:44:09 2006 +0200 + + Add a fence object class field for future use (For example VSYNC fence objects) + +commit 7058d06317e17253d874bf4df7b09d0d52a5fd74 +Author: Thomas Hellstrom +Date: Tue Aug 22 10:24:48 2006 +0200 + + Initial i915 buffer object driver + +commit b81ca5e031b2fbd9c5c401057c72f5857f7f5a3a +Author: Thomas Hellstrom +Date: Tue Aug 22 10:09:57 2006 +0200 + + AGP backends for TTM. + +commit 700bf80ca9fadf2c1404c220addebd92d9ad799d +Author: Thomas Hellstrom +Date: Tue Aug 22 09:47:33 2006 +0200 + + Bring in stripped TTM functionality. + +commit 8d5b7c77f9b31aa9bcf81536d39769f4f3feeb63 +Author: Thomas Hellstrom +Date: Mon Aug 21 21:37:43 2006 +0200 + + Allow longer sequence lifetimes. + +commit e089de33e8efd87b30d59c571b9ab9aa302b23e1 +Author: Thomas Hellstrom +Date: Mon Aug 21 21:36:00 2006 +0200 + + i915 fence object driver implementing 2 fence object types: + 0x00 EXE fence. Signals when command stream interpreter has reached the point + where the fence was emitted. + 0x01 FLUSH fence. Signals when command stream interpreter has reached the point + where the fence was emitted, and all previous drawing operations have been + completed and flushed. + Implements busy wait (for fastest response time / high CPU) and + lazy wait (User interrupt or timer driven). + +commit 6571f74a4906ae4f5f92916d64cc2cce3c8e0043 +Author: Thomas Hellstrom +Date: Mon Aug 21 21:12:29 2006 +0200 + + Remove some accidently included TTM code. + +commit 657bacc3953e8e51a0a15bd872e9818c9dbcbc10 +Author: Thomas Hellstrom +Date: Mon Aug 21 21:04:36 2006 +0200 + + Add missing fence type define. + Add drm_fence.o to Makefile + +commit 166da9355d95affe427a6cff3525df60e80a99df +Author: Thomas Hellstrom +Date: Mon Aug 21 21:02:08 2006 +0200 + + User / Kernel space fence objects (device-independent part). + +commit 1c787f0d396c309131d5f34939598d657ee2459f +Author: Thomas Hellstrom +Date: Mon Aug 21 20:38:57 2006 +0200 + + Backwards compatibility code for ttms. + +commit 42c2cfcf7d5730a2961d425228e042f533b312fa +Author: Thomas Hellstrom +Date: Mon Aug 21 20:30:19 2006 +0200 + + Generic DRM support base-class support for user-space objects, like + fence objects and buffer objects: + Refcounting, + Inter-process sharing, + Synchronization + Destruction. + +commit 11f9e404fb66927146de30227fa05c5485aa1726 +Author: Thomas Hellstrom +Date: Mon Aug 21 17:02:44 2006 +0200 + + Avoid using vmalloc for small hash tables. + +commit 0afb877a37a33e8493628ddc267fb00650fd1840 +Author: Dave Airlie +Date: Sat Aug 19 17:59:18 2006 +1000 + + drm: lots of small cleanups and whitespace issues fixed up + + remove a mach64 warning, align a lot of things from linux kernel + +commit 78634c14a8f92fbbc404442ce6d7b170e6a6e561 +Author: Dave Airlie +Date: Sat Aug 19 16:56:03 2006 +1000 + + add static function, and remove bad attributions + +commit d90a55fe3488020967a4d1b1699ef1f42d50b422 +Author: Dave Airlie +Date: Sat Aug 19 16:55:30 2006 +1000 + + fix const pointer warnings with file_operations + +commit 3a681bb4c12ee1042eb31ec565a3eb2ecccddd3d +Author: Dave Airlie +Date: Sat Aug 19 16:55:00 2006 +1000 + + remove local copies of pci domain/bus/slot/num + +commit cc71393559b94ba491059822d7cad388460a0ddf +Author: Dave Airlie +Date: Sat Aug 19 16:43:16 2006 +1000 + + remove some DRM_ARRAY_SIZE from linux core code + +commit 4b38f72672c53ed64f016241dcb5d770894657b8 +Author: Dave Airlie +Date: Sat Aug 19 16:36:26 2006 +1000 + + fixup some of the comments in drm_context.c + +commit f89a576aece919f2f9bd42b7d36a5df62cb0d68e +Author: Dave Airlie +Date: Sat Aug 19 16:31:34 2006 +1000 + + drm: i810_dma.c: fix pointer arithmetic for 64-bit target + + First warning result from open-coded PTR_ERR, + the rest is caused by code like this: + + *(u32 *) ((u32) buf_priv->kernel_virtual + used) + + I've also fixed a missing PTR_ERR in i830_dma.c + + From: Denis Vlasenko + Signed-off-by: Dave Airlie + +commit 0316f93d51abc52b816e936e0ece304ac47799c3 +Author: Thomas Hellstrom +Date: Wed Aug 16 16:36:56 2006 +0200 + + Remove hash tables on DRM exit. + +commit 4daa024918d461ab8d173631fa5187dc50253b67 +Author: Thomas Hellstrom +Date: Mon Aug 14 17:11:14 2006 +0200 + + Avoid kernel oops in some error paths calling drm_lastclose(). + +commit 0d60cd0036c6bc5383cdc1dad719950afd68cbbf +Author: Dave Airlie +Date: Mon Aug 14 11:52:34 2006 +1000 + + remove all TRUE instances as well + +commit 18a48a9267826a3c81e87a5fa9bba79ea0cd295c +Author: Dave Airlie +Date: Mon Aug 14 11:49:52 2006 +1000 + + remove all TRUE/FALSE no need for this in the drm, use 0 or 1 + +commit 7a46d4139982cc82559ccf9a1bc09a52bdf12223 +Author: Dave Airlie +Date: Thu Aug 10 14:38:50 2006 +1000 + + i965 code and Linux coding style < 0 + + smack my whitespace up. + +commit 5340a7022766f3437fcaf9d8d4d83944befc2fa2 +Author: Dave Airlie +Date: Thu Aug 10 14:32:18 2006 +1000 + + cleanup some whitespace issue and move compat code to compat header + +commit df7378d7fa9d048aea6911a3fe4973050003401b +Author: Dave Airlie +Date: Thu Aug 10 14:31:56 2006 +1000 + + clean up script to create an lk drm directory + +commit 28069ff10f288d06eb15ce0425def3625157187f +Author: Dave Airlie +Date: Thu Aug 10 14:31:22 2006 +1000 + + drm: ati_pcigart cleanup + + use NULL instead of 0, cleanup some whitespace + +commit 48cb9aceed782a4e9c557f30429e65f845dd777d +Author: Alan Hourihane +Date: Tue Aug 8 15:05:54 2006 -0700 + + Add support for Intel i965G chipsets. + + This is a patch prepared by Guangdeng Liao based off of Tungsten Graphics's + final code drop. + +commit e524028630013bb0f436bcdca0396289745843cf +Author: Dave Airlie +Date: Mon Aug 7 21:34:40 2006 +1000 + + drm: whitespace cleanup in new files + +commit 4b3ea90bc4ceeae440c64e0af8b59cf77ea7b622 +Author: Dave Airlie +Date: Mon Aug 7 21:00:13 2006 +1000 + + drm: remove extra whitespace from drm_mm.c + +commit 248d1a32a2462904bcaf040320b490570b4b0be6 +Author: Dave Airlie +Date: Mon Aug 7 20:56:38 2006 +1000 + + drm: fixup whitespace and style for Linux kernel import + +commit 35066b51efeb0d2ae9b4ba7fba066f80f798539d +Author: Michel Dänzer +Date: Wed Jul 26 18:21:32 2006 +0200 + + Revert "Make sure busmastering gets disabled on module unload." + + This reverts af7b89d7246efbed7d05c38fcaa6a13c4b89db90 commit. It causes an oops + on X server shutdown here, and for the reporter of bug #7629 as well. + +commit 645453ce11f819c4e9dd9be95ce9d621dc7d466b +Author: Michel Dänzer +Date: Wed Jul 26 18:14:20 2006 +0200 + + Bug #7629: Fix for CHIP_IS_AGP getting 'restored' with non-AGP cards + + Commit 2a47f6bfecea5dabcbf79d5e1aaf271f50070b89 caused the CHIP_IS_AGP flag to + get 'restored' with PCI(e) cards. I can't think of a way to fix this without + introducing a (otherwise redundant) CHIP_IS_PCI flag. + +commit 09c901e4bdf2bd18110f963ef3759f6759f15317 +Author: Dave Airlie +Date: Mon Jul 24 11:09:41 2006 +1000 + + remove incorrect exit marking on cleanup pci as this is called from other paths + +commit 5cfbd5dbab4fe9668771377cb22da04c6103459e +Author: Dave Airlie +Date: Mon Jul 24 10:51:27 2006 +1000 + + switch drm to use Linux mutexes instead of semaphore. + + I hope the fallback compat code works if not shout at me. + +commit 6677e2a10b820a5ccfd375cc627b8e41453a71da +Author: Adam Jackson +Date: Wed Jul 19 16:19:25 2006 -0400 + + Delete the pre-core DRM code with extreme prejudice. + +commit af7b89d7246efbed7d05c38fcaa6a13c4b89db90 +Author: Adam Jackson +Date: Wed Jul 19 15:35:31 2006 -0400 + + Make sure busmastering gets disabled on module unload. + +commit d5e0f8bdaf8769642950b8219f0e80f6b523817d +Author: Michel Dänzer +Date: Wed Jul 19 19:18:32 2006 +0200 + + Use RADEON_RB3D_DSTCACHE_CTLSTAT instead of RADEON_RB2D_DSTCACHE_CTLSTAT. + + The latter seems to be a read-only mirror of the former. + +commit 2a47f6bfecea5dabcbf79d5e1aaf271f50070b89 +Author: Michel Dänzer +Date: Wed Jul 19 19:16:26 2006 +0200 + + Make sure CHIP_IS_AGP flag is set when not overriding to PCI mode. + + This allows using AGP after overriding to PCI mode in a previous session + without reloading the DRM. + +commit c91748e702af1c59d88a4b6c2afb20a781dc6660 +Author: Michel Dänzer +Date: Wed Jul 19 19:13:00 2006 +0200 + + When writeback isn't used, actually disable it in the hardware. + + Not doing this might waste bus bandwidth or even cause memory corruption or + system crashes on systems that check bus transfers. No such incident has been + reported though. + +commit e337eadcec9c1e2cf885167c076ab2407bd6c090 +Author: Michel Dänzer +Date: Wed Jul 19 19:07:06 2006 +0200 + + Implement RADEON_PARAM_SCRATCH_OFFSET getparam. + + When this succeeds, userspace can read the scratch register contents from the + mapped writeback page directly. + +commit 7dea64677b62418b14d34c41399cdb8bf8b817cd +Author: Michel Dänzer +Date: Wed Jul 19 19:01:33 2006 +0200 + + Some debug output when the getparam ioctl is called with an unknown parameter. + +commit b9243ce3d5ed6bd70851a132871387d4d2e886bc +Author: Michel Dänzer +Date: Wed Jul 19 18:31:43 2006 +0200 + + .cvsignore -> .gitignore + + Sort the merged file, remove the redundant explicit .ko lines and add + some generated symlinks. + +commit 126673d62afad6da84e833daa644a352d88a5e37 +Author: Thomas Hellstrom +Date: Tue Jul 11 14:37:37 2006 +0000 + + Keep hashed user tokens, with the following changes: + 32-bit physical device addresses are mapped directly to user-tokens. No + duplicate maps are allowed, and the addresses are assumed to be outside + of the range 0x10000000 through 0x30000000. The user-token is identical + to the 32-bit physical start-address of the map. + 64-bit physical device addressed are mapped to user-tokens in the range + 0x10000000 to 0x30000000 with page-size increments. The user_token should + not be interpreted as an address. + Other map types, like upcoming TTM maps are mapped to user-tokens in the + range + 0x10000000 to 0x30000000 with page-size increments. The user_token should + not be interpreted as an address. + This keeps compatibility with buggy drivers, while still implementing a + hashed map lookup. The SiS and via device driver major bumps are + reverted. + +commit a392349691ec2aa3f83d8a9fc4a485e4dbef4bbe +Author: Thomas Hellstrom +Date: Mon Jul 10 13:00:21 2006 +0000 + + Change drm Map handles to be arbitrary 32-bit hash tokens in the range + 0x10000000 to 0x90000000 in PAGE_SIZE increments. + Implement hashed map lookups. + This potentially breaks both 2D and 3D drivers. If so, the corresponding + 2D and 3D driver should be fixed, and it's corresponding drm device driver + should have its major bumped as soon as possible. + Bump sis and via drm device driver majors. + The SiS and Unichrome 3D drivers are fixed in Mesa CVS HEAD and + mesa_6_4_branch. + +commit c21a7b763ad31c3473ba2c9a1a01bb729bc13bb5 +Author: Thomas Hellstrom +Date: Wed Jul 5 15:52:35 2006 +0000 + + SiS 315 Awareness. + +commit 264f60ded4921e00f83198fa48e82037f26e818c +Author: Thomas Hellstrom +Date: Wed Jul 5 14:39:22 2006 +0000 + + Add missing semaphore release. + +commit 56b073385213d187535fbbd24adaf9ebeb7c752f +Author: Adam Jackson +Date: Tue Jun 27 21:04:50 2006 +0000 + + Disable building static libraries. Bump to 2.0.2 for header updates. + +commit aafedbf7c57903949e74fc7123a1f1fc1e94ea47 +Author: Alan Hourihane +Date: Fri Jun 23 16:29:39 2006 +0000 + + Fix compilation problem on 2.6.9 kernels (bug #6211) + +commit da143d0606e321e48037d39e0c82355a4695328a +Author: Keith Packard +Date: Thu Jun 22 21:34:44 2006 +0000 + + Remove spurious debug messages from i915 vblank config paths + +commit f8891ef802e3417c4ecda08d597e081485d75060 +Author: Keith Packard +Date: Wed Jun 21 00:15:10 2006 +0000 + + i915: Save vblank pipe configuration to restore on resume + +commit 83f256e60e44d83304df44cead6617212fe437b4 +Author: Keith Packard +Date: Mon Jun 19 20:15:53 2006 +0000 + + Add i915 ioctls to configure pipes for vblank interrupt. + i915 vblanks can be generated from either pipe a or b, however a disabled + pipe generates no interrupts. This change allows the X server to select + which pipe generates vblank interrupts. + +commit 58b63ee5ccc1427a6835ef5112fe556faa9e1be3 +Author: Thomas Hellstrom +Date: Mon Jun 19 09:12:50 2006 +0000 + + Fix buffer cleanup on close. Move memory manager reset from final_context + to lastclose. + +commit 96f272884d6caf7940c9bc3c95dcac75b0a8cd3f +Author: Thomas Hellstrom +Date: Mon Jun 19 09:01:31 2006 +0000 + + via: Bump version number and date. + +commit 0203edaa21451c2840d3c4116fb0bdbec82cb0fe +Author: Thomas Hellstrom +Date: Fri Jun 16 15:20:20 2006 +0000 + + via: Return the requested size instead of the correct size of the allocated + regions. The 2D driver and XvMC lib has problems when the returned size + is not the same as the allocated size. + +commit ca1a77683d523dc1d2268531b19ea23b3e1ae4f0 +Author: Thomas Hellstrom +Date: Thu Jun 15 18:37:05 2006 +0000 + + via: + -Remove out of memory error message. + -Move sman cleanup from final_context to lastclose. + -Add the P4VM800PRO (?) PCI ID. + +commit 6c7faf5814547169dec2b865abf1f63b83aaeb05 +Author: Thomas Hellstrom +Date: Tue Jun 6 17:52:03 2006 +0000 + + s/list_entry/drm_hash_entry/ for "drm_hash_item"s. + +commit 1a9e5bae109b476f9ee34975242c8938aaac4146 +Author: Thomas Hellstrom +Date: Tue Jun 6 17:46:17 2006 +0000 + + Fix drm_remove_magic potential memory leak / corruption. Move drm + authentication token hashing to new generic hash table implementation. + +commit 6bacb180cef00573fc41a1e79bdd5b89d6f1c1f5 +Author: Thomas Hellstrom +Date: Tue Jun 6 14:19:00 2006 +0000 + + Merge in the drm-sman-branch + +commit 838b03f7aad579bcb593c06e44ade02a0583d3ce +Author: Thomas Hellstrom +Date: Sun May 28 16:20:29 2006 +0000 + + file via_mm.c was initially added on branch drm-sman-branch. + +commit 7fbfb53c00c3acd5965badf1e62e8a4bb836ee22 +Author: Thomas Hellstrom +Date: Sun May 28 16:20:29 2006 +0000 + + file drm_sman.h was initially added on branch drm-sman-branch. + +commit 09872c9ab3bb597c37a83edd3bf365db46e6d507 +Author: Thomas Hellstrom +Date: Sun May 28 16:20:29 2006 +0000 + + file sis_mm.c was initially added on branch drm-sman-branch. + +commit 36160c80604a4c10c70877afb5be98210096636e +Author: Thomas Hellstrom +Date: Sun May 28 16:20:29 2006 +0000 + + file drm_sman.c was initially added on branch drm-sman-branch. + +commit 31a80d39e52097a599e77b3e52bac70da8315308 +Author: Thomas Hellstrom +Date: Fri May 26 19:33:02 2006 +0000 + + file drm_hashtab.h was initially added on branch drm-ttm-branch. + +commit f4e6e4499c1b7a26de2bbf36568f75315faec212 +Author: Roland Scheidegger +Date: Wed May 24 18:36:24 2006 +0000 + + Add support for r200 vertex programs (R200_EMIT_VAP_PVS_CNTL, and new + packet type for making it possible to address whole tcl vector space + and have a larger count) + +commit 9e0320a0ad926202f1598698ad9bc728949ba0e7 +Author: Roland Scheidegger +Date: Sat May 20 09:20:05 2006 +0000 + + add forgotten register define for previous commit + +commit e1b627c17e31bb659fe8aeffeaa2e301d5e2a88c +Author: Roland Scheidegger +Date: Sat May 20 09:08:18 2006 +0000 + + Do a tcl state flush before accessing tcl vector space. This fixes some + more problems with flickering (bug #6637). drm may not be appropriate + place for this, since doing that flush there might both be overkill and + insufficient in some cases. However, it's hard to figure out when that + flush is needed, so this has to suffice. There does not seem to be a + performance penalty associated with it. + +commit 79e596917290807f11ba6f529abc30b7c6336e52 +Author: Dave Airlie +Date: Fri May 19 04:11:22 2006 +0000 + + rip out unneeded back compat code + +commit b1a64b8136b3dafb843d9b677becfdb5f2ac1eb8 +Author: Dave Airlie +Date: Thu May 18 07:32:37 2006 +0000 + + add consts to radeon microcode. + From: tilman + +commit bdd381a7cea814d12d3207a67503cc1a5e353bed +Author: Eric Anholt +Date: Wed May 17 06:07:57 2006 +0000 + + Set entry->virtual for sg maps, fixing ATI PCI/PCIE GART support. + PR: kern/97056 Submitted by: Stanislav Sedov + +commit dcfcf1a84d400f9c1ade36a233f0a18131115921 +Author: Eric Anholt +Date: Wed May 17 05:44:39 2006 +0000 + + Add the bits for vblank support on FreeBSD, which most importantly avoids + chasing a NULL pointer at the first 3d app invocation. + +commit 7ea4a88fa30d9608b09dc0052b20e54301db547a +Author: Eric Anholt +Date: Wed May 17 05:41:48 2006 +0000 + + Add the workaround that's in the kernel to suppress GCC's warning about + refusal to inline functions that (in some cases, at least) aren't that + large. + +commit d365f031292d0f50755a3049c410443b1075fff5 +Author: Dave Airlie +Date: Sun Apr 23 09:05:05 2006 +0000 + + fixup GFP_COMP for older kernels and get_page/put_page for newer + +commit 30a5787d3671fba89d14efb638695c2dd61adf03 +Author: Dave Airlie +Date: Sun Apr 23 08:07:57 2006 +0000 + + Fix from Benh for ppc r300 scratch + +commit 4a49e6c3668dd281f70a13fb382fac93452758e2 +Author: Brian Paul +Date: Thu Apr 20 14:26:59 2006 +0000 + + check for __FreeBSD_kernel__ (bug 3810) + +commit 1327222f9b5521c2d98f7550eb335b68e2af3aea +Author: Eric Anholt +Date: Tue Apr 18 06:12:22 2006 +0000 + + Err, use "ifndef" rather than "if !", to avoid compiler warning. + +commit 2abd1f270bccfdda6e87021000ba88e07f54c181 +Author: Eric Anholt +Date: Tue Apr 18 06:08:17 2006 +0000 + + Reorder the DRM_*_AGP enum to match linux's numbers (oops). Fixes i915 + attachment. Make our mga_drv.c use them, while I'm here. + Submitted by: Jonathan Fosburgh + +commit 40b70e324430e36f10d6229793acf66d9104aff7 +Author: Eric Anholt +Date: Tue Apr 18 05:57:28 2006 +0000 + + Use __LP64__ instead of checking the linux-specific BITS_PER_LONG. + +commit 63c4d0257616c799d4f0bb84be3f17dbaf867495 +Author: Eric Anholt +Date: Sun Apr 9 20:10:32 2006 +0000 + + Revert a change that accidentally went in with whitespace changes from + Linux, which broke on FreeBSD. DRM_COPY_*_IOCTL checks for the size + parameter matching the ioctl's command size there, since the copin/out + happened earlier. + +commit 6cb366b5a83996fc7f4ceb6b4af1a89473407866 +Author: Eric Anholt +Date: Sat Apr 8 09:45:43 2006 +0000 + + Compile fixes for FreeBSD. + +commit 299aad03c2148bb3e9efdb29b89e70b712a2e055 +Author: Dave Airlie +Date: Wed Apr 5 08:34:24 2006 +0000 + + coverity bugfix from the kernel + +commit 4f53bf35454422db7cdd8db52b95016a9ec0dd2e +Author: Dave Airlie +Date: Wed Apr 5 01:23:57 2006 +0000 + + remove stupid init and exit flags.. + +commit ac5bd25208d2f636edb45b71de11decdde781862 +Author: Dave Airlie +Date: Mon Apr 3 08:06:51 2006 +0000 + + make add context non master... + +commit 985738f203f06aa630feaf4ef15b794ea50d3ee9 +Author: Dave Airlie +Date: Sat Mar 25 07:16:14 2006 +0000 + + radeon fix up the PCI ids for new memory map like the kernel one.. not + perfect but should be very safe... align some other kernel bits i810 + align with kernel + +commit 9c92b55953836589184f72f5a0c509f72af94786 +Author: Adam Jackson +Date: Mon Mar 20 21:40:54 2006 +0000 + + Bump driver date to reflect airlied's last fix. + +commit 6bb92ab086c7e21fe90b835f20e6ba493e988cf6 +Author: Dave Airlie +Date: Sun Mar 19 07:53:46 2006 +0000 + + fix issue in mga from kernel + +commit 8c8f937b3de12185e3c0041726a9f6fd5f3d21ff +Author: Dave Airlie +Date: Sun Mar 19 07:52:53 2006 +0000 + + make some functions static in via driver + +commit 38376c7fa66234107ab6d69b828eb4ca8a3ad0ea +Author: Roland Scheidegger +Date: Fri Mar 17 01:35:34 2006 +0000 + + Add missing pci ids for new radeons (most but not all are pcie, r420, + rv380, rv410), with the exception of the rs400 igps. Hopefully they no + longer lock up with new ddx, but no guarantees... (bug #5413) + +commit 14d1219442c679c754fcc4e27460610ae219951a +Author: Adam Jackson +Date: Wed Mar 15 01:02:54 2006 +0000 + + Avoid walking off the end of the hash table. (Coverity report #465) + +commit ea40d3dd41cb3c562caf404fead9fdaa0b97565c +Author: Dave Airlie +Date: Wed Mar 8 23:01:32 2006 +0000 + + Fix bug I reintroduced + +commit ef835973b2f26410f9c9d3abed3b3f4828a716c1 +Author: Dave Airlie +Date: Wed Mar 8 06:03:45 2006 +0000 + + fix some use before NULL check + +commit 4436ab86d8c0e1177bbec276c605d133e7c82ff0 +Author: Aapo Tahkola +Date: Tue Mar 7 01:08:35 2006 +0000 + + ia64 support for r300_scratch. (not tested) + +commit b3fdf9bb7acd023060e0dba07d3b439c3b64faef +Author: Aapo Tahkola +Date: Mon Mar 6 20:08:50 2006 +0000 + + Add general-purpose packet for manipulating scratch registers (r300) + +commit 02f76f41b12e1465db4e4a48c0b81977a8bd3d8d +Author: Thomas Hellstrom +Date: Wed Mar 1 22:22:25 2006 +0000 + + file xf86mm.c was initially added on branch drm-ttm-branch. + +commit 0f13b3e1b1765b150ffe42b759355687b040210e +Author: Thomas Hellstrom +Date: Wed Mar 1 22:22:25 2006 +0000 + + file xf86mm.h was initially added on branch drm-ttm-branch. + +commit 06e8bd2a0d668487f4124cde16629610f8f557ff +Author: Roland Scheidegger +Date: Sat Feb 25 09:51:15 2006 +0000 + + Add all radeon pci ids known by ddx, but only r350/rv350 and below (new + chips may be problematic). Leave the existing entries for new chips in + though. Remove ids not known by ddx (secondary ids, non-existant,...). + Correct some entries (name/family). Make the radeon family enum look + more alike the ddx/dri versions. See #5413 + +commit 9c0634bbadca0216749a336e587fd51b12307637 +Author: Dave Airlie +Date: Tue Feb 21 11:10:05 2006 +0000 + + set dma pages reserved + +commit abd3904bf0c5bcbf2f2ec117a3d2216dd5f830ef +Author: Dave Airlie +Date: Tue Feb 21 10:28:47 2006 +0000 + + use coherent memory for PCI allocations with COMP flag + +commit 22e41ef08338ae6dd59acbe6d4d8e50d83672816 +Author: Adam Jackson +Date: Mon Feb 20 23:09:00 2006 +0000 + + Formatting cleanup, dead code removal. Remove N() namespacing macro, + useless. Remove SIGIO handling functions as they're server-only and + properly belong in libdri. + +commit 0a211db23c0d7e22946aa25f22e9aeab6783b617 +Author: Dave Airlie +Date: Sun Feb 19 12:08:14 2006 +0000 + + experimental PCI DMA fixes use proper Linux interfaces + +commit 4c1c05ad96bd174d82ab94da7a0645bc448442f6 +Author: Dave Airlie +Date: Sun Feb 19 12:06:27 2006 +0000 + + missed a piece of benh patch + +commit a25667894a8b8cab1dc8a48994cd9a61ecaba152 +Author: Dave Airlie +Date: Sat Feb 18 05:43:19 2006 +0000 + + make some functions static from the kernel + +commit d75fa645ed03ee0e2ffddc629b050626ddde5776 +Author: Dave Airlie +Date: Sat Feb 18 05:30:03 2006 +0000 + + fix brace placement + +commit b2523e7aa103d7d0451ae460d4ab5c7556eebf8e +Author: Dave Airlie +Date: Sat Feb 18 04:18:45 2006 +0000 + + always enable and set master on pci device + +commit eb5666b089ac0defe9a8ae3d218c9d4a098f683b +Author: Dave Airlie +Date: Sat Feb 18 04:13:36 2006 +0000 + + clear i915 interrupts sources on server exit + +commit 7c18b2565ed3fc1952356967a1e057d86df6484a +Author: Dave Airlie +Date: Sat Feb 18 03:21:29 2006 +0000 + + add proper checking for bitblt multi + +commit 9fad101da95bfd37987b797020f71fe306c6f876 +Author: Dave Airlie +Date: Sat Feb 18 03:04:30 2006 +0000 + + add benh's memory management patch + +commit 08fafc424a6266fa5e3d6ba755dea22e384e9683 +Author: Dave Airlie +Date: Sat Feb 18 03:01:38 2006 +0000 + + fix build wrong function call + +commit 4791dc885619b1a6460c1fcf48f648945feea4d3 +Author: Dave Airlie +Date: Sat Feb 18 02:53:36 2006 +0000 + + major realigment of DRM CVS with kernel code, makes integration much easier + +commit 585f34c3e533cafd687beba161d6d0379b52bb47 +Author: Dave Airlie +Date: Sat Feb 18 02:38:07 2006 +0000 + + fix card unload + +commit ff9ecc09f98a345078554bac2992f96adde9038f +Author: Dave Airlie +Date: Sat Feb 18 02:34:53 2006 +0000 + + Fixup test for memory at end of memory space + +commit 659e9a091d3ea61d291d6e2f0fbfb20e685dbcbf +Author: Thomas Hellstrom +Date: Fri Feb 17 17:25:41 2006 +0000 + + via: Change via_drm.h versioning scheme after lenghty discussion on + unichrome-users. + +commit 75bf1c268fc56352631ddb10f8bedb5c9b2c8105 +Author: Thomas Hellstrom +Date: Fri Feb 17 16:54:37 2006 +0000 + + file i915_ttm.c was initially added on branch drm-ttm-branch. + +commit 292d4a5b28af80f24f0db0e85c93f8067ed47b26 +Author: Keith Whitwell +Date: Thu Feb 9 23:14:16 2006 +0000 + + Update the hardware breadcrumb in the sarea on irq reception so that + clients can avoid an ioctl waiting on fences that have already been + received. Would be even better if the hardware did the update itself. + +commit f99fc2c12d3cb36706700fb70ff5301f956d1cb8 +Author: Thomas Hellstrom +Date: Wed Feb 1 12:58:38 2006 +0000 + + file drm_mm.c was initially added on branch drm-ttm-branch. + +commit 07e1126bde7c4a9e9737894748822f98e914922f +Author: Alan Hourihane +Date: Thu Jan 26 12:14:09 2006 +0000 + + add missing name, desc, date, major, minor and patchlevel entries + +commit 1f0da9dacaa8a98958f9922729c0cf597a561399 +Author: Alan Hourihane +Date: Tue Jan 24 21:24:53 2006 +0000 + + fix an error message typo Unkown -> Unknown + +commit f19c9eecd115f5535b62a37a8ab79a2b3f73c5b0 +Author: Alan Hourihane +Date: Tue Jan 24 21:18:41 2006 +0000 + + other part of revert + +commit 788750fc8cb2647d616aad75b3255d497b356f36 +Author: Alan Hourihane +Date: Tue Jan 24 21:16:54 2006 +0000 + + put back some of Dave's code related to vblank support - accidentally + reverted. + +commit 3e8918adc8ba9405e9f496d50a3f4060b31d1dfb +Author: Thomas Hellstrom +Date: Tue Jan 24 14:08:05 2006 +0000 + + file Makefile.am was initially added on branch drm-ttm-branch. + +commit 8a9ecf45fa9be2879c4b0c08c8407a538d1be147 +Author: Thomas Hellstrom +Date: Tue Jan 24 11:20:05 2006 +0000 + + file drm_hashtab.c was initially added on branch drm-ttm-branch. + +commit 270cffbe43955033a54dd54695ca1108194e087e +Author: Alan Hourihane +Date: Mon Jan 23 10:05:22 2006 +0000 + + Fix CMDBUFFER path, add heap destroy and flesh out sarea for rotation + (Tungsten Graphics) + +commit 9a01593f1aeda40abc5815b70fff9f909702501c +Author: Aapo Tahkola +Date: Fri Jan 20 21:45:28 2006 +0000 + + Add support for texture cache flushes (R300_TX_CNTL) + +commit 534bfb3742459af8d9a30579d8f9b6ab18b475d0 +Author: Aapo Tahkola +Date: Fri Jan 20 21:30:07 2006 +0000 + + Sync from r300_reg.h from Mesa. + +commit e9732865b7c05f2930a0c8b1751aad7929a2f3a7 +Author: Alan Hourihane +Date: Thu Jan 19 14:14:06 2006 +0000 + + add Intel i945GM support + +commit d394c9fa082407591586856afbaeb0833f5a7534 +Author: Thomas Hellstrom +Date: Thu Jan 12 19:08:16 2006 +0000 + + via: direction bug in get_user_pages call in via_dmablit.c fixed. Bumped + minor since this causes the via DDX to fail with vlc video player. + +commit 2e0c281d1aabdf5b775a2f7de804d2f34a500124 +Author: Thomas Hellstrom +Date: Fri Jan 6 11:57:40 2006 +0000 + + via: Version via_drm.h Alter the drm_via_dmablit_t IOCTL arg. + +commit a019c10c303bb1b2741a1da5b582ae45977085a5 +Author: Thomas Hellstrom +Date: Fri Jan 6 11:52:01 2006 +0000 + + via: Last commit really required a bump of minor. Fix. + +commit 661004544c004090edfbb8541850303b4780b8b4 +Author: Thomas Hellstrom +Date: Fri Jan 6 11:19:06 2006 +0000 + + via: Combine PCI DMA transfers with stride==width (Idea from Luc + Verhaegen). A somewhat saner PCI DMA transfer size check. Fix some + typos. Bump patchlevel. + +commit 3f23f9b99db5d62fac6ab0f1e61f32f23ba5021b +Author: Dave Airlie +Date: Mon Jan 2 09:17:41 2006 +0000 + + nothing from VIA or S3 in this + +commit 2a9dbb2895c4ba78a6e7553fc0fb385f981b3d27 +Author: Dave Airlie +Date: Mon Jan 2 05:55:31 2006 +0000 + + make max minor more rational + +commit 92150972e5472cdf039c875dae4afee6613ee915 +Author: Dave Airlie +Date: Mon Jan 2 05:54:10 2006 +0000 + + use drm_cards_limit instead of cards_limit + +commit 781d96c61fdcc5bafe65053878d351100bf130e1 +Author: Dave Airlie +Date: Mon Jan 2 05:52:17 2006 +0000 + + use common read/write routines + +commit 8fef6fe4f02838447edbf6e99fd16df31a486772 +Author: Dave Airlie +Date: Mon Jan 2 05:43:04 2006 +0000 + + sparse cleanups + +commit bbcba83ef70013ea2e5daad86142d1fdc84939e4 +Author: Dave Airlie +Date: Mon Jan 2 05:39:19 2006 +0000 + + The radeon DRM wasn't passing sparse checking in the kernel, this fixes it + by adding a new kernel internal cmd buffer type, that has no userspace + members, and passes it around. + +commit dcbcc60864fbe592a949a1c250e1494e73504724 +Author: Dave Airlie +Date: Mon Jan 2 05:38:03 2006 +0000 + + align spacing with kernel + +commit 1ad5dfc369a4202d51fc471cd0050b299d1fab8b +Author: Dave Airlie +Date: Mon Jan 2 05:22:50 2006 +0000 + + whitespace cleanup/aligment with kernel + +commit b2be72c44468f67e37e434a1e30b811963274f9c +Author: Dave Airlie +Date: Mon Jan 2 03:44:23 2006 +0000 + + some fixes from linux kernel + +commit fb91c500bfee9777421be5706e0a3b3e5049d6de +Author: Dave Airlie +Date: Mon Jan 2 03:32:03 2006 +0000 + + complete fix for historic attribution + +commit 1d86c36655f3c5821e62a24d4a320b5bc0e1be64 +Author: Dave Airlie +Date: Mon Jan 2 03:30:57 2006 +0000 + + complete fix for attribution + +commit 42cd50fa905aea4fcdbab9ce39a54551a9a1baa9 +Author: Dave Airlie +Date: Mon Jan 2 03:25:49 2006 +0000 + + Realign via driver with changes in Linux kernel (mainly whitespace) + +commit 26462b9aa47179e724e78f0b3b1c86fd07f61d8d +Author: Eric Anholt +Date: Sat Dec 31 11:48:12 2005 +0000 + + Initialize sv.drm_dd_minor to "don't care" along with dd_major, to appease + valgrind. + +commit 7f2c7f9977d3e62c594d47ca8a5d7fefac2fc4de +Author: Eric Anholt +Date: Fri Dec 30 02:17:05 2005 +0000 + + Merge patch from jhb to catch up with FreeBSD-current vgapci master device + changes. + +commit 780e90e4a265532cf96c887267b80c691f016996 +Author: Dave Airlie +Date: Thu Dec 29 00:17:51 2005 +0000 + + add radeon card type get param so userspace can avoid walking PCI + +commit b14d15ac41c0af5093e37a47124f0995e10c3016 +Author: Dave Airlie +Date: Wed Dec 28 23:49:59 2005 +0000 + + Add vblank support to i915 DRM.. + +commit 4c988520a851ed42c1dd9e9f7cda2e79f5a23fc7 +Author: Dave Airlie +Date: Wed Dec 28 22:36:51 2005 +0000 + + step back one reported bugs against that patch + +commit 274fdf482ba5b33167213f76e6c17943ddf51985 +Author: Dave Airlie +Date: Fri Dec 16 08:02:17 2005 +0000 + + fix radeon memory mapping from Ben Herrenschmidt + +commit e7b0176584bc116faadcb59b7086a99e24651eb6 +Author: Dave Airlie +Date: Fri Dec 16 07:59:13 2005 +0000 + + Lindent some via files + +commit 2911edaed70b164c5886ee4f71df769c5e02e0c0 +Author: Eric Anholt +Date: Mon Dec 5 10:53:06 2005 +0000 + + Remove driver.device_is_agp code duplicated in drm_device_find_capability, + when it really wanted to live in drm_device_is_agp. + +commit 0b4fdc81d15c1ff8acfe6fcdfcdd58a13fb3696e +Author: Dave Airlie +Date: Mon Dec 5 01:11:20 2005 +0000 + + add texrect support for r300 + +commit be16e93537d746365a43479de3a997af7969bb84 +Author: Dave Airlie +Date: Sun Dec 4 01:24:23 2005 +0000 + + Fix from SuSE for issue with context creation failure + +commit f5a9f27bf6c831f244bc27f82ed49f35d832178e +Author: Eric Anholt +Date: Fri Dec 2 23:55:21 2005 +0000 + + Add RV410 X700PRO PCI ID + Submitted by: Adam K Kirchhoff + +commit 20fcbae5ac86b2d10b23253245f5e88b78d2c76f +Author: Eric Anholt +Date: Fri Dec 2 23:41:47 2005 +0000 + + Finish the last bits necessary to get the i915 DRM port working on FreeBSD + Submitted by: Alexey Popov + +commit 422002dc8434061729b1558ac846648041c46ab3 +Author: Eric Anholt +Date: Fri Dec 2 08:47:04 2005 +0000 + + FreeBSD PR kern/85479: Restore the enabling of debugging by default by the + DRM_DEBUG kernel option. It remains controlled by hw.dri.*.debug no + matter what. + +commit 7d735a8c9fde5fe4401067791926bdae16473587 +Author: Adam Jackson +Date: Wed Nov 30 18:44:54 2005 +0000 + + Bump package and DSO numbers to 2.0 to reflect 32/64 ABI change + +commit f28dddb5515cb1c16f8c29e025195ea29d9f01d4 +Author: Adam Jackson +Date: Wed Nov 30 03:51:46 2005 +0000 + + Resync from Xorg head: conditional include of xorg-config.h + +commit ea08b613bdc496b0e1aa3b723f8462d2c40ed8e5 +Author: Adam Jackson +Date: Wed Nov 30 02:55:14 2005 +0000 + + Resync from Xorg head (Bug #3815, GNU/kFreeBSD hack) + +commit b3189730e7b0e574a28bd4947c407457cec4f7c8 +Author: Adam Jackson +Date: Tue Nov 29 21:10:59 2005 +0000 + + Add TODO based on my email from a while ago + +commit 6941b375e86542d669366a45553ec536f9d98e48 +Author: Adam Jackson +Date: Tue Nov 29 20:03:38 2005 +0000 + + Remove redundant #ifdef stanza + +commit 48198970ce449165fe1c7294108ca3afc775563d +Author: Adam Jackson +Date: Tue Nov 29 20:02:34 2005 +0000 + + Error checking for drmStrdup (Tilman Sauerbeck) + +commit 7ede209ce0cbbc65f79d02e2cc43cfcb3abb6e99 +Author: Dave Airlie +Date: Tue Nov 29 09:50:47 2005 +0000 + + fixup xf86drm.c for new headers + +commit 0db80529d540fabd148275f8f9c999615153edbe +Author: Dave Airlie +Date: Tue Nov 29 09:46:27 2005 +0000 + + Fix from Hugh Dickins for consistent mapping + +commit 645e2d411d4cb79db307351169413004d8b5a2ea +Author: Dave Airlie +Date: Tue Nov 29 09:19:20 2005 +0000 + + fixes from Egbert for 64bit + +commit c6344e8df5a6f2010c691bcd8aed0241a3426585 +Author: Eric Anholt +Date: Mon Nov 28 23:10:41 2005 +0000 + + Assert an MIT copyright on sis_drm.h, since one was lacking and I created + that particular file. Its contents have changed a good bit since the + original sis code, and the original sis code didn't care much about + attribution since it routinely disclaims Precision Insight/VA Linux + from responsibility. Also, adjust formatting around license headers + (have a comment open immediately before the "Copyright" line, not as a + runon of any previous comments) for automatic processing into FreeBSD, + where /*- is used to signal the beginning of license headers for + automatic compilation of license lists. + +commit ec0ef9a78d0205ff771fe05d78d7a67462abbfd2 +Author: Adam Jackson +Date: Mon Nov 28 22:18:12 2005 +0000 + + remove xf86drmCompat.*, unused since about XFree86 4.2. + +commit 1835dff04a69509c0ea5fdb94abe0eaa61e7ab5a +Author: Eric Anholt +Date: Mon Nov 28 21:15:46 2005 +0000 + + Fix AGP support guessing: Implement the same bridge checking in the MGA + driver as Linux uses, and actually use the driver's device_is_agp if + available (hopefully fixing i915). + +commit 0472ac5d117908a4ef612722960411c58e824999 +Author: Brian Paul +Date: Mon Nov 28 17:33:01 2005 +0000 + + fix mem leak in HashHash() (bug 5171) + +commit a5747964ec29ece7cccb981330e073748f2fd447 +Author: Thomas Hellstrom +Date: Wed Nov 16 10:55:53 2005 +0000 + + Fixed long standing 64-bit bug in via memory manager. Bumped via date and + patchlevel. + +commit c8261e3d2486050dcd76fb769f6806982260df96 +Author: Thomas Hellstrom +Date: Tue Nov 15 11:20:47 2005 +0000 + + Loosen via dmablit alignment checks somewhat. Adapt stride check to maximum + sceen size for EXA. + +commit c575b7e19ec83e663af91b431ac8c0a9e16a3a5d +Author: Eric Anholt +Date: Tue Nov 15 09:22:09 2005 +0000 + + Fix compiling and reenable build of i915 driver. + +commit 19c5c56779250e5615a88e3581dc3bd89598b9be +Author: Eric Anholt +Date: Tue Nov 15 04:37:51 2005 +0000 + + Fix Savage DRI without ShadowStatus NO by allowing the shadow area to be + mapped. + +commit b5d71f63cdced53a8b492c3269e966088b8a3b45 +Author: Dave Airlie +Date: Fri Nov 11 12:23:18 2005 +0000 + + enable i915 32/64 bit ioctls + +commit 224ebd2c8d5916bdc782a60542ac04b86320a624 +Author: Dave Airlie +Date: Fri Nov 11 10:56:31 2005 +0000 + + RV200 < R200 + +commit eff1b8fbdf7a4251998a75a93069c56f7fc1fd78 +Author: Dave Airlie +Date: Fri Nov 11 10:52:23 2005 +0000 + + i810 should be fine with i810.. no idea what this crack is .. + +commit 97528041dfaa26b95c1ff8c86e66f7071d5eb9f7 +Author: Dave Airlie +Date: Fri Nov 11 10:02:10 2005 +0000 + + fix up radeon whitespace + +commit cc1a4dd856a00a041d9321ca2dd6f996f90cfdd8 +Author: Eric Anholt +Date: Fri Nov 11 09:36:58 2005 +0000 + + Fix breakage from the move of driver ioctl externs to header files. + +commit cd4a9ad8e2d7667ea5eff9f1f54c0aca68d40a9e +Author: Dave Airlie +Date: Fri Nov 11 09:21:05 2005 +0000 + + whitespace align with kernel + +commit 3eb577c7c52b560cc3fa9dcf5d5a02b8b3edcef7 +Author: Dave Airlie +Date: Fri Nov 11 09:20:34 2005 +0000 + + mixing breaks in r128 driver.. fixed in kernel + +commit 59924b2f409ac2e6d48c0903f858d208d30097e6 +Author: Dave Airlie +Date: Fri Nov 11 09:10:06 2005 +0000 + + copy correct Kconfig + +commit a204d5acb224eec2a9abcac73fb48f20819ea593 +Author: Dave Airlie +Date: Fri Nov 11 09:09:03 2005 +0000 + + realign whitespace with kernel + +commit cec83bf6d3fc42a83705e72b02dda0a3001ecaca +Author: Dave Airlie +Date: Fri Nov 11 09:07:08 2005 +0000 + + remove extra spaces + +commit 36356df3cbca8e7e703afadf91046214d7755a07 +Author: Dave Airlie +Date: Fri Nov 11 08:59:57 2005 +0000 + + A bunch of create_proc_dir_entry() calls creating directories had crept in + since the last sweep; converted to proc_mkdir(). + From: Al Viro (via kernel) + +commit ea07fefcbf6a07048bde6e25af6b891d51bd6f9e +Author: Dave Airlie +Date: Fri Nov 11 08:42:36 2005 +0000 + + convert to use __set_current_state, align some header includes + +commit 33fbf8b7e2a75237d9d8f4faa71d1776f8a6bbc3 +Author: Dave Airlie +Date: Fri Nov 11 08:07:11 2005 +0000 + + whitespace align closer with kernel + +commit 9a91674d453fab1fbddc6225f5aa4f7ff7484f91 +Author: Dave Airlie +Date: Fri Nov 11 07:45:46 2005 +0000 + + cleanup ioctl/max_ioctl to use header file for extern symbols + +commit b84daa8f326c1120728bb912cdf6a80524b0a8fa +Author: Dave Airlie +Date: Thu Nov 10 10:14:48 2005 +0000 + + Fix cpu_to_le32 same as kernel not sure it is correct for ppc + +commit fb22dfbfc1cf04bc5f54603a88c244ec018bced6 +Author: Dave Airlie +Date: Thu Nov 10 10:13:25 2005 +0000 + + cleanup / whitespace align with kernel + +commit 6481a2e4cda67732ce7c6fe30aa4dc50d3cc7ed0 +Author: Eric Anholt +Date: Tue Nov 8 21:40:03 2005 +0000 + + Correct a LOR issue on FreeBSD by allocating temporary space and doing a + single DRM_COPY_FROM_USER rather than DRM_VERIFYAREA_READ followed by + tons of DRM_COPY_FROM_USER_UNCHECKED. I don't like the look of the + temporary space allocation, but I like the simplification in the rest + of the file. Tested with glxgears, tuxracer, and q3 on a savage4. + +commit c7af46cf7d464ff89c64ab864fcd2af51d462812 +Author: Eric Anholt +Date: Tue Nov 8 21:36:54 2005 +0000 + + Correct another LOR issue with resource allocation. This leaves the + drm_get_resource_* resource allocation a little racy, but they're + getting called at either X Server startup or driver load, so it's + serialized anyway. + +commit a10d8178e32528e0fd8a7afa24e71a35b1c0582d +Author: Eric Anholt +Date: Tue Nov 8 20:25:00 2005 +0000 + + Initial port of savage to FreeBSD for the AGP and !ShadowStatus case. Adds + drm_mtrr_{add,del} for handling the MTRR setup. Still has a LOR issue + with DRM_VERIFYAREA_READ/DRM_COPY_FROM_USER_UNCHECKED in savage_bci.c + -- this won't work with the fine-grained locking in use, and just doing + a single copyin to a temporary will probably work fine. Also note that + the module leaks approximately 4 kb on unload. + +commit 2c6308fe54c10075379cb00506d5519e0ced1076 +Author: Eric Anholt +Date: Tue Nov 8 09:02:02 2005 +0000 + + Correct a LOR on FreeBSD by allocating a temporary buffer and doing a + single COPY_FROM_USER into it, rather than VERIFYAREA followed by many + COPY_FROM_USER_UNCHECKEDs. + +commit 4b2235d2e089a512b26ecd66ae42ea279fbb1df2 +Author: Eric Anholt +Date: Tue Nov 8 06:11:55 2005 +0000 + + Correct a LOR related to the PCI resource allocations by simply moving the + uninit to unload time rather than lastclose. + +commit 71f9b7357cb3d4ea7bb5b396840de3985bc13ad4 +Author: Eric Anholt +Date: Tue Nov 8 05:29:26 2005 +0000 + + Fix FreeBSD DRM for latest MGA changes to agp support, which cleans things + up a good bit, I think. Also, remove the agp_uninit() function which + has lain around as a noop for years now. The FreeBSD DRM is now all + compiling, with the exception of via. One known sleeping-with-lock-held + issue remains. + +commit 1a256df4804e4e987f81226a5d8e0573363607ee +Author: Eric Anholt +Date: Tue Nov 8 02:38:01 2005 +0000 + + Catch FreeBSD up to the pcie gart changes. Required minor modification to + radeon_cp.c to use a drm_local_map_t-type mapping (drm_core_ioremap + rather than drm_ioremap), which contains private device mapping + information on BSD. I also changed the ati_pcigart interface to use + "void *" for pointers to kva rather than "unsigned long". While PCIGART + support appears to be broken on FreeBSD currently, I think this is not + new, and BusType PCI remains working on my r100 in Linux. + +commit 145b23b55220bdfc6639d3279ad96310faa650a3 +Author: Eric Anholt +Date: Tue Nov 8 01:12:08 2005 +0000 + + Correct a recursion on non-recursive mutex in drm_addmap from radeon's + firstopen, by making drm_addmap require the drm device lock to be held. + Also, make matching of kernel maps match linux by requiring shm matches + to have the contains_lock flag set if the offset doesn't match. + +commit 3fce085e13d6559adaed98420c35a1313636cff5 +Author: Alan Hourihane +Date: Mon Nov 7 13:17:41 2005 +0000 + + Fix bug #4908 for now. Alternative is highlighted in this bug report as the + better future direction. + +commit 900a7e4c364d86a10dcce535f0533dac7a7a97aa +Author: Eric Anholt +Date: Sun Nov 6 06:32:25 2005 +0000 + + Re-disable the via driver while it's broken on BSD. + +commit 39615ec06e8ca9280b4feefc42e008c9795541bd +Author: Ian Romanick +Date: Thu Nov 3 00:38:25 2005 +0000 + + Converts the remaining drm_agp_foo functions to be a drm_agp_foo and + drm_agp_foo_ioctl pair. Modifies the MGA DRM to use the drm_agp_foo + functions instead of the drm_foo_agp functions. The drm_foo_agp + functions are no longer exported by drm.ko. + Ensures that dma->seg_count and dma->page_count are properly set in + drm_addbufs_{agp,sg,fb}. drm_addbufs_pci was already correct. + Ensures that mga_do_agp_dma_bootstrap correctly sets agp_buffer_token. + At this point PCI DMA is still broken. + Xorg bug: #4797 Reviewed by: Dave Airlie, Eric Anholt Signed-off-by: Ian + Romanick + +commit 10ec05793f9b0ca47ce0a07aa445f8799d2ceba1 +Author: Adam Jackson +Date: Mon Oct 31 17:48:11 2005 +0000 + + Bump to 1.0.5 for new via header + +commit bcbf5ff797f061e84223556bdcf5f6a045516355 +Author: Dave Airlie +Date: Sun Oct 23 04:07:50 2005 +0000 + + we don't use this stuff anymore .. remove 1k buffer from driver .. + +commit b63b771285a91e85c2dc7daf77191c423fb4d2a5 +Author: Thomas Hellstrom +Date: Sat Oct 22 15:12:05 2005 +0000 + + via: Sync via_drm.h with 3D driver. Bump via patchlevel and date. + +commit 79f30e79ec5b05b2052988e3e6edba8624e3d1c5 +Author: Adam Jackson +Date: Sat Oct 22 05:50:22 2005 +0000 + + Bug #328: Silence read-from-uninitialized warnings in DRM_CAS on Alpha. + (David Dawes) + +commit 00d4957d62607873c2bf0c506fab4ff6c384b414 +Author: Alan Hourihane +Date: Fri Oct 21 08:59:56 2005 +0000 + + Don't set MTRR's for intel hardware + +commit 6cd0282f6440fac661dd92a6e96e4fd82e4489b4 +Author: Dave Airlie +Date: Thu Oct 20 22:41:26 2005 +0000 + + fix G550 cards + +commit 419fc9930b5145e61c5b77c6e8f76c40af62fbc4 +Author: Adam Jackson +Date: Thu Oct 20 17:55:02 2005 +0000 + + Bump to 1.0.4. + +commit d74376779f0b421478072fa7657d4f31a5e16c12 +Author: Adam Jackson +Date: Thu Oct 20 17:53:02 2005 +0000 + + Remove the remaining references to Xlib. libdrm is totally independent now. + +commit ea83db57e3625d54ee206561803a966d074d8296 +Author: Adam Jackson +Date: Thu Oct 20 17:51:57 2005 +0000 + + via and r300 still need installed reg headers. + +commit cf8ce0888acf34afb5705faf1b6cb8d2f2945402 +Author: Thomas Hellstrom +Date: Thu Oct 20 17:37:32 2005 +0000 + + via: PCI DMA bugfixes and DOS due to too many mapped pages checks. + +commit b3631ba02cc55e0f4a4212d7075de62689bd1f43 +Author: Adam Jackson +Date: Thu Oct 20 17:32:31 2005 +0000 + + Remove bogus Xlib dependency. + +commit 763d726c439537ad3f8b1b668cf55b799a6f36db +Author: Dave Airlie +Date: Thu Oct 20 02:35:08 2005 +0000 + + dma access also needs some work + +commit 727e88c4f4e55be435e47759bb3b1e75fc42d43d +Author: Dave Airlie +Date: Thu Oct 20 01:54:38 2005 +0000 + + the old init path needs to set WAGP_ENABLE by default + +commit 4b3ee6c50ed8b9382d3f253669470a5c82e8f0bc +Author: Ian Romanick +Date: Fri Oct 14 05:01:19 2005 +0000 + + Doig a full clean up from mga_do_dma_bootstrap when + mga_do_agp_dma_bootstrap fails causes problems if + mga_do_pci_dma_bootstrap succeeds. This commit makes it possible to do + a "minimal" clean up instead. I'm still trying to figure out what is + causing the failures in mga_do_agp_dma_bootstrap... + Signed-off-by: Ian Romanick + +commit 1505e316afc68da0167c1d2db1a862ac580c65f1 +Author: Ian Romanick +Date: Fri Oct 14 01:25:38 2005 +0000 + + Fixed a cut-and-paste bug that could cause an oops in mga_do_cleanup_dma + when mga_do_init_dma fails. Still trying to determine why + mga_do_init_dma is failing. + Signed-off-by: Ian Romanick + +commit 725e329cb2aa93812e3e622a6cf2c92c0fffde9d +Author: Adam Jackson +Date: Thu Oct 13 21:03:31 2005 +0000 + + Better pkgconfig-fu: -ldrm in Libs: + +commit 0a24095cd6dff3f4934c87feb34cee4f0350c07d +Author: Dave Airlie +Date: Thu Oct 13 11:21:31 2005 +0000 + + Add X300 RV370 + +commit 308b40ea094d89660c25bf1dc16d70f5d3cc66c2 +Author: Ian Romanick +Date: Tue Oct 11 17:34:49 2005 +0000 + + The Linux 2.6.9 (and earlier) fops structure does not contain a + .compat_ioctl field. This change makes the DRM build on those kernels. + Signed-off-by: Ian Romanick + +commit 62a467303408286deef97b288ec286e21dda3761 +Author: Adam Jackson +Date: Thu Oct 6 23:31:29 2005 +0000 + + Skeleton nv drm driver, to enable DMA in EXA. (Lars Knoll, minor updates by + me) + +commit 908ad0ed96c6d1be567bff7332ec38d6b4b8db0a +Author: Dave Airlie +Date: Thu Oct 6 23:08:58 2005 +0000 + + remove version not used anymore + +commit ace8b912fbeaae9195892762a375f0ae1fbf558f +Author: Dave Airlie +Date: Fri Sep 30 09:09:03 2005 +0000 + + fix header this is now a c file + +commit 483dc9bb9298588ccd3521c8f95a8032939fbd08 +Author: Dave Airlie +Date: Fri Sep 30 07:10:16 2005 +0000 + + now I've lindented kernel it might be useful again + +commit f42cdc8dcb4ae85c15580dd0bc2a07495d8f049e +Author: Dave Airlie +Date: Fri Sep 30 06:41:10 2005 +0000 + + Add support to turn writeback off via radeon module option + +commit 6ff57e2d7cd0b9b513070f72ffd894e8d6f57149 +Author: Dave Airlie +Date: Fri Sep 30 06:35:09 2005 +0000 + + fix pci overriding from userspace + +commit 856bdf0f673510c33a23b4c4d4fff91d95eb149e +Author: Dave Airlie +Date: Fri Sep 30 03:39:02 2005 +0000 + + fixup bens fix so it works.. + +commit 68b4ad3cce6e184549988d48e85985507c8dc5ed +Author: Dave Airlie +Date: Fri Sep 30 03:14:18 2005 +0000 + + Add Bens fix for radeon maps on ppc + +commit 9d24d951f7894aacf589892b5a6848d9961339b1 +Author: Thomas Hellstrom +Date: Sun Sep 25 14:38:07 2005 +0000 + + via: fix stray error printout message. + +commit 903e5701ffbc613373f3ad3c3b7e14d493ec9dbe +Author: Thomas Hellstrom +Date: Sun Sep 25 12:54:12 2005 +0000 + + Add the via PCI DMA blit code. + +commit d4dec1db808095f42b6fd776b2582c6f27bebb9a +Author: Dave Airlie +Date: Sun Sep 25 08:54:31 2005 +0000 + + hopefully fix server recycling on PCIE + +commit c1b7df95be1194efcfd0d9ffd63da1ce27272565 +Author: Dave Airlie +Date: Sun Sep 25 05:19:06 2005 +0000 + + add __ATTR + +commit 3a0230ef9c933e07246e65a542681fc9549514f8 +Author: Dave Airlie +Date: Sun Sep 25 03:09:51 2005 +0000 + + use linux kernel macros don't make our own + +commit cd16d9685678dbb7e3d1442e62357d0b5bb98008 +Author: Dave Airlie +Date: Sun Sep 18 09:31:06 2005 +0000 + + remove pci_find_class use for alpha + +commit f5c81b262020200d4b7970d12b6c202ae0f8faee +Author: Dave Airlie +Date: Sat Sep 17 04:16:51 2005 +0000 + + compat for pci_pretty_name + +commit acb6abcc6d862224f3e91ede82909c099efdfb1f +Author: Dave Airlie +Date: Mon Sep 12 06:21:24 2005 +0000 + + update autogen from xserver tree + +commit 4b2a94db46dc4814e03d14e25ab0aed41e28a375 +Author: Eric Anholt +Date: Mon Sep 12 05:35:51 2005 +0000 + + Fix the spelling of DRM_AUTH so that the bsd core stuff builds again. Next + up is pcigart. + +commit f1276d3b4338bdfd2173bb76e931334da6075784 +Author: Dave Airlie +Date: Mon Sep 12 04:37:52 2005 +0000 + + add some pci express chips + +commit ba8f4fb778e88dfa275e35f0d2e01e4ca99e65bd +Author: Dave Airlie +Date: Mon Sep 12 04:35:31 2005 +0000 + + make PCI Express work on 64-bit machines, thanks to Alex Deucher (agd5f) + +commit 3f6fcbc6766e3032bfb0421675169cc2e732e399 +Author: Dave Airlie +Date: Sun Sep 11 09:58:19 2005 +0000 + + back out change as gart is now in framebuffer for PCIE + +commit 5565a00916122bb131ce89a2ca8f7f81ddc9387c +Author: Dave Airlie +Date: Sun Sep 11 08:51:23 2005 +0000 + + Add GART in FB support for ati pcigart, and PCIE support for r300 + +commit 29326c1a8990ffb512a891d8deecf4cd4046915c +Author: Dave Airlie +Date: Sun Sep 11 07:08:46 2005 +0000 + + fix makefile bug + +commit 53c8037786a64eede00a8944ccaa42768609b66b +Author: Roland Scheidegger +Date: Fri Sep 9 22:35:49 2005 +0000 + + Add support for GL_ATI_fragment_shader, new packets R200_EMIT_PP_AFS_0/1, + R200_EMIT_PP_TXCTLALL_0-5 (replaces R200_EMIT_PP_TXFILTER_0-5, 2 more + regs) and R200_EMIT_ATF_TFACTOR (replaces R200_EMIT_TFACTOR_0 (8 consts + instead of 6) + +commit c8b5a9f8cc3f55faf135be70e7ff0f7f062ca408 +Author: Vladimir Dergachev +Date: Fri Sep 9 12:53:44 2005 +0000 + + Add another R300 PCI id. Submitted by: Daniel Estévez + +commit 0d346a07a87ef7bf6b77adda7c776e2ac5849266 +Author: Dave Airlie +Date: Sat Sep 3 03:27:14 2005 +0000 + + convert ioctl flags to use flags instead of separate ints + +commit 80ed93c7bf9f8c8d42cbcc26e82020cfcd92fb77 +Author: Dave Airlie +Date: Sat Sep 3 02:21:22 2005 +0000 + + check is the map containing the lock + +commit 22ec8ebb17d959486e4a865b17115e609eb688ee +Author: Eric Anholt +Date: Fri Aug 26 23:27:19 2005 +0000 + + - Don't try to allocate mappings of less than a PAGE_SIZE in MGA DMA code. + - Comment out the "is this mapping/bufs in allocated AGP" bits in BSD + because they break mga (which uses AGP allocation that doesn't track + entries). It's not a security issue when we still have the related + ioctls marked root-only. + - Apply some power-of-two alignment restrictions to hopefully avoid some + panicing in bad cases of drm_pci_alloc() on FreeBSD. + - Add verbosity to some error handling that I found useful while debugging. + +commit c425ad1a34439d019edd589c32a7161d01b4d822 +Author: Eric Anholt +Date: Fri Aug 26 20:56:11 2005 +0000 + + Previously, drm_get_resource_start() and drm_get_resource_len() would + allocate the resource RF_ACTIVE, pull out the appropriate value, and + return it. However, allocating large framebuffers RF_ACTIVE would run + the system out of KVA, and this also left open the possibility of the + resource getting moved after getting the offset. Instead, when either + of these are called, allocate the resource if it isn't allocated + already (non-RF_ACTIVE) and store it in the DRM device, to be cleaned + up on lastclose. + +commit 5105f9ea59179c7129d3bf97734eb37e26ec68b0 +Author: Eric Anholt +Date: Fri Aug 26 19:07:03 2005 +0000 + + Fix a lack of parenthesis in macro usage that showed up with INVARIANTS + turned on, i.e. in a kernel build. + +commit 55bea952b326b88f2fa6502321f605f96ee9be66 +Author: Eric Anholt +Date: Fri Aug 26 00:16:01 2005 +0000 + + [1] Fix BSD DRM for the nonroot changes. [2] Don't attempt to acquire the + DMA lock in a non-DMA driver, as it will be uninitialized. + Submitted by: [1] jkim (minor changes by me) + +commit 9942cad1f6078c24bb69a126795635b2f34d65b5 +Author: Eric Anholt +Date: Thu Aug 25 23:11:28 2005 +0000 + + Add missing .cvsignore files for autotoolery. + +commit 7d5130d8fb24538e555689fb8e98f767406e0a2c +Author: Eric Anholt +Date: Thu Aug 25 02:59:21 2005 +0000 + + Include appropriate CFLAGS to find X headers, needed to build libdrm. + +commit 5a52e533e1f42072b91544fdbca785ed2c9ad76b +Author: Dave Airlie +Date: Tue Aug 23 04:10:50 2005 +0000 + + add options for x86_64 and amd will small letters + +commit 1163975f090725a0f2cddb313cc23d7e424f766f +Author: Alan Hourihane +Date: Mon Aug 22 09:52:18 2005 +0000 + + remove the README in the linux-2.6 directory + +commit 01e4364a8fec6cb2c11de4e5cb7def10b58348ae +Author: Alan Hourihane +Date: Mon Aug 22 09:50:12 2005 +0000 + + remove i915_pm code as it causes too many issues with current software + suspend, and the DDX driver re-inits the board successfully anyway. + +commit 54947504ac70e135a38f303420b7b66eed8c23a3 +Author: Dave Airlie +Date: Sun Aug 21 11:07:03 2005 +0000 + + allocating the PCIE table from GFP_DMA seems to stop it NMI'ing + +commit e2dc70593f0d12cecac747c9044c6fb130ad6af8 +Author: Dave Airlie +Date: Sun Aug 21 03:04:32 2005 +0000 + + We don't need to install all the internal headers files only drm.h and + *_drm.h have user space interfaces + +commit 5c4ce6d93c93032dad7f5a60f8b7867980d3f7f5 +Author: Dave Airlie +Date: Sat Aug 20 07:38:11 2005 +0000 + + add x86_64 to the list as well + +commit d12768f79ac2dbf9e31a32107f6e5379cb9484e4 +Author: Dave Airlie +Date: Sat Aug 20 07:33:07 2005 +0000 + + remove checks that make ppc64 not work properly... also fix ppc64 check.. + we should be safe doing this.. + +commit 2e9bd9ac18e17e91bec4e3b777503a53a3faf952 +Author: Dave Airlie +Date: Sat Aug 20 07:12:45 2005 +0000 + + add powerpc64 to the list of archs that this test doesn't make sense on + +commit 017174085f162484277b2f798d35d3436a26e005 +Author: Adam Jackson +Date: Sat Aug 20 03:32:09 2005 +0000 + + Fix silly install issue by moving the header install rules for shared-core + into shared-core/Makefile.am. Bump to 1.0.3. + +commit 1abd165f5bd627a6eebf333135d5a1b5a32d7aa3 +Author: Adam Jackson +Date: Fri Aug 19 20:14:10 2005 +0000 + + Add r300_reg.h. Bump to 1.0.2. + +commit 8ac2fcb193c79ea8b2bd4d99b595d56f557c15f3 +Author: Dave Airlie +Date: Wed Aug 17 22:59:00 2005 +0000 + + add agp buffer token + +commit 7779659390afc5608655e617aa3f2c88b7e071c5 +Author: Dave Airlie +Date: Wed Aug 17 10:48:38 2005 +0000 + + revert reversion of a part of a patch from Jon, that I did last night while + checking things in in my sleep + +commit 279e7c113ced4f2f4dcc14801aa3084698a417bd +Author: Dave Airlie +Date: Wed Aug 17 00:14:18 2005 +0000 + + commit toggle switch to make Linux drm_handle_t unsigned int + +commit 91c9c847299a1f27c92f8663902fcee72a65f9e4 +Author: Eric Anholt +Date: Tue Aug 16 17:20:18 2005 +0000 + + Remove the long-stale BSD non-core bits. + Prodded by: CVS breakage resulting in complaints about this directory. + +commit 7af0186f4ccef285c2158770781ebfc3a26ddd66 +Author: Dave Airlie +Date: Tue Aug 16 12:51:57 2005 +0000 + + add Egberts 32/64 bit patch (its in kernel already...) + +commit 8c21b783c3e38aa2c2d16e11ec01cf695f8e7f8a +Author: Eric Anholt +Date: Mon Aug 15 18:07:12 2005 +0000 + + Port the VIA DRM to FreeBSD. Original patch by Jake, with some cleanup by + me to match other drivers and avoid ifdeffing. The linux via_drv.c will + be moved from shared-core to linux-core soon by repocopy. + Submitted by: Jake Burkholder Tested by: unichrome + +commit 4f5961eeeee806a2d6e08e159c56262d4f060cba +Author: Thomas Hellstrom +Date: Sun Aug 14 09:52:09 2005 +0000 + + VIA bugvixes by Joris van Rantwijk Initial commit. + +commit 4050f5066a706bda74ed93ab858bbc9fc0b1477b +Author: Eric Anholt +Date: Fri Aug 12 17:18:08 2005 +0000 + + Fix build after linux-side checkin of master/root-only split. Still only + cares about root on the BSD side, but should be secure. + +commit cdf49e57329803709fe26cbc103c318bc9292ddb +Author: Thomas Hellstrom +Date: Fri Aug 12 14:19:33 2005 +0000 + + Reverting the previous via security-fix commit, since the assumption of + contexts registered with the callers filp was wrong. + +commit 4931d785ed0bf9f75200ed530c4061efe2d24a63 +Author: Thomas Hellstrom +Date: Thu Aug 11 13:05:12 2005 +0000 + + Missing symbol export from previous via context check commit. + +commit d5e8ab13ff5399531eb1927dcd4535aeeed18c94 +Author: Thomas Hellstrom +Date: Wed Aug 10 19:46:46 2005 +0000 + + Security fix on via: Checking that the specified context belongs to the + caller on fb / agp memory alloc and free. Otherwise malicious clients + can register allocations on other clients or free memory used by other + clients which will lead to severe memory manager inconsistensies. + +commit 0d81954b0e4430428eddc00c6097e614e51ba0b1 +Author: Jon Smirl +Date: Tue Aug 9 01:40:45 2005 +0000 + + Make sure savage has 3rd ioctl parameter + +commit 3a61e9f96ce50101f05a5ca2cb0e34b2aa001b55 +Author: Dave Airlie +Date: Sun Aug 7 05:37:25 2005 +0000 + + make some functions static in the savage drm driver + +commit 1cbe97eea1a7ffcbf19767e83dce09da56c454f6 +Author: Dave Airlie +Date: Sun Aug 7 05:32:06 2005 +0000 + + fix ioctl in r128 drm direction from Egbert Eich. + +commit fcdb53867df4937a55e4a771328fa5a9388aee44 +Author: Dave Airlie +Date: Sun Aug 7 04:38:11 2005 +0000 + + remove bus address + +commit 99c3f88c69e5a9ac7cddd0bb24e8be3415616656 +Author: Dave Airlie +Date: Fri Aug 5 13:04:21 2005 +0000 + + Fix bug in return to userspace resctx code + From: Egbert Eich + +commit c789ea1521ac9e935f2a1c6c043619d89bae9c16 +Author: Eric Anholt +Date: Fri Aug 5 03:50:23 2005 +0000 + + Rename the driver hooks in the DRM to something a little more + understandable: preinit -> load postinit -> (removed) presetup -> + firstopen postsetup -> (removed) open_helper -> open prerelease -> + preclose free_filp_priv -> postclose pretakedown -> lastclose + postcleanup -> unload release -> reclaim_buffers_locked version -> + (removed) + postinit and version were replaced with generic code in the Linux DRM + (drivers now set their version numbers and description in the driver + structure, like on BSD). postsetup wasn't used at all. Fixes the savage + hooks for initializing and tearing down mappings at the right times. + Testing involved at least starting X, running glxgears, killing + glxgears, exiting X, and repeating. + Tested on: FreeBSD (g200, g400, r200, r128) Linux (r200, savage4) + +commit 143622a987745ca2084f7a188e9993ffd5f28fe3 +Author: Jon Smirl +Date: Thu Aug 4 14:48:43 2005 +0000 + + Implement permanent sarea maps + +commit 28e123eb3af21b1ea73bdc2176220bb669118e09 +Author: Jon Smirl +Date: Thu Aug 4 14:39:25 2005 +0000 + + Tighten up AGP security. Verify that all uses of AGP are done inside + buffers that have been allocated from AGP. This includes some new + capable(CAP_SYS_ADMIN) checks, these functions are also protected by + the root requirement on the IOCTL macros. + +commit bb9502ab01e7258c021f161b3caac8a508979dd8 +Author: Jon Smirl +Date: Thu Aug 4 13:59:48 2005 +0000 + + Mark some radeon init variables deprecated. These used to be passed in but + the driver already knew their correct value. For example the physical + address of the framebuffer and registers. + +commit ea2c7a895d6456c83ee8489e1db7ae5a800f0abf +Author: Jon Smirl +Date: Thu Aug 4 13:15:27 2005 +0000 + + Split the control of master vs root priv. Everything is still marked as + needing root. + +commit 3ffd0c188bc35263f0b53345a0a4a261f4ae1b71 +Author: Eric Anholt +Date: Thu Aug 4 07:46:11 2005 +0000 + + Whitespace fixups. + +commit b0da5df90a76e4e79c356fdbc90211a8e21f095c +Author: Eric Anholt +Date: Thu Aug 4 07:42:01 2005 +0000 + + Fix the MGA driver on BSD by passing in the proper chipset flags to the + driver's preinit routine, and by using DRM_COPY_TO_USER_IOCTL when + copying out to an ioctl's data pointer. Pulled from the latest version + of my drm-hook-rename.diff and only compile-tested after that. + +commit 49bbb6d86178890a03040d618a8c9c76c96d3d3f +Author: Eric Anholt +Date: Thu Aug 4 07:31:21 2005 +0000 + + Add a debugging error message from testing new MGA code on BSD. + +commit 40515fc93c479599f32485630b4063422106358f +Author: Adam Jackson +Date: Mon Aug 1 20:36:58 2005 +0000 + + version bump + +commit 8b4691ee13cc30893f694103e8a90c33655e5cf1 +Author: Adam Jackson +Date: Mon Aug 1 20:31:35 2005 +0000 + + Fix the pkgconfig info. (Donnie Berkholz) + +commit 1cc1f49825e7fc157f8cfecfb4c5168056f5f738 +Author: Eric Anholt +Date: Thu Jul 28 01:44:17 2005 +0000 + + Fix issues with buffer aging when more than one dma buffer is discarded in + a cmdbuf, which could lead to hangs. + Submitted by: Aapo Tahkola + +commit 942545721f9bf14941f7e2ed81c79c4f0709749a +Author: Eric Anholt +Date: Wed Jul 27 20:20:30 2005 +0000 + + Correct a couple of descriptions of files in comments (were just + copy'n'pasted). + Submitted by: jkim + +commit fccd351c8f17f69dd4ce986f0a626b42bbcb4ef0 +Author: Eric Anholt +Date: Wed Jul 27 20:19:29 2005 +0000 + + Link in the savage files from shared-core. + Submitted by: jkim + +commit 096e0349eaa56f1941edddf10ab3915b785d8281 +Author: Roland Scheidegger +Date: Wed Jul 27 18:19:11 2005 +0000 + + fix driver date and drm minor version for r300 support + +commit ab59dd285c4ccdec92adadfcb869fc83edd96e86 +Author: Eric Anholt +Date: Wed Jul 20 21:17:47 2005 +0000 + + Add latest r300 support from r300.sf.net CVS. Patch submitted by volodya, + with BSD fix from jkim and the r300_reg.h license from Nicolai Haehnle. + Big thanks to everyone involved! + +commit 026e12ea937865748d54d3b8a7a3b77ccc4e3efb +Author: Eric Anholt +Date: Tue Jul 19 20:59:57 2005 +0000 + + Add .cvsignore file. + +commit d3d3184fe4b2fa72ed55813bd7eac72659f2375e +Author: Dave Airlie +Date: Sat Jul 16 03:11:53 2005 +0000 + + revert last change due to me bring up too early + +commit 9803eb179c8edd8d62b038f550c63a4aa589615e +Author: Dave Airlie +Date: Sat Jul 16 02:07:14 2005 +0000 + + up the version + +commit d6d67dbf92d64a4c662dcad52d720883da9d5e19 +Author: Dave Airlie +Date: Sat Jul 16 02:03:03 2005 +0000 + + Egbert noticed this issue, but changing the IOW to IOWR mess up + compatiblity with userspace.. + +commit 567113788c030b367a28ea9253fbf34beef2789e +Author: Thomas Hellstrom +Date: Fri Jul 15 21:22:51 2005 +0000 + + VIA: Fix sparse warnings (Alexey Dobriyan) + +commit 5a5478de7ab4ee2eef0308d8b4ce5c53222cd55e +Author: Adam Jackson +Date: Wed Jul 13 00:13:12 2005 +0000 + + distcheck fixes + +commit 7130662aa0c476a56a4a053c6dda19bc3a91060a +Author: Jon Smirl +Date: Mon Jul 11 18:27:39 2005 +0000 + + IRQ must be assigned and enabled or this will hang + +commit 07d23f9c60f9358f064eab7d944f3b28484b51ef +Author: Adam Jackson +Date: Sun Jul 10 22:42:42 2005 +0000 + + autoconfiscate libdrm + +commit 04fea060023a539c6c6766ec184b59f32c97d474 +Author: Jon Smirl +Date: Sun Jul 3 18:07:03 2005 +0000 + + Simplify the sysfs code + +commit d41af11ee30413f90064cfffb5687be92a28021c +Author: Jon Smirl +Date: Sun Jul 3 17:16:12 2005 +0000 + + Add sysfs attribute dri_library_name on Linux. code in share-core/via_drv.c + is ok to be shared, it will be passive on BSD. + +commit e2ba08d28335b43515ccbefcc21052ed0d5a7e47 +Author: Jon Smirl +Date: Thu Jun 30 16:00:35 2005 +0000 + + release can happen before dev->ctxlist is allocated + +commit 1b4ce02506afa65494956468afb0eb7f93b74fbc +Author: Ian Romanick +Date: Wed Jun 29 23:20:30 2005 +0000 + + Remove the AGP requirement from Makefile and Kconfig for MGA. Remove the + AGP requirement from Kconfig for SIS. There never was a requirement in + Makefile, and Eric Anholt confirms that the Makefile was correct. + +commit eeaeefca54b2f8299fbe8f99b5ca71e695430ba7 +Author: Alan Hourihane +Date: Wed Jun 29 13:19:47 2005 +0000 + + add remaining calls + +commit fc83d76e5a5ce2700d2b95aa177d3eec57dc1bec +Author: Alan Hourihane +Date: Wed Jun 29 13:13:22 2005 +0000 + + add i915_ioc32.c + +commit 6496c5d1e74532d8208774653a3a2a477d7fc50c +Author: Alan Hourihane +Date: Wed Jun 29 13:00:29 2005 +0000 + + silence warning + +commit 6975571c3b740e3a3813058a856fc6bd8b7fbd14 +Author: Dave Airlie +Date: Wed Jun 29 12:02:18 2005 +0000 + + fix some warnings from cross compiler + +commit 62b55eb433a211c565367b8ae717666e0acaf8fe +Author: Dave Airlie +Date: Wed Jun 29 11:56:42 2005 +0000 + + make r128/mga compile properly on sparc cross-compiler + +commit 2b427bee9bb4de9dba6ab96b68c66d22144669a5 +Author: Alan Hourihane +Date: Wed Jun 29 11:36:37 2005 +0000 + + Move to linux specific directory + +commit 964c57e71f641da854636c3f9549ef8cc2f5a143 +Author: Dave Airlie +Date: Wed Jun 29 11:22:39 2005 +0000 + + add mga and r128 32/64 bits + This is Egberts code, ported to Pauls framework by me.. + +commit ae7d8d8a85a4465fe641d28a7f5d8d64146f8d97 +Author: Dave Airlie +Date: Wed Jun 29 03:06:47 2005 +0000 + + these don't need reclaim buffers their release functions handle it + +commit 2ce5ddec833195bc17c8ed062ce622460ffe0d6a +Author: Dave Airlie +Date: Wed Jun 29 02:57:18 2005 +0000 + + Bug in conversion from old DRM to core DRM.... + +commit c798a382f1e11a0fd60a78924db0663f8e988a1b +Author: Eric Anholt +Date: Wed Jun 29 02:54:19 2005 +0000 + + Get the BSD DRM compiling again after MGA and mapping changes. Note that + i915 has been disabled for the moment, rather than working around + linux-specific code in the shared dir. + +commit 5d96c74ff1fe9b2d37e22dbea9882791aae389bf +Author: Eric Anholt +Date: Tue Jun 28 20:58:34 2005 +0000 + + - Remove drm_initmap and replace its usage with drm_addmap. This reduces + code duplication, and it also hands you the map pointer so you don't + need to re-find it. + - Remove the permanent maps flag. Instead, for register and framebuffer + maps, we always check whether there's already a map of that type and + offset around. Move the Radeon map initialization into presetup (first + open) so it happens again after every takedown. + - Remove the split cleanup of maps between driver takedown (last close) and + cleanup (module unload). Instead, always tear down maps on takedown, + and drivers can recreate them on first open. + - Make MGA always use addmap, instead of allocating consistent memory in + the PCI case and then faking up a map for it, which accomplished nearly + the same thing, in a different order. Note that the maps are exposed to + the user again: we may want to expose a flag to avoid this, but it's + not a security concern, and saves us a lot of code. + - Remove rmmaps in the MGA driver. Since the function is only called during + takedown anyway, we can let them die a natural death. + - Make removal of maps happen in one function, which is called by both + drm_takedown and drm_rmmap_ioctl. + Reviewed by: idr (previous revision) Tested on: mga (old/new/pci dma), + radeon, savage + +commit 6397722f1990856a9ee268cadd65d78b44b24835 +Author: Dave Airlie +Date: Tue Jun 28 13:02:20 2005 +0000 + + add compat code from Paul Mackerras + +commit 827806f697855c65a8c9821ad410467c48e25d35 +Author: Dave Airlie +Date: Tue Jun 28 12:52:41 2005 +0000 + + Add compat to Makefile + +commit 170bf94a367935046d72f7d2a21872bb88543a04 +Author: Dave Airlie +Date: Tue Jun 28 12:50:15 2005 +0000 + + Add drm and radeon 32/64-bit compat code from Paul Mackerras + +commit b6b270a2607088997a0ec74cb1d618f140a382f7 +Author: Alan Hourihane +Date: Tue Jun 28 08:03:33 2005 +0000 + + Given that BenH says using the sysdev approach for DRM is bogus, I'll yank + the code for it, rather than introducing something that isn't going to + work 100% of the time. + +commit 75ba453365380851d3297a9d553302021af923b2 +Author: Alan Hourihane +Date: Tue Jun 28 07:34:49 2005 +0000 + + Comment out the .resume function as without programming their dependent + registers things tend to lock up in certain situations. + The BIOS repost will fix things up. + +commit e2d76b0642d88c4f47ace52ee5eb3163c4e478d5 +Author: Alan Hourihane +Date: Mon Jun 27 15:17:12 2005 +0000 + + Reverse the pm_message_t patch for now, it appears that the 2.6.12 release + didn't have it. + +commit 1a6780348c9e61833ca240ce6fb80aaa6e75fb92 +Author: Alan Hourihane +Date: Mon Jun 27 12:39:02 2005 +0000 + + Check for 2.6.12 suspend/resume changes (pm_message_t) + +commit fa24ccccf4beeef41d8de23a345408b7b047ae3f +Author: Alan Hourihane +Date: Mon Jun 27 11:41:40 2005 +0000 + + Check dev_priv + +commit d6af2016635ced096812030547a930433e9382eb +Author: Alan Hourihane +Date: Mon Jun 27 11:39:44 2005 +0000 + + Save state of registers for suspend/resume. + +commit afdabdabf588267c8c8d4f1378a8e9824d58d2d0 +Author: Jon Smirl +Date: Sun Jun 26 13:31:15 2005 +0000 + + removed dev->sysdev_registered + +commit 9deb276a0680a79540f05c1547a9d703e9c08190 +Author: Jon Smirl +Date: Fri Jun 24 22:48:16 2005 +0000 + + Ref count the sysdev class to support multiple DRM cards + +commit 2b845f25c5c3a36ed6e49b9145e38a4738ce2572 +Author: Jon Smirl +Date: Fri Jun 24 21:50:40 2005 +0000 + + Make sysdev class only register when fbdev detected + +commit 5b0e93de32e9da390702df13d95ab63274294233 +Author: Jon Smirl +Date: Fri Jun 24 19:31:06 2005 +0000 + + More err path clean up for drm_pm Add mandatory sysdev shutdown function + +commit fe42d43a63d95243fa911f88bb01c383d5e6716e +Author: Alan Hourihane +Date: Fri Jun 24 09:28:50 2005 +0000 + + Fix the sysdev approach for power management. + We need to use the container_of() call to access our device private. + +commit cdc50eba6ac666447a93471fb2db25959f9c2775 +Author: Alan Hourihane +Date: Fri Jun 24 08:56:12 2005 +0000 + + Fix suspend problem when i915 private hasn't been initialized yet. + +commit 7586a655fc7d8e89a4fe37ec7926f4fbc13f358d +Author: Jon Smirl +Date: Thu Jun 23 05:29:16 2005 +0000 + + Fix drm_memory_debug.c to compile, doesn't seem to be working Clean up + error return path in drm_stub.c + +commit 4152605ea174291f469c0c8a6fc433fd90194e71 +Author: Jon Smirl +Date: Wed Jun 22 05:49:56 2005 +0000 + + Get the power management hooks into the right place so that everything gets + freed correctly. + +commit 9fb77e869f530f3c9679dd63db07514e2f45efc7 +Author: Jon Smirl +Date: Tue Jun 21 02:20:02 2005 +0000 + + Change initialization of savage register access to _DRM_READ_ONLY. Flags of + zero does not mean no privs, instead it grants write access + _DRM_READ_ONLY only applies to non-root users. Problem is only in CVS, + initmaps are not in the kernel yet. + +commit 298b6fcedbc3a521c2218404a96de0754dbb4f02 +Author: Jon Smirl +Date: Mon Jun 20 15:40:48 2005 +0000 + + Change initialization of radeon register access to _DRM_READ_ONLY. Flags of + zero does not mean no privs, instead it grants write access + _DRM_READ_ONLY only applies to non-root users. Problem is only in CVS, + initmaps are not in the kernel yet. + +commit ae2264d3c9a4938b1202c4301587c7214c2c4293 +Author: Jon Smirl +Date: Sun Jun 19 04:15:58 2005 +0000 + + Remove I2C support from radeon driver. Same support is available from + radeonfb. + +commit 71df0eed3476d4430a59ce21ca641ac8eecf54e2 +Author: Dave Airlie +Date: Fri Jun 17 09:09:17 2005 +0000 + + fix up drm_alloc_agp to take a dev arg and not pass crappy agpgart around + +commit 0569fe7a528e5e0753d9f72807a8f4310c6c9782 +Author: Jon Smirl +Date: Fri Jun 17 04:47:30 2005 +0000 + + Fix 810/830 build + +commit 53e950b344d84a98fda4cff6d03b90651a625f18 +Author: Alan Hourihane +Date: Thu Jun 16 19:58:00 2005 +0000 + + Force AGP always for Intel chipsets. + Fixes bug #3552 + +commit 1567753415d420c626ae145457539bfee1414df8 +Author: Ian Romanick +Date: Wed Jun 15 17:47:33 2005 +0000 + + Re-sync (and correct!) shared/mga_drm.h with shared-core/mga_drm.h. + +commit 72cfc797b51e59ecf8a2787c6a176838241cc94b +Author: Ian Romanick +Date: Tue Jun 14 22:34:11 2005 +0000 + + Adds support for PCI cards to MGA DRM + This patch adds serveral new ioctls and a new query to get_param query to + support PCI MGA cards. + Two ioctls were added to implement interrupt based waiting. With this + change, the client-side driver no longer needs to map the primary DMA + region or the MMIO region. Previously, end-of-frame waiting was done by + busy waiting in the client-side driver until one of the MMIO registers + (the current DMA pointer) matched a pointer to the end of primary DMA + space. By using interrupts, the busy waiting and the extra mappings are + removed. + A third ioctl was added to bootstrap DMA. This ioctl, which is used by the + X-server, moves a *LOT* of code from the X-server into the kernel. This + allows the kernel to do whatever needs to be done to setup DMA buffers. + The entire process and the locations of the buffers are hidden from + user-mode. + Additionally, a get_param query was added to differentiate between G4x0 + cards and G550 cards. A gap was left in the numbering sequence so that, + if needed, G450 cards could be distinguished from G400 cards. According + to Ville Syrjälä, the G4x0 cards and the G550 cards handle + anisotropic filtering differently. This seems the most compatible way + to let the client-side driver know which card it's own. Doing this very + small change now eliminates the need to bump the DRM minor version + twice. + http://marc.theaimsgroup.com/?l=dri-devel&m=106625815319773&w=2 + A number of ioctl handlers in linux-core were also modified so that they + could be called in-kernel. In these cases, the in-kernel callable + version kept the existing name (e.g., drm_agp_acquire) and the ioctl + handler added _ioctl to the name (e.g., drm_agp_acquire_ioctl). + This patch also replaces the drm_agp_do_release function with + drm_agp_release. drm_agp_release (drm_core_agp_release in the previous + patch) is very similar to drm_agp_do_release, and I saw no reason to + have both. + This commit *breaks the build* on BSD. Eric said that he would make the + required updates to the BSD side soon. + Xorg bug: 3259 Reviewed by: Eric Anholt + +commit 3585bdf7d81a92c729bb5bcbc7cfca6048d640ce +Author: Dave Airlie +Date: Sat Jun 11 10:08:39 2005 +0000 + + fix up drm.h for C++ include as this can be included in user programs + +commit f4aa8ab715cdb2382609f51dda4d832de417894a +Author: Dave Airlie +Date: Fri Jun 10 01:21:23 2005 +0000 + + add dragonfly #define from Xorg CVS + +commit 28759fd872842c41f38edaf77a140a798609dd20 +Author: Ian Romanick +Date: Thu Jun 9 21:24:34 2005 +0000 + + Synchronize with the shared-core version. + +commit dfc650bd80da28b430b65cd26a1bf418074e2086 +Author: Ian Romanick +Date: Thu Jun 9 21:18:56 2005 +0000 + + Completely re-initialize DMA settings + There were two problems. First, the 'warp' and 'primary' pointers weren't + cleared, so mga_do_cleanup_dma, which gets called multiple times, would + try to ioremapfree them multiple times. This resulted in the new error + messages to syslog. The second problem was the, since the dev_private + structure isn't reallocated and cleaned out in mga_do_init_dma, when + the server is reloaded idle-waits would wait for impossible values. + I have given this patch some more riggorous testing. This includes: + - Load module, start server, run GL app, stop server, unload module. + - Load module, start server, run GL app, stop server, unload module, reload + module, restart server, run GL app. + - Load module, start server, run GL app, stop server, restart server, run + GL app, stop server, unload module. + In all three cases, everything worked as expected. Please let me know if + there are any further regressions with this patch. + Xorg bug: 3408 Reported by: Chris Rankin + +commit 1252890ff1d62544a250560f0c2985454bf888b5 +Author: Jon Smirl +Date: Thu Jun 9 13:22:12 2005 +0000 + + drm_mem_init should be done at core load, not driver init + +commit 9f2f010763170890c69e1d2f9dd1f550db0400b1 +Author: Dave Airlie +Date: Mon Jun 6 11:35:43 2005 +0000 + + fix some issues with radeon interrupt handling + From: Dave Airlie + Benjamin Herrenschmidt + +commit 246c617c87a5407f0bb8375e217443fc38aee405 +Author: Alan Hourihane +Date: Mon Jun 6 09:18:44 2005 +0000 + + Fix copyrights + +commit 751765dba5b15f431a12308e09237d895c65e471 +Author: Eric Anholt +Date: Mon Jun 6 06:45:41 2005 +0000 + + Add a few more bits of Tonnerre's NetBSD port (Still need to deal with the + device attachment). + +commit 805a07714f05833a1ed4e4a01f8086fafd46e849 +Author: Dave Airlie +Date: Sat Jun 4 06:18:11 2005 +0000 + + misc cleanup patch from Adrian Bunk + +commit 83cb1504498ad2ca327bc8341bc21ed6cdb54756 +Author: Dave Airlie +Date: Sat Jun 4 06:14:58 2005 +0000 + + Remove warnings about code mixed with declerations.. + +commit 1d678a518ee97fef3a3f9816cddf199ad7e37509 +Author: Ian Romanick +Date: Fri Jun 3 22:53:32 2005 +0000 + + Minor clean-ups. The drm_mga_fullscreen_t stuff has been dead for a looong + time. Remove it and an out-dated comment. + +commit 8e7c130ef71b6300a99f6404d23e7ff8646066be +Author: Ian Romanick +Date: Fri Jun 3 22:45:21 2005 +0000 + + Move the deallocation of dev_private. Since dev_private is allocated when + the driver is loaded and is always expected to be around, it should + only be deallocated when the driver is unloaded. + Xorg bug: #3408 Reported by: Chris Rankin + +commit 9cad6fb4e043ba6140d4c61f09ca0cf0ba8d18c0 +Author: Eric Anholt +Date: Sat May 28 20:36:22 2005 +0000 + + Bugzilla #3217: Create a new __drm_pci_free which is used internally in + linux-core to free pci memory without freeing the structure. Linux-core + internals often create pci dma handle structures on the stack due to + the lack of a drm_local_map_t to store them in properly. Fix the + original drm_pci_free to actually free the dma handle structure instead + of leaking it. + Signed-off-by: Sergey Vlasov + +commit d7756397d695e5573647258f8412e9ecfb2645d4 +Author: Eric Anholt +Date: Sat May 28 20:25:04 2005 +0000 + + Bugzilla #3217: The size field in the new dma handle structure was + uninitialized, and its use in drm_pci_free later resulted in panics. + Signed-off-by: Sergey Vlasov + +commit 54fbf85125ef231f77b333d9e72cbc56b5bc012d +Author: Alan Hourihane +Date: Sat May 28 00:08:53 2005 +0000 + + Actually check for drm_fb_loaded before trying to initialize the sysdev + approach. + +commit 45f1db8db9d1280dff51cdfb680bff2754195483 +Author: Alan Hourihane +Date: Sat May 28 00:00:08 2005 +0000 + + Re-implement the power management. + There's two choices when fb is or isn't loaded as we treat ourselves as a + PCI driver in the latter case. + If we are a PCI driver, then register the suspend/resume functions + directly. If not, then we register as a sysdev and pick up the + suspend/resume actions and pump them down into a generic *power + function. + It'll be nice when this little mess is sorted out with regard to being a + real PCI driver ;-/ + +commit 4a84416c458027462ee6112a5fa442415597f6c2 +Author: Ian Romanick +Date: Fri May 27 23:42:11 2005 +0000 + + Modify drm_driver::device_is_agp to return a tri-state value to indicate + that a device absolutely is, absolutely is not, or may or may not be + AGP. Modify the i915 DRM to use this to force all i9x5 devices to be + "AGP" (even the PCI-e devices). + Reported by: Lukas Hejtmanek + +commit c9abd2fec509c271339d1ca3addd95df884df80a +Author: Dave Airlie +Date: Fri May 27 07:23:44 2005 +0000 + + add radeon registers from VHA code these are the "unknown" registers + +commit e1fd79b31e130e9e4bafcab914491973147b7f86 +Author: Thomas Hellstrom +Date: Mon May 23 20:56:54 2005 +0000 + + VIA: + 64-bit fixes. Bumped driver date and patchlevel. + +commit 955791f0645d4b61bd20d817c532dda3a40aaddd +Author: Ian Romanick +Date: Sun May 22 04:36:33 2005 +0000 + + Refactor the routines for "calculating" the size of the WARP microcode. The + two routines (one for G200 and one for G400) were replaced with static + const variables and a single function that returns the correct size. + The code to generate an error if the allocated WARP region is too small + was refactored from mga_warp_install_{g200,g400}_microcode to + mga_wrap_install_microcode. + mga_warp_microcode_size is global to the MGA DRM because it will soon be + used by code in another file. + +commit 75cb43ccd73dd2c8c196d209862b8a3ea4e433cb +Author: Ian Romanick +Date: Sat May 21 02:31:08 2005 +0000 + + Forgot to bump the patchlevel and driver date on last commit. + +commit a686be5bc8c5d8a260513b680f322e3b790aadf7 +Author: Ian Romanick +Date: Sat May 21 02:27:51 2005 +0000 + + Change the MGA initialization and cleanup a bit. The dev_private structure + is now allocated (and partially filled in) by the new + mga_driver_preinit function. + This allows the driver to detect the type of card (i.e., G200 class vs. + G400 class) on its own. The chipset value passed to mga_dma_init is now + ignored. This same technique is used by the radeon DRM. + As a result of this, mga_driver_pretakedown was converted to + mga_driver_postcleanup. This routine gets called in some other places + than might be expected, and it sets the dev_private pointer to NULL. + That little gem took over an hour to track down. :( + +commit fced784140c7b347ea9d3091a8bc0c06c1a760f7 +Author: Ian Romanick +Date: Fri May 20 00:17:40 2005 +0000 + + Refactor common, boilerplate ioctl code from drm_addbufs_* functions into + drm_addbufs. This makes the code more like the BSD code, and makes the + drm_addbufs_* functions callable in-kernel. + Reviewed by: Dave Airlie + +commit 4ca48cb4d8341b699ffffc8ccd8d70006733936a +Author: Dave Airlie +Date: Wed May 18 06:35:16 2005 +0000 + + Add i945G pci ids to drm + From: Christopher Allen Wing Signed-off-by: Dave + Airlie + +commit 6d4b9a830bb5678460621b652e914cbcb16d8c4c +Author: Felix Kuehling +Date: Tue May 17 02:08:02 2005 +0000 + + Savage doesn't require AGP any more. Enable build even without CONFIG_AGP. + +commit e051cd19c00ed28997ff6fece0d1d4308b171229 +Author: Ian Romanick +Date: Mon May 16 17:37:10 2005 +0000 + + Added device_is_agp callback to drm_driver. This function is called by the + platform-specific drm_device_is_agp function. Added implementation of + this function the the Linux-specific portion of the MGA driver to + detect PCI G450 cards. Added code to the Linux-specific portion of the + generic DRM layer to not initialize AGP infrastructure if the card is + not AGP (this matches what already existed in BSD). + Bumped the driver date and the driver patch-level for MGA. + This mostly fixes bugzilla #3248. The BSD side still needs an + implementation of mga_driver_device_is_agp. + +commit bd72c6990f22381af61f62bffe70619f726d5923 +Author: Dave Airlie +Date: Sun May 15 10:19:21 2005 +0000 + + wrap config.h include with defined for KERNEL + +commit e0fc400b681cb6b04ba0769c58f279a2aa4326a5 +Author: Thomas Hellstrom +Date: Sun May 8 20:33:04 2005 +0000 + + VIA: Fix for oops when AGP ring-buffer initialization is called and there + is no AGP memory acquired. + +commit 6aae7bd5b061c6a8130787ba3ea5aa07c744eda9 +Author: Eric Anholt +Date: Tue Apr 26 15:27:58 2005 +0000 + + Convert NOMAN to the new preferred spelling NO_MAN to quiet warnings. + +commit 2fcf66a02fb0f6f31c0d02026c8c7a4d36b45f58 +Author: Eric Anholt +Date: Tue Apr 26 06:03:39 2005 +0000 + + Clean up some const qualifier cast warnings. + +commit ec111d70fee0647c4c68a02c723d4a3729c93b56 +Author: Eric Anholt +Date: Tue Apr 26 05:19:11 2005 +0000 + + Convert BSD code to mostly use bus_dma, the dma abstraction for dealing + with IOMMUs and such. There is one usage of the forbidden vtophys() + left in drm_scatter.c which will be fixed up soon. This required a KPI + change for drm_pci_alloc/free() to return/use a drm_dma_handle_t that + keeps track of os-specific bits, rather than just passing around the + vaddr/busaddr/size. + Submitted by: Tonnerre Lombard (partially) Tested on: FreeBSD: Rage128 + AGP/PCI Linux: Savage4 AGP/PCI + +commit 31a06d0baca9e378a773ca8bd350860546dd8a79 +Author: Eric Anholt +Date: Tue Apr 26 05:11:20 2005 +0000 + + Use msleep instead of tsleep to drop the DRM device lock and avoid a + sleep-with- mutex held. This probably ought to be an os-independent + sleep function ala DRM_USLEEP. + +commit be9e67a927ed9583380107b2fb9ddf3bd8a5f128 +Author: Eric Anholt +Date: Sun Apr 24 19:09:09 2005 +0000 + + Fix a panic on startup with non-initmapping drivers by assigning the + drm_ioremap return value to the map handle again. + Submitted by: Tor Egge, tegge at freebsd dot org + +commit 699d4ad53a62e46344b672365dda0be4001edd99 +Author: Thomas Hellstrom +Date: Wed Apr 20 18:50:49 2005 +0000 + + A fix for a locking bug which is triggered when a client tries to lock with + flag DMA_QUIESCENT (typically the X server), but gets interrupted by a + signal. The locking IOCTL should then return an error, but if + DMA_QUIESCENT succeeds it returns 0, and the client falsely thinks it + has the lock. In addition The client waits for DMA_QUISCENT and + possibly DMA_READY without having the lock. + +commit 2b8dc25dc549533f1567093fb7dffc06d6f55268 +Author: Thomas Hellstrom +Date: Wed Apr 20 10:16:52 2005 +0000 + + VIA: Interrupt handler bugfixes. Bumped patchlevel to 2.6.2. + +commit b0c461c8e374d7e92e5013a03fc6096595a74700 +Author: Dave Airlie +Date: Tue Apr 19 00:31:16 2005 +0000 + + Revert last commit, it affect via things + +commit a08343e3e053d5ab27398013781f489cdf7f60de +Author: Thomas Hellstrom +Date: Mon Apr 18 08:26:00 2005 +0000 + + VIA: + 1) Security fix: Stopped possible MMIO access to PCI DMA area for the + unichrome Pro. + 2) Fixed an odd cpu usage problem by padding small AGP DMA submissions. + Bumped patchlevel. + +commit 10ddbc8c8c9e540cf4802cab36d0c46f0aa0b6d8 +Author: Eric Anholt +Date: Sat Apr 16 03:02:52 2005 +0000 + + Use /*- to begin license blocks in BSD code to reduce diffs against FreeBSD + CVS. + +commit 926298e8220b43158c433c75ffca74909a33c42b +Author: Eric Anholt +Date: Wed Apr 13 04:20:08 2005 +0000 + + Fix build on FreeBSD-current, thanks to jhb@. + +commit a0454aba714ba0314b85faad2801f7b047fa3b02 +Author: Dave Airlie +Date: Mon Apr 4 04:08:29 2005 +0000 + + mirror changes made in main tree.. just happened to be doing this myself + +commit cb5f6c22b5a0190c845029a772a2eb2a3faa5d1c +Author: Thomas Hellstrom +Date: Tue Mar 29 09:48:12 2005 +0000 + + Missing file via_video.c commited. + +commit 0a5e02c7b5fbbc7a7cc3654f5820d0dd50381de9 +Author: Adam Jackson +Date: Tue Mar 29 01:47:38 2005 +0000 + + Add skeletal imagine driver (but don't build it yet). + +commit 532ccb98b5f2946f574a747b90c39edbe783f888 +Author: Thomas Hellstrom +Date: Mon Mar 28 21:21:42 2005 +0000 + + Via updates: + New PCI command parser. Moved from via_dma.c to via_verifier.c so functions + with similar functionality are close to eachother. + Moved video related functions to via_video.c, which might be extended in + the future, as new video functionality is added. + New device-specific generic IRQ IOCTL, similar to the general VBLANK IOCTL, + but with support for multiple device IRQ sources and functionality. + Support for Unichrome Pro PM800/CN400 video DMA commands in verifier and + PCI parser. + Support for Unichrome Pro PM800/CN400 HQV IRQs in the new generic IRQ + IOCTL. + Bumped minor. New version 2.6.0. + +commit c6161eff86b250f3113791edcc162dc97322c401 +Author: Dave Airlie +Date: Sun Mar 27 07:05:28 2005 +0000 + + Description: Rather than use custom code in DRM_WAIT_ON() to do exactly + what wait_event_interruptible_timeout() does, use the function and just + change the return values appropriately. + Signed-off-by: Nishanth Aravamudan + +commit 385f927692beb395ae3866538b2b0f8f8e436eba +Author: Dave Airlie +Date: Sun Mar 27 06:58:12 2005 +0000 + + Some ia64 platforms may not support write combining on all type of memory, + so we need to consult the EFI memory map before we try to set the write + combine attribute of a page. This patch will try to map a page write + combined if it's not an AGP page and the EFI memory map says it's ok, + otherwise it falls back to a regular, uncached mapping. Can someone + please apply this to the drm tree? + From: Jesse Barnes + +commit 459ef4862978800f3dbff76af134593350cad6aa +Author: Alan Hourihane +Date: Fri Mar 25 13:44:47 2005 +0000 + + Don't know who set the i915GM PCI ID incorrectly but it should be 0x2592 + +commit 9182891b26f1847664f4a797db12c63ec065df7a +Author: Dave Airlie +Date: Fri Mar 25 13:16:38 2005 +0000 + + From Xorg CVS realign the i915_drv.h + From: Tungsten Graphics Signed-off-by: Dave Airlie + +commit 20dce568dced6cb38a9bab850b45989e86b0f1e6 +Author: Dave Airlie +Date: Fri Mar 25 13:06:53 2005 +0000 + + use linux-core for 2.6 not this stuff.. + +commit 956a701544d22c7885e53678531448cd04aba5f5 +Author: Dave Airlie +Date: Fri Mar 25 09:48:34 2005 +0000 + + fix up AGP multi-head support for kernel 2.6.12 + +commit 2ad83874287622875f6979da3cd505d18b697704 +Author: Dave Airlie +Date: Fri Mar 25 09:47:36 2005 +0000 + + verify_area is deprecated, replaced by access_ok. Seems I missed this one + when I did the big overall conversion. + Signed-off-by: Jesper Juhl + +commit ca04fbc7bad746b5f323a36407b4d99a3a2afd02 +Author: Dave Airlie +Date: Fri Mar 25 09:05:10 2005 +0000 + + fix bug with XFree86 4.3 on core drm + Signed-off-by: Dave Airlie + +commit c8d2d5d41901ba8072b4f03617c39cbb52f9224b +Author: Dave Airlie +Date: Fri Mar 25 09:02:20 2005 +0000 + + 3dfx DRM depends on PCI + Signed-off-by: Geert Uytterhoeven + +commit df6ef4836ead254487a834e889d4595d915c4818 +Author: Dave Airlie +Date: Fri Mar 25 09:01:27 2005 +0000 + + For 2.6.12 and 2.6.11.x: + Remove incorrect "drm_"-prefix from parameter description. + Signed-off-by: Magnus Damm + +commit ab396776fbf2777d31c4253001e882d2faee0c3b +Author: Michel Daenzer +Date: Fri Mar 18 22:51:43 2005 +0000 + + Add support for production version of ATI RN50/ES1000. (ATI Technologies + Inc.) + +commit 34563921dd0b41d4ccf08374227e31d765b40353 +Author: Roland Scheidegger +Date: Tue Mar 15 22:12:30 2005 +0000 + + add R200_EMIT_PP_TRI_PERF_CNTL packet to support brilinear filtering on + r200 + +commit d2fd9200956a94cfd91a39e76994f326bdfc6ac0 +Author: Thomas Hellstrom +Date: Mon Mar 14 22:50:21 2005 +0000 + + via changes: + 1. Initialize futex locks to zero on device init. + 2. Remove some stray defines from via_drm.h + 3. Prepare via_drm.h for drm client inclusion. The goal is to share a + common file with common definitions. + 4. Sync shared / shared-core via_drm.h + 5. Bump minor, because of the futex lock initialization. + +commit a396617dbc15abafdc172b972a02c04007ad579f +Author: Felix Kuehling +Date: Sun Mar 13 02:16:10 2005 +0000 + + Command DMA optimizations: + - don't waste DMA memory when small command buffers are flushed + - minimized padding with noops + - slightly simplified faked DMA flushing + +commit 7d3c42b58940b56efa9bfc13a08b5e67797fc771 +Author: Dave Airlie +Date: Tue Mar 8 23:47:11 2005 +0000 + + Fix for bug 2673 from Egbert Eich - memset the version + +commit 95fa851769b2a3461fb710f6d035bc5b2bf164e0 +Author: Felix Kuehling +Date: Mon Mar 7 12:19:49 2005 +0000 + + Tracked down random lockups related to command DMA that occurred in Quake3 + after ~5min: buffer aging was subtly broken. Part of this may have also + affected vertex DMA buffer aging and client-side texture heap aging, + though with less fatal consequences. Bumped minor version and driver + date. + +commit 32b6823a2540da83553f49a1daf89159c425c93e +Author: Dave Airlie +Date: Mon Mar 7 09:40:18 2005 +0000 + + minor pointer cast typo + +commit 15995234b4d6cb848d919b0342b5697fffe80c89 +Author: Felix Kuehling +Date: Sun Mar 6 01:41:06 2005 +0000 + + Added support for command DMA on Savage4-based hardware. Unfortunately + command and vertex DMA don't work at the same time. Command DMA + performance is superior and works with all vertex formats. Bumped minor + version and driver date. + +commit 26f04a16645edb366fce16060f6d5d01f2ff54b3 +Author: Dave Airlie +Date: Fri Mar 4 03:04:37 2005 +0000 + + add some idct type 3 packets for reference + +commit bc54ede0a865d55b3cc39db79aae3a8bc12bbcc0 +Author: Felix Kuehling +Date: Wed Feb 23 16:34:30 2005 +0000 + + Use wrap counter to extend 16-bit hardware event tags to 32-bit logical + event counters in the SAVAGE_EVENT_EMIT/WAIT ioctls. This is needed for + reliable client-side texture heap aging. Slightly simplified DMA buffer + aging while at it. Bumped minor version and driver date. + +commit f3cf4bc5f2bd556689ef197877de596b83dbd3d9 +Author: Thomas Hellstrom +Date: Sun Feb 20 00:05:43 2005 +0000 + + Fix VIA K8M800 PCI ID. + +commit 56cdeff23181772142a56268e50ceff691c7934d +Author: Eric Anholt +Date: Sat Feb 19 22:07:07 2005 +0000 + + Fix a couple of gcc warnings in DRM_INFOs. + +commit baeb76076e79dae0ed78f12e294336deaa3af9e7 +Author: Eric Anholt +Date: Sat Feb 19 20:00:55 2005 +0000 + + Merge r1.26 from FreeBSD: Now that mem(4) is a kernel module, we need to + depend on it. + +commit 49e19c8d001c34f675b8d81ffde8f0792292f6ff +Author: Michel Daenzer +Date: Fri Feb 18 20:06:10 2005 +0000 + + fd.o bug #2576: Add support for ATI RN50/ES1000. (ATI Technologies Inc.) + +commit b646515d6124b906f5a0c2cf76f8fda590884ef0 +Author: Adam Jackson +Date: Fri Feb 18 16:40:54 2005 +0000 + + Bug #2567: Fix reversed memset arguments. (David Krause) + +commit 80d844d99250e7bc26fbae7ca4a274ad46f7676f +Author: Keith Whitwell +Date: Tue Feb 15 13:15:08 2005 +0000 + + Run depmod after installing new modules + +commit 3e8792e7051090b442d29444fa2e5dfe46847c34 +Author: Eric Anholt +Date: Mon Feb 14 03:28:01 2005 +0000 + + Use fuword32 for DRM_GET_USER_UNCHECKED when available. May help on 64-bit + platforms. + Submitted by: Jung-uk Kim, jkim at niksun dot com + +commit ed082798f481b43d9745aaae15306e94a9acb169 +Author: Eric Anholt +Date: Mon Feb 14 03:26:52 2005 +0000 + + Use the proper API to get PCI vendor/device number for a dev. + PR: ports/76879 Submitted by: Alex, lesha at intercaf dot ru. + +commit 2f7cd38c122b2f7f790e51b78a51cc935c9b2f18 +Author: Eric Anholt +Date: Mon Feb 14 03:22:58 2005 +0000 + + Initialize kbuf to NULL to quiet the compiler about uninit variables + (wasn't an issue). Don't forget to free kbuf if the copyin fails. + +commit 650c0fe391b09479afd787e0b1db0a3e22cc4fcd +Author: Thomas Hellstrom +Date: Sun Feb 13 23:03:48 2005 +0000 + + Fixed Futex release bug. Bumped driver date and patchlevel. + +commit 0d2eb2b90c092eaef00c95a9403ed7f0c8f7b3a6 +Author: Eric Anholt +Date: Sun Feb 13 01:18:25 2005 +0000 + + Fix bad copy'n'pastage of copyrights -- don't disclaim anything for VA + Linux or PI in my copyrights when I should be doing it for myself. + +commit ba18d68ff512f672520b0c78aa955ad1f9a9d7d0 +Author: Eric Anholt +Date: Sun Feb 13 01:08:29 2005 +0000 + + Add the first bits necessary for a port of savage to FreeBSD. More to + follow later. + +commit 5d5acf28d8225a4a8a440e63abba8136e344b852 +Author: Roland Scheidegger +Date: Thu Feb 10 19:29:58 2005 +0000 + + add support for texture micro tiling for radeon/r200. Add support for cube + maps for r100. (Stephane Marchesin's port of the core version). + +commit 732cdc5cef25b1ea518fec9c9028d3a9806b690a +Author: Roland Scheidegger +Date: Thu Feb 10 19:22:43 2005 +0000 + + add support for texture micro tiling on radeon/r200. Add support for r100 + cube maps (since it also requires a version bump) at the same time. + +commit 08790293b13bb4562307309461400dad22c72eaf +Author: Keith Whitwell +Date: Thu Feb 10 11:02:56 2005 +0000 + + Stephane's port of Eric's race fix + +commit 2cdfb2cc8527a6a805b159006885268607383448 +Author: Roland Scheidegger +Date: Tue Feb 8 22:46:56 2005 +0000 + + fix incorrect PCI id for ATI radeon + +commit 81459d6e50a02b87ed95073659536eefa1e09fdf +Author: Eric Anholt +Date: Tue Feb 8 04:17:14 2005 +0000 + + Close a race which could allow for privilege escalation by users with DRI + privileges on Radeon hardware. Essentially, a malicious program could + submit a packet containing an offset (possibly in main memory) to be + rendered from/to, while a separate thread switched that offset in + userspace rapidly between a valid value and an invalid one. + radeon_check_and_fixup_offset() would pull the offset in from user + space, check it, and spit it back out to user space to be copied in + later by the emit code. It would sometimes catch the bad value, but + sometimes the malicious program could modify it after the check and get + an invalid offset rendered from/to. + Fix this by allocating a temporary buffer and copying the data in at once. + While here, make the cliprects stuff not do the VERIFYAREA_READ and + COPY_FROM_USER_UNCHECKED gymnastics, avoiding a lock order reversal on + FreeBSD. Performance impact is negligible -- no difference on r200 to + ~1% improvement on rv200 in quake3 tests (P4 1Ghz, demofour at + 1024x768, n=4 or 5). + +commit dc4defe742387dc3081557111b67a1ab99455dbb +Author: Dave Airlie +Date: Mon Feb 7 22:55:54 2005 +0000 + + Invalid bound check of driver defined ioctls in drm_ioctl + Bug 2489 Reporter: Aapo Tahkola + +commit a36d5b33aaa7731621a288a6a9a02bf86c8c80e4 +Author: Roland Scheidegger +Date: Mon Feb 7 21:11:59 2005 +0000 + + Cast user data to correct type in radeon_surface_free's copyin. + +commit 03ddea5b274a515528ea58db62f7b5f779430c5b +Author: Dave Airlie +Date: Mon Feb 7 11:20:43 2005 +0000 + + change DRIVER_ to CORE_ makes things look nicer, also change it so the + driver name is marked on resource allocations + +commit 300e0866d68d40af9271a588bd93522e4e7a339c +Author: Dave Airlie +Date: Mon Feb 7 10:44:28 2005 +0000 + + fix agp detection on linux + +commit 5a332a0f61760d8c13a01ba9f9208fafcafc3bb4 +Author: Eric Anholt +Date: Mon Feb 7 03:10:03 2005 +0000 + + Restore a debugging message to DRM_DEBUG instead of DRM_ERROR. + +commit 2239c55a304416dbf83e7fd545df5c3dde3ff058 +Author: Eric Anholt +Date: Mon Feb 7 01:14:42 2005 +0000 + + Remove some annoying trailing whitespace. + +commit 080a547d4d42d42e08a525aca9a62b5ece7616d5 +Author: Eric Anholt +Date: Sat Feb 5 08:00:14 2005 +0000 + + - Implement drm_initmap, and extend it with the resource number to help + FreeBSD. Add drm_get_resource_{start|len} so linux-specific stuff + doesn't need to be in shared code. + - Fix mach64 build by using __DECONST to work around passing a const + pointer to useracc, which is unfortunately not marked const. + - Get rid of a lot of maplist code by not having dev->maplist be a pointer, + and by sticking the link entries directly in drm_local_map_t rather + than having a separate structure for the linked list. + - Factor out map uninit and removal into its own routine, rather than + duplicating in both drm_takedown() and drm_rmmap(). + - Hook up more driver functions, and correct FreeBSD-specific bits of + radeon_cp.c, making radeon work. + - Baby steps towards using bus_space as we should. + +commit 270ca5f3cee387c10a06a4d58e50c5d0e1cea837 +Author: Thomas Hellstrom +Date: Thu Feb 3 10:51:22 2005 +0000 + + Via driver: Add missing drm_poll function to via driver in core. + +commit 7f7bbdcbed4f752bb2063fd1c650121e368797fc +Author: Eric Anholt +Date: Thu Feb 3 01:06:10 2005 +0000 + + Declare r128_do_cleanup_pageflip static since it's only used here and its + prototype went away. + +commit ed31275144b9d322f7339700a5f5cf1167ee8322 +Author: Eric Anholt +Date: Thu Feb 3 01:05:34 2005 +0000 + + Cast user data to correct type in radeon_surface_free's copyin. + +commit caa4212faa659a30d543a15781428bd8b4c2c882 +Author: Adam Jackson +Date: Tue Feb 1 22:09:46 2005 +0000 + + momentary revert. libdrm build may be broken now, but no one uses it yet... + +commit 0d6b7fcb79e9bf6f823b5802f8317056015faeec +Author: Dave Airlie +Date: Tue Feb 1 11:08:31 2005 +0000 + + cleanup patch from Adrian Bunk + +commit 1dd948f280b52645b320ea0745ec48b8d98c9d9b +Author: Dave Airlie +Date: Tue Feb 1 10:43:42 2005 +0000 + + make functions static in i915, remove unused functions + +commit 62e0a58ecf03fe85de6e671fe2fc7f613ba39b37 +Author: Dave Airlie +Date: Tue Feb 1 10:33:51 2005 +0000 + + update i830 similiar to the kernel, add statics + +commit 8d4c731aa1e0936d8187ad77b5c779a79e22566d +Author: Dave Airlie +Date: Tue Feb 1 10:18:27 2005 +0000 + + make more functions static in i810 and fix pageflip cleanup + +commit 4b23b5fc3ebe5660ad8d5eed8057877a9c7592ea +Author: Adam Jackson +Date: Sun Jan 30 03:30:45 2005 +0000 + + Final pass of libdrm.so work: + - Add $(DESTDIR) for distributors doing package creation + - Remove OS-specific include path from build + - Add /usr/include/drm for driver-kernel API + - Install all of shared-core/*.h in /usr/include/drm + - Rename xf86drm.h to libdrm.h since we're not X biased anymore + - Include backwards compat for xf86drm.h name, with a warning + - Fix libdrm source to account for drm.h living in /usr/include/drm + +commit 41cbbb47afa898cd4bfe5f39fad57199088a5727 +Author: Dave Airlie +Date: Sat Jan 29 23:05:35 2005 +0000 + + fix radeon drv + +commit cd9ef39c769202f161619ee7a95674371c57cd48 +Author: Thomas Hellstrom +Date: Thu Jan 27 22:48:47 2005 +0000 + + Fixed multiple devices DMA bug. Fixed PCI path FIRE command detection + +commit 77045dc51672715115f179c099dfb8d7b4d304d4 +Author: Dave Airlie +Date: Thu Jan 27 09:13:42 2005 +0000 + + fix incorrect PCI id for ATI radeon + +commit 43c3223de690b892759901386d8dc936b0dfbad1 +Author: Roland Scheidegger +Date: Wed Jan 26 17:48:59 2005 +0000 + + (Stephane Marchesin,me) Add radeon framebuffer tiling support to radeon + drm. Add new ioctls to manage surfaces which cover the tiled areas + +commit 408376b2031cf301f1a8e35e89ceefc72f2fdc94 +Author: Roland Scheidegger +Date: Wed Jan 26 14:19:24 2005 +0000 + + replace magic number with macro constant RADEON_ZBLOCK16 + +commit 310abb39b24159be9839156b4034426cea6a7449 +Author: Dave Airlie +Date: Mon Jan 24 08:39:22 2005 +0000 + + use libdrm after it was updated + +commit 311da0f2124104dfac5fe59bf0ffd7fd88280945 +Author: Dave Airlie +Date: Mon Jan 24 01:05:07 2005 +0000 + + hopefully fix drm_core setversion ioctl... pointed out by Eric on irc + +commit 3df805bd4ab492537e3aa0b9ac5ae99491ee38d6 +Author: Adam Jackson +Date: Sat Jan 22 08:24:36 2005 +0000 + + Add drm.h to the install target. + +commit 39d5c831a01dbffca268e5938c255e26a860bab1 +Author: Felix Kuehling +Date: Thu Jan 20 23:33:24 2005 +0000 + + Removed one bogus Savage3D PCI ID. Corrected another one. Restored + numerical ordering. + +commit 36ec8d82e73215cb49034c5ec540dee170752ee0 +Author: Adam Jackson +Date: Thu Jan 20 19:05:42 2005 +0000 + + Add a Savage3D PCI ID + +commit 858e68fbdc4597f6c0dce9dd092a85078d1fb6c6 +Author: Felix Kuehling +Date: Thu Jan 20 12:23:25 2005 +0000 + + Corrected some confusion of vb_stride and vtx_size + Implemented SAVAGE_CMD_DMA_IDX and SAVAGE_CMD_VB_IDX for ELTs support in + the _savage_render_stage of the 3D driver + Bumped minor version and driver date + +commit 9620a0b8bb2447bc17bf9a5aa9174720bf2ced68 +Author: Alan Hourihane +Date: Wed Jan 19 10:03:33 2005 +0000 + + Fix cut & paste problem + +commit f5914ad67bd87db8128a47fd74da3573b1306f27 +Author: Alan Hourihane +Date: Wed Jan 19 08:55:53 2005 +0000 + + Fix a cut & paste problem + +commit d29e2369be1a8643d12ab93997757fe3aafaa655 +Author: Jose Fonseca +Date: Mon Jan 17 21:46:32 2005 +0000 + + Some code commenting concerning the FIFO & DMA engine. + +commit 7d0cb01cbf620e090230978ccee6cf7a882c832c +Author: Eric Anholt +Date: Mon Jan 17 20:24:52 2005 +0000 + + Add detection of whether the device is AGP by walking the capabilities + list. + +commit c74052cfae9cf3929e692551ce657f8fb55b6f08 +Author: Adam Jackson +Date: Mon Jan 17 00:02:04 2005 +0000 + + Add xf86drm.h to the install target. + +commit e5cc0b8f6f561b6eab91ab653cdce38dc160398f +Author: Adam Jackson +Date: Sun Jan 16 23:50:58 2005 +0000 + + Shared libdrm work: + - create libdrm.so target + - build it by default + - drop xf86drmCompat.c from the build + - make 'clean' target never fail + - use pattern rules for .c -> .o for parallelism + - add 'install' target + +commit 37318f167511248315675ac45ba7d4c8fc4efcfc +Author: Dave Airlie +Date: Sun Jan 16 07:49:55 2005 +0000 + + remove duplicate drm_sysfs.o + +commit 0867ce78f6ec31b718f58ce80c56822c40cb68ca +Author: Dave Airlie +Date: Sun Jan 16 06:41:34 2005 +0000 + + This table is in radeon_drv.h along with the version number so remove it + from here + +commit 354dd17d2505fd3b9754f6ccc960671e1f9363d9 +Author: Dave Airlie +Date: Sun Jan 16 05:40:12 2005 +0000 + + The patch makes drmAddBufs/drmMapBufs can handle buffers in video memory + The attached patch adds a new buffer type DRM_FB_BUFFER. It works like AGP + memory but uses video memory. + From: austinyuan@viatech.com.cn (fd.o bug 1668) Signed-off-by: Dave Airlie + + +commit 9514ee39f7e5063383b99de580e7e3115645e886 +Author: Felix Kuehling +Date: Sun Jan 16 01:22:09 2005 +0000 + + Fixed a bug that prevented the driver from ever emitting triangle strips or + fans. Bumped patchlevel and driver date. + +commit ffc51f1f32c57a99f2a8b02c0a9aa211362ec9b2 +Author: Felix Kuehling +Date: Sat Jan 15 16:55:01 2005 +0000 + + Setup MTRRs for frame buffer and aperture manually on Savage3D and + Savage4-based cards. Automatic setup in drm_initmap doesn't work due to + the weird alignment and size of the aperture. + +commit 6c8a3194f40fc673b1055f1f2b70b45209881e7f +Author: Dave Airlie +Date: Thu Jan 13 01:26:16 2005 +0000 + + due to backways compat crap for IRQ_HANDLED etc.. this wouldn't build on + 2.4 + +commit d4a8f16eb6a2fe13f2576f224e6c1a8b3ba89719 +Author: Felix Kuehling +Date: Wed Jan 12 16:07:49 2005 +0000 + + Use virt_to_page instead of vmalloc_to_page in drm_do_vm_shm_nopage for + consistent pages allocated with drm_pci_alloc. + +commit ee576367632b582e29f2b3d42f2eb9250cfdf219 +Author: Keith Whitwell +Date: Tue Jan 11 10:59:01 2005 +0000 + + Import Thomas' changes upto 2.4.3 to shared. Small tweak to install target. + +commit 9904319b95794088fe1db34e86ed62bc20f863e7 +Author: Keith Whitwell +Date: Tue Jan 11 10:42:52 2005 +0000 + + import Thomas' shared-core via changes up to 2.4.1 + +commit 17d893f567787914add42c221996c631455cdb25 +Author: Felix Kuehling +Date: Mon Jan 10 22:46:02 2005 +0000 + + Only try to find the agp_buffer_map if dma_type is AGP. This is all that's + needed on the DRM side to support PCI Savages. Bumped patch level and + driver date. + +commit d6af902ff74d4a384c2dd9acb9540d637f588bc6 +Author: Felix Kuehling +Date: Sun Jan 9 19:49:21 2005 +0000 + + Improved workaround for Savage3D DMA lockup to emit NOPs only before the + first indexed drawing command of a cmdbuf or if a wait command was + emitted since the last indexed drawing command. + +commit 6e38fd357625ef002cf1f4570296dc66ba2631c6 +Author: Jon Smirl +Date: Sun Jan 9 17:30:44 2005 +0000 + + Adjust 4 level page check for <= 2.6.10 + +commit e7ba83bd6f3a1ab9981948a64e9a09940d25e281 +Author: Felix Kuehling +Date: Sat Jan 8 23:28:27 2005 +0000 + + Fixed off-by-one error in savage_bci_wait_fifo_shadow. + +commit fb6a4d0a7dfd8e996dca6d45bb820979f231c82c +Author: Thomas Hellstrom +Date: Fri Jan 7 11:37:01 2005 +0000 + + via updates: moved the verifier state struct to dev_priv. Implemented AGP + alignment check. + +commit ca2b94cfa2f07c4fd1188d85d8d916318e15e7f2 +Author: Thomas Hellstrom +Date: Fri Jan 7 08:21:29 2005 +0000 + + Updated via DRM with check for stray FIRE commands primitive list. + +commit fcece3cf34ed5cc7e82d324362a40b3dd5493bbe +Author: Alan Hourihane +Date: Thu Jan 6 17:51:32 2005 +0000 + + Add i915GM support Add resume functionality (must be used with later DDX) + Bump to 1.2 + +commit c6c7496ca090dd56599de5bb1398f69762569d5e +Author: Jon Smirl +Date: Thu Jan 6 17:09:22 2005 +0000 + + Adjust drm-memory for 4 level page tables in 2.6.10 ifdef'd to use 3 levels + in kernels older than 2.6.10 + +commit 50a6ffa8789ca12029da1db86ad8c90ce62cd241 +Author: Thomas Hellstrom +Date: Thu Jan 6 15:53:38 2005 +0000 + + via DRM: Updated the verifier to check the vertex lists more thorough. This + should hopefully stop it from getting out of sync. + The PCI command parser is still not updated. + +commit ae1bc4a6da92ab31c933baa0b3f6c17c9bd16eb5 +Author: Felix Kuehling +Date: Wed Jan 5 23:45:42 2005 +0000 + + 3D scissor regs are now managed by the DRM to iterate over clip rects + passed to the cmdbuf ioctl (try xeyes on top of glxgears ;-) + Tightened the texture state check + Bumped Savage DRM version to 2.1.0 so that DRI driver can (theoretically) + depend on the DRM to manage the scissor registers + +commit 4818014ab10e5ab27fe7c87f7936a932526612a6 +Author: Thomas Hellstrom +Date: Wed Jan 5 17:46:34 2005 +0000 + + Bumped driver date and minor version. + +commit e34b5601912ce4b611d429304d5271fcf6f9f457 +Author: Thomas Hellstrom +Date: Wed Jan 5 17:44:43 2005 +0000 + + VIA update: + Release video futexes when context is destroyed (This was previously done + by the X server). + Added New Unichrome Pro VIDEO DMA commands to the verifier. + Added Quiescent heavyweight lock mode. + +commit 094f02c568fb2096a93b30adf291f82e0b87bbce +Author: Felix Kuehling +Date: Wed Jan 5 14:34:12 2005 +0000 + + Fixed the DMA buffer age test. Should fix occasional "soft" lockups. Bumped + patch level and driver date. + +commit 04842e8bcf0cc1b3553ba380c450ad1f22b8b463 +Author: Felix Kuehling +Date: Sat Jan 1 20:22:58 2005 +0000 + + Completeley rewritten Savage DRM which can be considered secure (modulo + implementation errors). Direct hardware (MMIO, BCI) access is no longer + needed in the Mesa driver. Bumped version to 2.0.0. Corresponding + changes to the DDX and Mesa drivers are being committed. + +commit ed165a25292740d5d3ef7e78dc04a6a3402562aa +Author: Felix Kuehling +Date: Sat Jan 1 20:03:15 2005 +0000 + + Added a new DRM map type _DRM_CONSISTENT for consistent PCI memory. It uses + drm_pci_alloc/free for allocating/freeing the memory. Only implemented + in the Linux DRM so far. + +commit fe4ade81bb7a1242b18b84e012c1a293eea0420b +Author: Dave Airlie +Date: Sat Jan 1 12:07:51 2005 +0000 + + i810/i830 bug with Jon's file operations changes + +commit e19fa7ada122a68d6bedf3d678e96545ed41a39f +Author: Thomas Hellstrom +Date: Fri Dec 31 11:44:27 2004 +0000 + + VIA DRM: verifier: Added verbose palette error reporting, and support for + stipple palettes together with rudimentary checks for texture palette + sizes. + other: Bumped version patchlevel and driver date. + +commit 590b23011910e27664c8bc6ebac4b2b150d81519 +Author: Thomas Hellstrom +Date: Fri Dec 31 11:27:57 2004 +0000 + + VIA DRM: Stability enhancements and cleanups in via_dma.c Added explicit + licence notice in via_dma.c + +commit 02c35ec0a28b4fffcfc09ca444f7dc0c0912216d +Author: Thomas Hellstrom +Date: Tue Dec 21 17:13:22 2004 +0000 + + via DRM: Tightened the security for some functions of the + DRM_IOCTL_VIA_DMA_INIT IOCTL. Bumped patchlevel and driver date. + XFree86 bug: 2119 + +commit 47c178da08c01501890e23219cbac8319992a453 +Author: Keith Whitwell +Date: Mon Dec 20 12:03:02 2004 +0000 + + Copy HC_ParaType_Auto change to shared-core. Bump version numbers and + dates. + +commit c4c48a8a5bb27cee0592aebcc032abe7858604c8 +Author: Keith Whitwell +Date: Mon Dec 20 11:57:10 2004 +0000 + + Add a very simple install target. I expect there are more correct ways to + do this. + +commit ae0db704b4ada67f9df81e208308c7d92c29396e +Author: Thomas Hellstrom +Date: Sun Dec 19 19:13:47 2004 +0000 + + via changes: Fixed typecasting bug in via_dma.c, and possible short-circuit + bug in the cmdbuf_size ioctl. Modified ring-buffer jump code AGAIN, due + to new oddities discovered on the Unichrome Pro with faster processors. + Bumped patchlevel and driver date. + +commit eaaf0a5211883608e2e698cde04bcb0da4c4a4ee +Author: Keith Whitwell +Date: Fri Dec 17 14:11:05 2004 +0000 + + Add the 'Auto' pageflipping command to the verifier. I don't think any + verification is required for the arguments of this packet from a + security point of view. + +commit ebd3b867deed789bd4b3fe98f88c20a9454f0061 +Author: Alan Hourihane +Date: Thu Dec 16 11:07:20 2004 +0000 + + drm_pciids.h should only 'cleaned' when the shared/ directory exists. Which + the Makefile already knows about, but it was cleaning this file anyway. + +commit 3e65f52bda674bec43b807d50b41a537c9e93959 +Author: Eric Anholt +Date: Wed Dec 15 03:34:09 2004 +0000 + + Use SYSCTL_ADD_OID macro instead of calling function directly. + Submitted by: reffie@FreeBSD.org + +commit aff0a2548561ecbe3411b57cd31f46cbb1b4f6b8 +Author: Thomas Hellstrom +Date: Mon Dec 13 13:53:12 2004 +0000 + + VIA drm updates: + 1. Improved security check of AGP texture adresses. + 2. Hopefully last fix of ring-buffer jump oddities. + 3. Added ioctl to check available space and command regulator lag in + ring-buffer. This is needed for 3D application responsiveness. + +commit b4782ba76b8ee48dca9948abe8ba5cd1f42617e7 +Author: Dave Airlie +Date: Fri Dec 10 11:53:24 2004 +0000 + + Use wbinvd macro instead of assembly for it, + From: Stefan Dirsch Signed-off-by: Dave Airlie + + +commit c4a87c6883ede7bbf486743efe3e9325d96f8e54 +Author: Roland Scheidegger +Date: Wed Dec 8 16:43:00 2004 +0000 + + (Stephane Marchesin, me) add hyperz support to radeon drm. Only fast z + clear and z buffer compression are working correctly, hierarchical-z is + not. + +commit 98d01f9542d7f70aa10d68c0e41e631b5f156770 +Author: Thomas Hellstrom +Date: Tue Dec 7 12:18:47 2004 +0000 + + Patch from Jon Smirl from Nov. 2nd that makes older X servers behave well + with linux-core. Without this, they will fail on their second + invocation since the drm already has a busID assigned. + Submitted by: Jon Smirl + +commit bf6eb1c0d47e670658c42e439434c0c25caabcfb +Author: Thomas Hellstrom +Date: Tue Dec 7 12:09:11 2004 +0000 + + Fix up linux 2.4 series Makefiles for via_verifier.c + +commit 1fbfd9eb32220a10d66373b77172965cfeccd4f7 +Author: Thomas Hellstrom +Date: Mon Dec 6 11:19:23 2004 +0000 + + Security and optimization fixes for the via drm: + 1. The command verifier was never initialized in the non-core source tree. + 2. Check added that the AGP ring buffer has been initialized before + accepting command buffer. + 3. Free space check in the AGP buffer is moved to after command + verification, which is more optimal in most cases. + +commit 267e0645272720344eb7556a948e72112edbe2ec +Author: Thomas Hellstrom +Date: Fri Dec 3 23:03:36 2004 +0000 + + Added 3D functionality to the via command verifier. Modified the via + ring-buffer code somewhat to workaround hardware problems. Bumped via + minor version number. + +commit f197110e07b0be03d5d79329779b665ac46433d5 +Author: Dave Airlie +Date: Fri Dec 3 10:22:15 2004 +0000 + + Make 1-bit fields be unsigned (no sign bit :). sparse complains about them: + drivers/char/drm/sis_ds.h:88:12: warning: dubious one-bit signed + bitfield drivers/char/drm/sis_ds.h:89:16: warning: dubious one-bit + signed bitfield + Signed-off-by: Randy Dunlap Signed-off-by: Dave Airlie + + +commit 4f8fa6028631fa1d799e9a68ed710fbc98976656 +Author: Thomas Hellstrom +Date: Sat Nov 27 22:55:31 2004 +0000 + + Reworked PCI MMIO command buffer parser, and imported code from the Mesa + driver. It can now handle the 3D OpenGL commands from the Mesa + unichrome driver. + Added vsync frequency detection support. This will be used in the future + for XvMC and better frame timing. + Bumped minor version number and driver date. + +commit f0a86288fa4d7b951f33f7b1a6ef36106c7df788 +Author: Dave Airlie +Date: Thu Nov 11 11:09:11 2004 +0000 + + patch from bug 1803 - will try and push to kernel soon + +commit 4b4df875b26bd08ae62f26b8ced6a050425752ac +Author: Jon Smirl +Date: Tue Nov 9 16:58:02 2004 +0000 + + Fix more build problems on linux-core + +commit 76b1a7f2b423eef828e911f93f1ef38927a5507e +Author: Jon Smirl +Date: Tue Nov 9 03:36:06 2004 +0000 + + make linux-core build again + +commit 6483e7a1ac8395828eb3a13f763cf99d6ef89535 +Author: Roland Scheidegger +Date: Tue Nov 9 00:54:19 2004 +0000 + + add missing CHIP_RV350 to radeon_enums + +commit a1d9e5abafe60ca2b7f96cadd1013695ada4ac41 +Author: Eric Anholt +Date: Sun Nov 7 04:11:15 2004 +0000 + + Refine the locking of the DRM. Most significant is covering the driver + ioctls with dev_lock, which is a major step toward being able to remove + Giant. Covers some new pieces (dev->unique*) in the core, and avoids + one call down into system internals with the drm lock held, which is + usually bad (FreeBSD LOR #23, #27). + +commit c5bededa5130a58273448188c04c15bc9c1097f3 +Author: Dave Airlie +Date: Sun Nov 7 02:19:58 2004 +0000 + + add some more r300 pci ids + +commit c21cdee38a6b9124d01662b36207450aa5fbb626 +Author: Dave Airlie +Date: Sun Nov 7 02:15:11 2004 +0000 + + respect cc and cflags + +commit 67f6c5e36a93a9cdb18df133f6c31bab521c152a +Author: Eric Anholt +Date: Sun Nov 7 00:30:15 2004 +0000 + + Don't link in files which no longer exist. + +commit fa3fdbd99c6b6e5cec59f1044ce6ce1105b5e8dd +Author: Eric Anholt +Date: Sun Nov 7 00:25:49 2004 +0000 + + Now that the memory debug code is gone, and all 3 BSDs have M_ZERO, stop + using drm_alloc/drm_free in the core and instead use plain malloc/free. + +commit d37457b5996c09d1965f8906501cd1fde6aa9499 +Author: Eric Anholt +Date: Sat Nov 6 23:05:46 2004 +0000 + + Add the drm Makefile and update .cvsignores. + +commit cb5aaa89871c051098ae8067d0e386840b7bdc59 +Author: Eric Anholt +Date: Sat Nov 6 23:02:07 2004 +0000 + + Convert more drivers for bsd-core, moving the ioctl definitions to shared + code. Remove the "drv" from sisdrv, as it's unnecessary. Use the + drm_pci functions in i915 instead of per-os implementations of the + same. Avoid whitespace within fields in drm_pciids.txt (one of the r300 + definitions), since it breaks the bsd pciids script. Tested on sis, + mga, r128. i915 needs more work. + +commit 7ddbd38dde5dc5566ba14f2b1c449611a6d0224f +Author: Eric Anholt +Date: Sat Nov 6 21:44:54 2004 +0000 + + Remove some core stuff that ended up being unnecessary. + +commit 7bdccfd0bb192200ba022c368f85f73e5a989e7a +Author: Eric Anholt +Date: Sat Nov 6 21:18:49 2004 +0000 + + Get r128 basically working: Hook up the driver's dma ioctl, use the proper + offset into the driver ioctl array, and don't make the ctx bitmap + conditional. + +commit ae7a1713139f1eacec9cc1629cacef0394e270cc +Author: Eric Anholt +Date: Sat Nov 6 20:27:19 2004 +0000 + + Move the lock/unlock ioctls to a more logical place, in drm_lock.c. + +commit cca29ac9becffc7d5fc8204c706621b842c3557d +Author: Eric Anholt +Date: Sat Nov 6 20:21:55 2004 +0000 + + Connect up r128_ioctls in driver config. + +commit 069f53a93b2c47c55c54dc8092ef23a9e7461033 +Author: Jon Smirl +Date: Sat Nov 6 16:55:41 2004 +0000 + + Move radeon i2c include to top of file + +commit 642a8106d270e74ec8ee1a809657d66f4fe6f542 +Author: Jon Smirl +Date: Sat Nov 6 16:51:36 2004 +0000 + + Export missing r128 ioctl symbol + +commit 000c8eb18ef7ee9cecb34909be52281ec88a5486 +Author: Jon Smirl +Date: Sat Nov 6 16:41:24 2004 +0000 + + Fix Linux build. Why won't this complile? extern int const foo; static + struct drm_driver driver = { .var = foo }; error says foo is not + constant + +commit b2f275b46e575766c7b5dab22ba30a367a182c9e +Author: Eric Anholt +Date: Sat Nov 6 11:50:08 2004 +0000 + + Hook the debug output up to a sysctl, so you can choose to enable at + runtime. + +commit 7adee84064d55207dbf7893cc8cb579bfa1a7631 +Author: Eric Anholt +Date: Sat Nov 6 11:19:38 2004 +0000 + + Add file missed in last commit: Commit first pieces of port to OpenBSD, + done by Martin Lexa (martin at martinlexa dot cz). Now that we've got + porting for all three major BSDs (and the fourth being very similar to + FreeBSD), move the mostly-duplication drm_os_* files into drmP.h. + Remove some cruft from linux heritage and from pieces of the DRM that + have since been removed. + Note that things are still not quite working for even FreeBSD, but these + are first steps at cleanup, and just a WIP checkpoint. + +commit d7510ea4136a031b16fb25a32bd77970d315707a +Author: Eric Anholt +Date: Sat Nov 6 11:16:26 2004 +0000 + + Commit first pieces of port to OpenBSD, done by Martin Lexa (martin at + martinlexa dot cz). Now that we've got porting for all three major BSDs + (and the fourth being very similar to FreeBSD), move the + mostly-duplication drm_os_* files into drmP.h. Remove some cruft from + linux heritage and from pieces of the DRM that have since been removed. + Note that things are still not quite working for even FreeBSD, but these + are first steps at cleanup, and just a WIP checkpoint. + +commit cf259f10aa8dbd83a4c086963fee7138280a9688 +Author: Eric Anholt +Date: Sat Nov 6 02:00:04 2004 +0000 + + Remove the vestiges of the memory-debug code. + +commit c9202c89653b8dac2ac322c3d3a7389945e1c94c +Author: Eric Anholt +Date: Sat Nov 6 01:41:47 2004 +0000 + + Commit WIP of BSD conversion to core model. Compiles for r128, radeon, but + doesn't run yet. Moves the ioctl definitions for these two drivers back + to the shared code -- they aren't OS-specific. + +commit 39a23640b2de9e59e99d48e6de8c9edae0231856 +Author: Jon Smirl +Date: Fri Nov 5 17:29:14 2004 +0000 + + Move ati_pcigart shared routines into drm-core module + +commit f08a01c0e21431e1b7990584ce2f61f0e711c093 +Author: Thomas Hellstrom +Date: Wed Nov 3 13:37:37 2004 +0000 + + Fixed bug in via_dma.c. The code didn't check that the lock was held by the + caller. Just that it was held. + +commit 9409d8231c3be346ce7148275ce0ee86ec171716 +Author: Thomas Hellstrom +Date: Mon Nov 1 20:48:49 2004 +0000 + + Reworked the jump-code in via_dma.c. The command regulator now seems to + pause correctly after a jump. Removed the debug message from within the + interrupt handler of via_irq.c + +commit 08758b2fb76bc4e862f25d0164ae9f523d2dec20 +Author: Keith Whitwell +Date: Mon Nov 1 10:52:18 2004 +0000 + + correct historic mis-attribution of copyright + +commit 5128542814215b26ed342e3a4ac2217606fe5e76 +Author: Felix Kuehling +Date: Sun Oct 31 15:16:44 2004 +0000 + + Allow drivers to override reclaim_buffers in an OS-independent way by + passing drm_device_t* as first parameter, like in the BSD version. + +commit 8264e2c8aa6b2811bca0e45c50ac3328d14bfbf7 +Author: Thomas Hellstrom +Date: Sat Oct 30 13:01:48 2004 +0000 + + Some stabilizing work to the DMA ring-buffer code. Temporarily replaced the + rewind jump with a reinitialization. This makes the code stable on + CLE266 and KM400. + +commit 816a2917099b3ff214dc357c5b41984f34902cf3 +Author: Jon Smirl +Date: Fri Oct 29 17:09:54 2004 +0000 + + Switch SPIN_LOCK_UNLOCKED to spin_lock_init() + +commit c611cb9f171df3b9ad19e57e614f35c67e73ceb1 +Author: Jon Smirl +Date: Fri Oct 29 14:38:07 2004 +0000 + + Add include of moduleparam.h + +commit b974e2cd683fa798970cd1bdc5e20acfb7a34a9c +Author: Jon Smirl +Date: Thu Oct 28 15:52:31 2004 +0000 + + Break poll() to make it match the Xserver's broken expectations. + +commit 486a84d70c31423a849cd88dbd91ced2dcf83742 +Author: Dave Airlie +Date: Thu Oct 28 09:50:39 2004 +0000 + + fix for 2.4 build + +commit b37efdadca5da66cfd442a88353fa92c9e7aec24 +Author: Jon Smirl +Date: Sat Oct 23 18:12:34 2004 +0000 + + Round 2 of getting rid of inter_module_get() + +commit 43cbf43a5f9e54decbfd837d0b5984454f2d61bf +Author: Jon Smirl +Date: Sat Oct 23 14:43:06 2004 +0000 + + Revert symbol_get() changes from drm_drv + +commit 4b29f857685e4fc6c8901a061c6de7b86ee3e993 +Author: Dave Airlie +Date: Sat Oct 23 14:00:53 2004 +0000 + + fix inter module put/get + +commit 1473556e065b1970196b8bb542574cd1e275bb00 +Author: Dave Airlie +Date: Sat Oct 23 07:02:29 2004 +0000 + + actually 2.6.10 introduced pfn range so it should work now.. + +commit 182a0e5dac5e2ae3751abc2eaa0398aa0150a131 +Author: Dave Airlie +Date: Sat Oct 23 06:59:15 2004 +0000 + + fix pfn vs page for older kernels (2.6.9-rc kernels many not work..) + +commit 8d7e798d4c73650ed240a3ad194744b94043e31f +Author: Dave Airlie +Date: Sat Oct 23 06:25:56 2004 +0000 + + Apply radeon r300 microcode patch to non-core + +commit 9ea6fe7aa6ba27cc7003c9cd141e9146a492416d +Author: Jon Smirl +Date: Sat Oct 23 04:21:27 2004 +0000 + + Prepare to eliminate inter_module_get("agp") + +commit ad87dd8427b6142c42d7b97c7a4170c89b6728ec +Author: Jon Smirl +Date: Fri Oct 22 16:03:21 2004 +0000 + + Bring in patch from kernel for remap_pfn_range + +commit d76f734f68eeea32c94de6ad4979a94ca8e320db +Author: Jon Smirl +Date: Thu Oct 21 16:58:28 2004 +0000 + + Fix up the radeon i2c error handing + +commit 17ce33835a0b582d87343fab331d80342f268d4d +Author: Jon Smirl +Date: Wed Oct 20 16:23:42 2004 +0000 + + Don't release an i2c channel that has not initialized correctly + +commit 7ebbebf3d3a3af3c363a1396d737d5a61634124b +Author: Jon Smirl +Date: Wed Oct 20 05:11:49 2004 +0000 + + Switch linux-core from using dev->pdev->driver->name to + dev->driver->pci_driver.name. This avoids the stealth mode case where + pdev is pointing to the wrong driver or no driver. + +commit 5ae6c5af751780fbf424b848aa2355bc303a5b73 +Author: Jon Smirl +Date: Wed Oct 20 04:41:38 2004 +0000 + + Fix dd vs di version typo in drm_setversion + +commit 157a814be6f3065a2463141f1592fa8948765334 +Author: Jon Smirl +Date: Tue Oct 19 18:18:02 2004 +0000 + + Add a protective check against a possible buffer overflow + +commit bcfbd73536e8e44b028953e4e04c83d143612a10 +Author: Jon Smirl +Date: Tue Oct 19 16:30:02 2004 +0000 + + Fix missing I2C busses to be non-fatal error. + +commit ca1ec9268f9de783daf3f2db86a4fb47108d609a +Author: Jon Smirl +Date: Tue Oct 19 02:50:14 2004 +0000 + + drm-core, Clean up bug error path on stealth mode exit + +commit 0d89b19325d533a7c1817fcb568a1879fd28a865 +Author: Jose Fonseca +Date: Mon Oct 18 14:16:41 2004 +0000 + + Update Doxygen configuration & comments. + +commit d403173005fd345ba8b83f19497a8aaf07e7eee6 +Author: Ville Syrjala +Date: Sat Oct 16 11:21:56 2004 +0000 + + Fixed off by one errors in clipping. + +commit 52fdf10fd79c2223c05e2146431343132b4db964 +Author: Ville Syrjala +Date: Sat Oct 16 10:54:58 2004 +0000 + + Fixed bad formatting. + +commit a8b2c94c181a8f398a824aa3267144a29ffaca33 +Author: Jon Smirl +Date: Fri Oct 15 20:37:01 2004 +0000 + + Remove drm_init.c + +commit 91aa32742c49db0c553b5836afd28c8ea2436014 +Author: Jon Smirl +Date: Fri Oct 15 20:36:15 2004 +0000 + + Move drm_cpu_valid out of drm_init. drm_init is empty now. + +commit fa50e2b5132b84353ae964a39c3b10ea270d15e8 +Author: Jon Smirl +Date: Fri Oct 15 02:59:35 2004 +0000 + + Switch linux-core over to 2.6 parameter model to enable debug use + drm_debug=1 + +commit 5e8838fd115879174567c4c2db8ad25331619994 +Author: Jon Smirl +Date: Wed Oct 13 16:40:53 2004 +0000 + + Add a poll function that alternates between zero and normal poll return to + bring DRM into conformance with normal poll(). + +commit bbfe18e3bf7b45543c9f59f7363c1ed5b6bca719 +Author: Thomas Hellstrom +Date: Tue Oct 12 18:46:26 2004 +0000 + + Via updates. Fixed unlikely but possible uint32_t overflow in ring-buffer + code. bumped patchlevel. + +commit ad70dc676ebf8f2f86d171dccb873a04a3e5b87b +Author: Jon Smirl +Date: Tue Oct 12 03:59:17 2004 +0000 + + Breakout heads into their own data structures. + +commit ad549c5ae62fd75aa2bdb8bf5efc4913c476cb02 +Author: Jon Smirl +Date: Sun Oct 10 22:54:55 2004 +0000 + + Rename fn_tbl to driver. Core driver now uses pci_driver name which + reflects the personality name. + +commit 3f02a793514a866401119efc74c20512f4732703 +Author: Dave Airlie +Date: Sun Oct 10 05:52:19 2004 +0000 + + Vladimir requested support so we can at least load r300 microcode for + helping + 2D operations. + Ups radeon to version 1.12.0, Vladimir, you might want to add any extra + pciids... + Approved-by: Dave Airlie + +commit 5654a78547d0903c0ea2c290cbfac6ea9e777b9a +Author: Jon Smirl +Date: Sun Oct 10 02:49:06 2004 +0000 + + Forgot to add the new Makefile + +commit b5e02f8eb3b9c178014e510e5999fab671031a6c +Author: Jon Smirl +Date: Sun Oct 10 00:09:31 2004 +0000 + + Make the test programs build + +commit 8727326371621c8c2b9f794532ca543a708ed71f +Author: Dave Airlie +Date: Sat Oct 9 12:42:52 2004 +0000 + + cleanup VIA driver to look a bit like others before kernel merge + +commit efcb9fb7ae3caad341bd8c82febf9d65b2a73933 +Author: Dave Airlie +Date: Sat Oct 9 11:16:20 2004 +0000 + + fix up whitespacing in Kconfig + +commit fec94a82748b3603da7239e39d247a9654765659 +Author: Dave Airlie +Date: Sat Oct 9 11:12:24 2004 +0000 + + Lindent the via stuff so I can include it in kernel + +commit e09229d6c85bcb8b899f09fd70f264b4e1d6d0bd +Author: Dave Airlie +Date: Sat Oct 9 10:58:19 2004 +0000 + + remove unused dma remnants that were gamma only - these could cause an oops + on via + +commit d24194e904cbfc85147efae6922e497e0102b2eb +Author: Thomas Hellstrom +Date: Fri Oct 8 21:11:02 2004 +0000 + + Changed unsigned to uint32_t in some ioctl parameters. Introduced first + rudimentary command verifier for dma buffers. Changed the decoder futex + ioctl parameters. Bumped the via major version number. + +commit 3981f17227aa72b263d27e79aede307b1e2980a8 +Author: Jon Smirl +Date: Fri Oct 8 14:31:25 2004 +0000 + + Fix refcount bug in stealth mode + +commit 6619c5d941b86452405222a5b44a546dd0aa45c7 +Author: Jon Smirl +Date: Thu Oct 7 00:40:16 2004 +0000 + + Fix drm_exit to allow for DRM(global) being deleted when framebuffer is + loaded. + +commit 61d36f6179f535de4a37c58cb7dade2b6035883d +Author: Jon Smirl +Date: Wed Oct 6 16:27:55 2004 +0000 + + Revert back to drm_order() instead of using kernel get_order(). The + functions are not identical. + +commit 4dbc1e87288987f0506087c7971639c33af8fe3e +Author: Dave Airlie +Date: Tue Oct 5 12:12:01 2004 +0000 + + Patch for Kconfig for making i830/i915 not build together + +commit 6dee8401a65c2b976dad8937985439fb8f0887be +Author: Jon Smirl +Date: Tue Oct 5 02:58:14 2004 +0000 + + enable the device in the right order, remove __devinit from drm_int + +commit aba12cfc0e80694457347dc9d0ed78cd78192ea3 +Author: Jon Smirl +Date: Sat Oct 2 19:11:30 2004 +0000 + + janitor-list_for_each-drivers-char-drm-radeon_memc.patch from mm kernel + +commit e17abf5d5dc7c9895ed9aea0efb4ac501171fa54 +Author: Jon Smirl +Date: Thu Sep 30 23:47:45 2004 +0000 + + Make the debug memory functions compile for the core model. + +commit a36a6a291d3627bf1ad036fa4a7a33ea99e8ed5d +Author: Jon Smirl +Date: Thu Sep 30 21:27:59 2004 +0000 + + Remove DRM() macros from core ffb driver. DaveA says he'll make it compile + someday. + +commit 9f9a8f1382711a05ec000b639d971b619d8bc305 +Author: Jon Smirl +Date: Thu Sep 30 21:12:10 2004 +0000 + + Lindent of core build. Drivers checked for no binary diffs. A few files + weren't Lindent's because their comments didn't convert very well. A + bunch of other minor clean up with no code implact included. + +commit 368493edc9e47ce63edf955e9fa9d096500c4e8e +Author: Jon Smirl +Date: Thu Sep 30 21:06:53 2004 +0000 + + savage.h not used in core builds + +commit e1d74a98994963b0427486391fad4f6473d39c9f +Author: Jon Smirl +Date: Thu Sep 30 20:46:59 2004 +0000 + + core ffb.h is not used anymore + +commit b3d70ad6a7b6f4bd1216929200ddfc8e348529cb +Author: Jon Smirl +Date: Thu Sep 30 20:25:13 2004 +0000 + + Remove unused drm_module.h + +commit 1c0a437fa20e8c3fb971cd8947754a9b274bea76 +Author: Jon Smirl +Date: Thu Sep 30 19:26:35 2004 +0000 + + Move things around to reduce public symbols and even out files. Switch to + get_order from drm_order. + +commit 3aef3841d0c8099a97a56a285f0a21d9147405bd +Author: Jon Smirl +Date: Thu Sep 30 18:13:33 2004 +0000 + + Make fops per driver instead of global, remove default flush, poll, read + functions + +commit 0bff0d9eb6317ccccafc79cac7b235b4cb4c9161 +Author: Jon Smirl +Date: Tue Sep 28 22:25:06 2004 +0000 + + Getting the AGP module is a global resource. Make sure a dual PCI/AGP + driver doesn't release it on unload since an AGP driver may also be + loaded. + +commit 9e421181ddfc2d91859e9959487baf2df851e743 +Author: Jon Smirl +Date: Mon Sep 27 20:14:31 2004 +0000 + + Fix the shared directory I accidentally stomped on + +commit 6d6526fdf9a4390fab3edbca79d6a0b80b84ddd1 +Author: Jon Smirl +Date: Mon Sep 27 19:53:51 2004 +0000 + + core needs three new files + +commit fa6b1d129e7bf8acf41e66c9c665ae9f9c1d5b0d +Author: Jon Smirl +Date: Mon Sep 27 19:51:38 2004 +0000 + + First check in for DRM that splits core from personality modules + +commit 77fa7b9548bf7a5bf5e49515f1a478c27ede07a7 +Author: Jon Smirl +Date: Mon Sep 27 15:42:48 2004 +0000 + + Flip the 2.4 check so that it looks for 2.6 instead. This will allow builds + where we can't determine the version through. + +commit edbfb46c0bfcc2a5a20d9f23d7088a4acce52b8d +Author: Jon Smirl +Date: Fri Sep 24 04:31:25 2004 +0000 + + README with hints on how to make a 2.6 specific version of a 2.4/2.6 shared + file + +commit 1d6392f1fdcd8ed7e2936af815387d12ee124cab +Author: Jon Smirl +Date: Fri Sep 24 04:21:21 2004 +0000 + + Makefile reminder to build in 2.6 when on 2.6 + +commit 74f063fc9d445f263242063e7acab1864ff75205 +Author: Jon Smirl +Date: Fri Sep 24 03:12:17 2004 +0000 + + Create new linux-2.6 build. Move all gpl files into the 2.6 build. If you + edit files for 2.6 be sure and break the link to the 2.4 directory and + copy the cvs history. + +commit 36a257cfe9e45e7a2022f19100a193eb73e30d4b +Author: Jon Smirl +Date: Thu Sep 23 17:22:27 2004 +0000 + + Remove 2.6 code that allow DRM major device number to be shared. We can add + it back later if needed. Checked DRM on both 2.4 and + 2.6 to ensure that it builds and runs. + +commit 55c5e240892bb9673cce602e7deb323f29aa8031 +Author: Jon Smirl +Date: Thu Sep 23 05:40:05 2004 +0000 + + Add new sysfs support files + +commit c158a36c4cfef024ba1be05a163cfd4b00ebea21 +Author: Jon Smirl +Date: Thu Sep 23 05:39:15 2004 +0000 + + 1) switches from class_sysfs to drm sysfs implementation to allow + customization + 2) compiles again on 2.4, but doesn't work + +commit af326f6f0c26191b4aef2183fb485e58495b29a5 +Author: Felix Kuehling +Date: Wed Sep 22 22:51:18 2004 +0000 + + Create permanent maps of framebuffer, aperture and MMIO registers. Added + chipset-type information in driver data field of Savage PCI-IDs. Added + missing PCI-ID 0x8d03 (ProSavageDDR on Pentium boards). Don't require + AGP. + +commit 27fc998f7d16e7197f38b2d7d1ce65938e06423d +Author: Jon Smirl +Date: Wed Sep 22 19:13:02 2004 +0000 + + Remove hotplug reset support from DRM driver. This will be handled by the + VGA driver when it gets written. + +commit 184a50368505bb74f3efac3cf48e72db41487342 +Author: Eric Anholt +Date: Wed Sep 22 16:45:44 2004 +0000 + + Add *.flags to cvsignore. + +commit 2ad068005aa9785dd86e0023354f68e970f04e9f +Author: Jon Smirl +Date: Tue Sep 21 05:13:21 2004 +0000 + + Make DRM permanent maps match broken X behavior. X is mapping regions that + are both smaller and larger than what the hardware supports. If DRM + tries to fix these requests X will fail. + +commit 6f31c42fe923ff3f79a55d8c859e6ccfd3bd322d +Author: Jon Smirl +Date: Mon Sep 20 19:23:27 2004 +0000 + + Remove size restriction on permanent addmap + +commit 59cc1d8256fb3b6e2374e52eb24da12b046aea91 +Author: Jon Smirl +Date: Mon Sep 20 17:09:26 2004 +0000 + + Felix's fix for map request smaller than permanent map size + +commit 5654880eeed0646a53655b093f4d3bf5608ebcc7 +Author: Dave Airlie +Date: Mon Sep 20 11:29:16 2004 +0000 + + remove HAVE_COUNTERS + +commit fa75a81c9acbae7282e2ea5596f04a6b359c95e9 +Author: Dave Airlie +Date: Mon Sep 20 10:45:53 2004 +0000 + + another fix after the macro stuff + +commit c15b1d15ffbf41ed60cd807d13f031c8f270f887 +Author: Jon Smirl +Date: Sat Sep 18 16:44:43 2004 +0000 + + Fix from: Nishanth Aravamudan replace direct assignment with + __set_current_state() + +commit 993a75a5d148cb0a93bbed677b550bfb4d57fe4a +Author: Jon Smirl +Date: Fri Sep 17 20:01:59 2004 +0000 + + Makefile and missing file to build libxf86drm.a + +commit f10f8821014bc7a05e8bbc9f199e0f60b1541a0e +Author: Jon Smirl +Date: Fri Sep 17 04:25:19 2004 +0000 + + Add the two GPL licensed I2C support files. + +commit 0c6fb0fbe1fff43af60634b785cd5b7196c8dd03 +Author: Jon Smirl +Date: Fri Sep 17 04:02:28 2004 +0000 + + Add linux sysfs i2c support to radeon driver. This patch adds GPL licensed + files to the linux build but not to the BSD directories. + +commit c7c9d3ef7b82215696c007415a018c670d54041e +Author: Jon Smirl +Date: Thu Sep 16 18:42:03 2004 +0000 + + Let's try adding the dyn-minor patch again. This patch will reuse minor + numbers if a card is hotplugged in/out instead of just having them + increase. + +commit 5dfd89ae0a4894a3b9de17c17bb75c47e6509b8e +Author: Jon Smirl +Date: Thu Sep 16 14:32:17 2004 +0000 + + Fix drm_scatter to properly report it's availability + +commit eeb0ef1a7076e7744655954e95a65532eb4b7ebe +Author: Jon Smirl +Date: Wed Sep 15 17:44:30 2004 +0000 + + Back dyn-minor patch out for now. fops handling is broken on some cards + +commit 941d2cf431d0534ec53f90e627bb0445b6f0260e +Author: Jon Smirl +Date: Wed Sep 15 16:06:50 2004 +0000 + + Don't use module_param if it isn't defined in older kernels. + +commit 64ef12c55cfca7885108950eb975c4d6625a0570 +Author: Jon Smirl +Date: Wed Sep 15 00:20:21 2004 +0000 + + Dynamic device minor support. Minor device numbers will be reused if the + device is hotplugged in/out of the system + +commit 03c2e674e43db5fcf4cb4b641005c329c7b343a9 +Author: Jon Smirl +Date: Tue Sep 14 03:59:25 2004 +0000 + + Add chip family names to the radeon driver + +commit 13cb3f1b006d24e4578aca25522fd224aed5cd9c +Author: Jon Smirl +Date: Sun Sep 12 19:24:08 2004 +0000 + + Fix error path in probe() to release resources if there is an error. + +commit 15407efd468b8745354a346544aba5f25448103a +Author: Jon Smirl +Date: Sun Sep 12 03:30:30 2004 +0000 + + Make the comment match the code + +commit 36050cc958596ca81d667d8a51e124e9ea9eb866 +Author: Jon Smirl +Date: Sun Sep 12 03:23:50 2004 +0000 + + Fix DRM to compile cleanly with recent kernel changes in PCI IO and + DRM_COPY_FROM_USER. PCI IO changes in 2.6.9-rc1 bk currently. + +commit e6d468ad7f398a72e8be227564f3a450de873cc6 +Author: Jon Smirl +Date: Fri Sep 10 16:44:28 2004 +0000 + + More general patch to mark resources in use by all DRM drivers. Makes the + code Linux specific. + +commit 1fb27632c3338ff974c27fd88e2098a5193bb145 +Author: Jose Fonseca +Date: Wed Sep 8 20:57:39 2004 +0000 + + Update doxygen configuration file. Minor documentation updates/fixes. + +commit 3bf785c9126a0bbc38b794096dbbddab5682c251 +Author: Jon Smirl +Date: Wed Sep 8 01:49:06 2004 +0000 + + Adjust permanent mapping code to account for more than one framebuffer map + +commit b0c73b7fcb3f2504f2ab747bae75a98112071491 +Author: Thomas Hellstrom +Date: Tue Sep 7 16:48:44 2004 +0000 + + Added IOCTL for writing 2D DMA command buffers over PCI. Bumped minor + version number. + +commit c33f4449fc893d5478d9541bc6a80124c8f96ea5 +Author: Dave Airlie +Date: Sun Sep 5 23:33:57 2004 +0000 + + missed fix as part of last checkin + +commit eeae6a0a3885f9af9efba7c1e1bcb1e633635717 +Author: Dave Airlie +Date: Sun Sep 5 10:54:59 2004 +0000 + + merge back bunch of whitespace and misc changes from kernel + +commit f96e00595dff85e18697205686f568042e0b083b +Author: Dave Airlie +Date: Sun Sep 5 10:10:34 2004 +0000 + + bad code copy for alpha.. fix the member names + +commit 3dcbc1f4a13e2f8d5ddb2a9ae8bc83c48a30a2b7 +Author: Dave Airlie +Date: Sun Sep 5 02:36:48 2004 +0000 + + make the AMD64 check a compat thing + +commit 4499ea42eae887c45403cd9ea364fccf311fee8e +Author: Dave Airlie +Date: Sat Sep 4 23:21:40 2004 +0000 + + Fixup OS_HAS_AGP/OS_HAS_MTRR along lines of patches going to kernel, as + suggested by Arjan.. + Signed-off-by: Dave Airlie + +commit 3d9e16aa6e074fdaa7a74f2fb6b0c46f1dd04172 +Author: Dave Airlie +Date: Sat Sep 4 13:15:40 2004 +0000 + + doh.. that makes no sense.. thinko in removal of OS_HAS_AGP + +commit 8825579f1c23f5165270fa284e11efd62437e34a +Author: Dave Airlie +Date: Fri Sep 3 14:54:53 2004 +0000 + + file drm_core.h was initially added on branch drmlib-0-0-1-branch. + +commit fba81d4482303ba0f88c07871635c8a6583257cb +Author: Dave Airlie +Date: Fri Sep 3 14:54:53 2004 +0000 + + file drm_agpsupport.c was initially added on branch drmlib-0-0-1-branch. + +commit 0c955c00c7722bb611eac7876433f66e7d1d0e83 +Author: Dave Airlie +Date: Fri Sep 3 14:54:53 2004 +0000 + + file drm_core_memory.h was initially added on branch drmlib-0-0-1-branch. + +commit be11d2b18561fa4a3e55d178b925820c244a1b54 +Author: Dave Airlie +Date: Fri Sep 3 14:54:53 2004 +0000 + + file drm_headers.h was initially added on branch drmlib-0-0-1-branch. + +commit 91be7bd6de6a7958780bdb6886205ffe0287e7c3 +Author: Dave Airlie +Date: Fri Sep 3 14:54:53 2004 +0000 + + file drm_memory.c was initially added on branch drmlib-0-0-1-branch. + +commit b13574a0f38537958fb08006088ef3d9009a3ff7 +Author: Dave Airlie +Date: Fri Sep 3 14:54:53 2004 +0000 + + file drm_memory_debug.c was initially added on branch drmlib-0-0-1-branch. + +commit 02ab8dd7f7edaf6626ebb61320380fec3cb4da77 +Author: Dave Airlie +Date: Fri Sep 3 14:54:53 2004 +0000 + + file drm_proc.c was initially added on branch drmlib-0-0-1-branch. + +commit 9ed4e7854bb2e785412488a88a41df5659faad56 +Author: Dave Airlie +Date: Fri Sep 3 14:54:53 2004 +0000 + + file drmcore_exports.c was initially added on branch drmlib-0-0-1-branch. + +commit 838bb7af71b5730de55549a74c8198215c1f1475 +Author: Dave Airlie +Date: Thu Sep 2 12:33:03 2004 +0000 + + oops called ctor instead of dtor.. found this on the kernel merge + +commit a070d15b530da87b835f4a439886eea3c606ac2f +Author: Jon Smirl +Date: Thu Sep 2 04:11:27 2004 +0000 + + Fix ref count problem in stealth mode. pci_get_subsys() with last parameter + set does the pci_dev_put for you. + +commit 244b3e6c7cf61d3de56267e5813b0a1821ca0ac0 +Author: Dave Airlie +Date: Tue Aug 31 05:02:23 2004 +0000 + + Apply patch from Bryan Stine bugzilla #1227 + +commit da6b44849763fac5ccb7d7511128454c6c2a92c7 +Author: Dave Airlie +Date: Mon Aug 30 11:34:51 2004 +0000 + + implement drm_core_check_feature and use it .. looks lots nicer + +commit 7809efc8c32520e6b25c143ee3276edbf534ed14 +Author: Dave Airlie +Date: Mon Aug 30 09:01:50 2004 +0000 + + drm-memory patch, cleans up alloc/free and makes calloc look more libc like + +commit 08de6e5b04c1950a5f396315e59d2476726e26d8 +Author: Erdi Chen +Date: Mon Aug 30 04:58:24 2004 +0000 + + Fix copy_from_user return value ignored warning at via_dma.c:168. + +commit 0844f3e9f37bacf650fab4953482923e9480aae3 +Author: Dave Airlie +Date: Sun Aug 29 12:39:17 2004 +0000 + + add context include so fn are defined + +commit b9c82926bc5fe91cac9091a5af3f68b797bd95d1 +Author: Dave Airlie +Date: Sun Aug 29 12:37:11 2004 +0000 + + fix up some small things ffb (no idea if it works or not ..) + +commit 55c6e72306efd960eb28870c8f7520360275d444 +Author: Dave Airlie +Date: Sun Aug 29 12:17:26 2004 +0000 + + remove hacky context thing that was gamma only + +commit 1430163b4bbf7b00367ea1066c1c5fe85dbeefed +Author: Dave Airlie +Date: Sun Aug 29 12:04:35 2004 +0000 + + Drop GAMMA DRM from a great height ... + +commit 6916572c1c32cd030258ab917f0a568517d5006b +Author: Dave Airlie +Date: Sun Aug 29 10:09:23 2004 +0000 + + fixup issue caused by fntbl-2 merge + +commit 4a89c75456b1d7d0dd20bae0e0f5dd47bdc5417e +Author: Jon Smirl +Date: Sat Aug 28 23:59:51 2004 +0000 + + Initialize pdev to NULL correctly so that pci_get_subsys() will work. + +commit 73e606753fcece20f905281d44067504d5f2fabc +Author: Dave Airlie +Date: Fri Aug 27 09:14:30 2004 +0000 + + run i915 through lindent + +commit 019fd38a3c032774a1e80b3aed7de3710ba84e0a +Author: Dave Airlie +Date: Fri Aug 27 09:11:07 2004 +0000 + + __NO_VERSION__ hasn't been needed since 2.3 days ditch it... + +commit 60f23ebc5cd5d78f594b20b2ddb330b5158c0902 +Author: Jon Smirl +Date: Fri Aug 27 02:26:07 2004 +0000 + + Make DRM detect vesafb and revert to stealth mode to avoid resource + conflicts + +commit e068fcbfddaf95e96be7999e1a66062fab6fcb46 +Author: Jon Smirl +Date: Thu Aug 26 03:54:01 2004 +0000 + + Rearrange things so that via_dma.c will compile with inline via_check_dma + +commit d4dbf457813e97531ded3bf24f3b6ad421189c69 +Author: Dave Airlie +Date: Tue Aug 24 11:15:53 2004 +0000 + + Merged drmfntbl-0-0-2 + +commit eac498baeaf9b57b448065b0fb9f4eeadbb9aa6b +Author: Dave Airlie +Date: Tue Aug 24 10:43:45 2004 +0000 + + addmap-base-2 patch from Jon Smirl: + sets up the DRM to have the ability to have permanent maps while the driver + is loaded... + +commit 25e319c1ef5b6c002ddfe55338cd920240cc1dad +Author: Erdi Chen +Date: Tue Aug 24 01:44:37 2004 +0000 + + This patch adds three new ioctl's to the VIA Unichrome/Pro DRM driver: + DRM_IOCTL_VIA_DMA_INIT DRM_IOCTL_VIA_CMDBUFFER DRM_IOCTL_VIA_FLUSH + The first ioctl sets up an area in AGP memory that will be used as the ring + buffer. The second ioctl copies a command buffer from user space memory + to the ring buffer. The third ioctl waits for engine idle until it + returns. + The motivation for this patch is to avoid the wait for engine idle call + before each buffer flush in the current DRI driver. With this patch, + the DRI driver can continue to flush its buffer as long as there is + free space in the ring buffer. + This patch adds an additional copy operation on the command buffer. This + buffer copying is necessary to support multiple DRI clients rendering + simultaneously. Otherwise, more CPU time will be spent in the busy loop + waiting for engine idle between DRI context switch. Even in the single + client case, the tradeoff is reasonable in comparision to the kernel + call to check for free buffer space for the client to render directly + to the ring buffer. + +commit 7fe4f607681e9a5593e91915953a9b6c45e5f08c +Author: Dave Airlie +Date: Mon Aug 23 10:05:01 2004 +0000 + + set pointers to NULL after freeing, remove some extra debugging + +commit 5c9ed8309493acb099463d25b32fabb5b7c004af +Author: Dave Airlie +Date: Tue Aug 17 13:10:05 2004 +0000 + + Merged drmfntbl-0-0-1 + +commit 93e8c201afac565942f9d3523ac808d3220d6d0e +Author: Dave Airlie +Date: Tue Aug 17 11:24:50 2004 +0000 + + preparation patch for radeon permanent mapping registers/framebuffer makes + dev_priv live always, and add AGP detection in kernel patch: + radeon-pre-2.patch From: Jon Smirl + +commit 02ef96053ccbe4c20827ec8006455906e7fb2360 +Author: Dave Airlie +Date: Tue Aug 17 10:36:46 2004 +0000 + + 2.6.8.1 has changed the links in /lib/modules + +commit c360d6f4f2075c90d42b109e3da932ac5d69699c +Author: Jon Smirl +Date: Sun Aug 15 15:46:28 2004 +0000 + + Fix warning about unused ddev variable + +commit 23bbff24aa427d6d0c16707dbe99c28ba2075894 +Author: Jon Smirl +Date: Sun Aug 15 15:35:14 2004 +0000 + + Add dev to DRIVER_CTX_DTOR( dev, pos->handle) so that sis driver will + compile #if 0 get_pci_driver use in hotplug function until fbdev work + around is written + +commit 740ddb9c5d5506bc921d10742cf41b5aa143f84e +Author: Eric Anholt +Date: Sat Aug 14 00:56:34 2004 +0000 + + Remove unused pcigart/sg header stuff from i915 driver. + +commit dd83f39f034756e7eb8e002dbfb0047f88aa79e4 +Author: Eric Anholt +Date: Sat Aug 14 00:46:15 2004 +0000 + + Add a "dev" argument to DRIVER_CTX_[CD]TOR. This will be used in an + upcoming commit for the SiS driver. + +commit 2376ec4ef8d280cf6fba44ba0163989eff739187 +Author: Eric Anholt +Date: Sat Aug 14 00:03:32 2004 +0000 + + Hopefully proper fix for corrupted driver name in memcontrol list. + Reported by: Jung-uk Kim + +commit 211c37e250af6f8645a247ef1cce4dee041f3fd1 +Author: Eric Anholt +Date: Fri Aug 13 23:32:39 2004 +0000 + + Fix apparent copy'n'paste-o of the card attributes commit that broke the + FreeBSD build. + +commit d78db7c930c4652f45584098747efa8feb4cd280 +Author: Eric Anholt +Date: Fri Aug 13 23:17:17 2004 +0000 + + Enable MTRR usage on AMD64, and use DELAY() instead of rolling our own + udelay code. + Submitted by: Jung-uk Kim + +commit fd62869a0f600f2fd477d5aa365f7732686f5542 +Author: Adam Jackson +Date: Wed Aug 11 23:23:35 2004 +0000 + + Bug #979: Don't include on linux, it occasionally emits + makedev() as a function call that elfloader can't resolve. Originally + Gentoo Bug #41962, reported by Ryan Breen, fix feedback from Ryan + Lortie. + +commit ecf1458b2ce431227807b07844b44e8c9171636d +Author: Dave Airlie +Date: Wed Aug 11 09:07:36 2004 +0000 + + minor patch from Jon Smirl : sets up some things for later use + +commit 9277f9eef388ffef26000ab455d30260bdf41c93 +Author: Dave Airlie +Date: Tue Aug 10 11:14:07 2004 +0000 + + Patch from Jon Smirl to add attribute field to the pciids, and use this for + certain radeon combinations - intel drivers can probably use this for + dual head capable devices etc.. + +commit 42e91874608f28246367207815eb7334574d7aa7 +Author: Dave Airlie +Date: Wed Aug 4 10:56:48 2004 +0000 + + 2.4 compat + +commit be3e54bc15aadf26743a8d0150b8fa38952863b4 +Author: Dave Airlie +Date: Wed Aug 4 10:53:21 2004 +0000 + + 2.4 hotplug compat + +commit 6c9715eaf502587c58acfaea420a4fdf29bd7221 +Author: Dave Airlie +Date: Tue Aug 3 11:26:38 2004 +0000 + + bring over fix from i865-agp branch, it now probes the driver, X hangs + box.. + +commit 4f8f02a1922653b2ce5c115c4469e927b5d826fa +Author: Dave Airlie +Date: Tue Aug 3 09:21:11 2004 +0000 + + fix for drm in /proc - from Jon Smirl + +commit 33b740ad9946ce6fdedeed45287e488f95fb7b42 +Author: Dave Airlie +Date: Mon Aug 2 11:45:23 2004 +0000 + + forgot to check these in.. thanks to Jon for reminding me .. + +commit 5e7e41819eb4d4b18201bbb46d0c6e359c4039cd +Author: Jon Smirl +Date: Sat Jul 31 15:45:00 2004 +0000 + + Add a hotplug event to DRM. Parameters match the ones from the general PCI + hotplug event plus the addition of one requesting RESET. Put your + scripts in /etc/hotplug.d/drm to run. kernel class_simple generates the + ADD/REMOVE events. No cards currently request RESET, the flag is there + to stop you from resetting your boot display. + +commit bd71ba642890856aff339482a9422ecea1ef55d1 +Author: Dave Airlie +Date: Sat Jul 31 08:38:39 2004 +0000 + + patch from RH xorg-x11 tree ported to drm.h + +commit cc4d03930ce753302a88fc9722473a5d9fac7b44 +Author: Dave Airlie +Date: Sat Jul 31 08:12:39 2004 +0000 + + Patch picked up from Redhat xorg release: + Patch by John Dennis which fixes DRI locking bug on + ia64 architecture. + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=104338 + http://bugs.xfree86.org/show_bug.cgi?id=778 + +commit eb3d0635d4830969d10d5fe8aef17cebb2f3fd15 +Author: Dave Airlie +Date: Sat Jul 31 07:26:52 2004 +0000 + + fixes for using userspace pointers found by sparse utility + From: Dave Airlie + +commit dc4508c33845602e4c94c3e125536d01fe9110b1 +Author: Dave Airlie +Date: Sat Jul 31 07:25:58 2004 +0000 + + athe patch below optimises the drm code to not do put_user() on memory the + kernel allocated and then mmap-installed to userspace, but instead + makes it use the kernel virtual address directly instead. + From: Arjan van de Ven + +commit 1cec18a5cd3bcd37aab71c255d63fd394143bc5e +Author: Dave Airlie +Date: Thu Jul 29 13:00:48 2004 +0000 + + add read/write 16 + +commit b1cf4ca7e540bcf28beaf3f5a70915a810a75b1b +Author: Dave Airlie +Date: Thu Jul 29 12:49:54 2004 +0000 + + change to agp not pci ... still not working + +commit 0b02bf9d45b70af3b7e236526143c7b78a6fca8b +Author: Dave Airlie +Date: Thu Jul 29 11:09:22 2004 +0000 + + initial port of i915 to BSD, not finished doesn't work.. no idea why... + +commit 862fcee057a4602a0a9fdc54266f63fe33b0fd8b +Author: Dave Airlie +Date: Sun Jul 25 08:57:15 2004 +0000 + + check for __user if not there define it + +commit 02df04d71d373f1f779ebfd5d383a704ebb397ee +Author: Dave Airlie +Date: Sun Jul 25 08:47:38 2004 +0000 + + sync up with current 2.6 kernel bk tree - mostly __user annotations + +commit 1f132b7849c453d3aebd227866f743cbcf7f3881 +Author: Dave Airlie +Date: Sun Jul 25 05:52:22 2004 +0000 + + whitespace merge with kernel + +commit c54ba5691a573ba273498217323f19c35b1637d8 +Author: Dave Airlie +Date: Sun Jul 25 05:41:44 2004 +0000 + + if the driver has already register don't do another intermodule register + +commit 6ba31fb4813116e94f8fc94574ffd81743cf8832 +Author: Dave Airlie +Date: Sun Jul 25 05:36:45 2004 +0000 + + Patch from Tom Arbuckle for missing bus_address + +commit 1e5354e867d1dde8c86273e7434f49b57779ef36 +Author: Keith Whitwell +Date: Fri Jul 23 16:12:27 2004 +0000 + + Correct a couple of packet length calculations. + +commit 6ed7e36f4c6933cc29b0f5c8cb810490dd93a8fc +Author: Dave Airlie +Date: Thu Jul 22 12:07:13 2004 +0000 + + another logic error returns 0 or greater for success + +commit ea2155a2e1c31f634d80701a00fb19af6d3402c3 +Author: Dave Airlie +Date: Wed Jul 21 09:36:16 2004 +0000 + + ATI Rage 128 and Radeon DRM unconditionally depend on PCI + Signed-off-by: Geert Uytterhoeven + +commit c9911beb0957c7ccf93c73f77f349f3f8788b526 +Author: Dave Airlie +Date: Wed Jul 21 09:30:43 2004 +0000 + + add some more debugging fix ++ and -- + +commit a776c5ec0464e264bba3f3a4794a067d3c667097 +Author: Dave Airlie +Date: Tue Jul 20 12:43:12 2004 +0000 + + first set of __user annotations from kernel (Al Viro) + +commit b35cba47d5e927c3ff1944fadef1816b9b1e1dd7 +Author: Dave Airlie +Date: Tue Jul 20 11:48:25 2004 +0000 + + Add NULLs instead of 0 for i915 + +commit 9266bf53019b29a92c7e6c65e7b89bdae365b70d +Author: Dave Airlie +Date: Tue Jul 20 11:35:29 2004 +0000 + + Kconfig update add i915 bring over some stuff from kernel + +commit b20b00d4bc49534ba6e3695fb05cfc240bd3f0af +Author: Dave Airlie +Date: Tue Jul 20 11:26:13 2004 +0000 + + add x86_64 architecture defines from kernel (leave AMD64 defines in for + backwards compat) + +commit fdb6ae31cb721a928d058d7419444f55eb60a542 +Author: Dave Airlie +Date: Tue Jul 20 11:22:26 2004 +0000 + + fix some more NULLs from kernel + +commit 7ee263b94f77cadab659207344c82d5528d498cb +Author: Dave Airlie +Date: Tue Jul 20 10:59:02 2004 +0000 + + attempt to clean up stub_register, register_chrdev isn't good enough to + make the decision for multiple cards with one drm .. + +commit 8efddd01e8a2254b4ed00dff0d55827b6f2b35ce +Author: Dave Airlie +Date: Thu Jul 15 13:03:55 2004 +0000 + + sparse cleanups from kernel: Al Viro + +commit bb5112b616080033ab9f09092098527f2aa09b70 +Author: Dave Airlie +Date: Wed Jul 14 12:34:55 2004 +0000 + + Fix reference counting for stub for new Linux PCI probe + +commit e86fc9f47f05f47375d5a306fe979012e3b7e8e4 +Author: Dave Airlie +Date: Wed Jul 14 12:14:37 2004 +0000 + + allow O= usage for Linux 2.6 kernel building in another directory + +commit 6c16cbd40469d2690b293ef854de7a1f7246b998 +Author: Dave Airlie +Date: Sun Jul 11 10:17:34 2004 +0000 + + split out backwards compat into a separate file makes it easier for merging + to 2.6 + +commit f9e2fe84700c155a744d7ae3db4ebe12d5db9b10 +Author: Dave Airlie +Date: Sun Jul 11 09:58:49 2004 +0000 + + fix issue in 2.4 kernels with returning NULL from this function + +commit 6e4bf5ead5a342426020a1d48d93b8deae2a9e73 +Author: Jon Smirl +Date: Thu Jul 8 20:18:10 2004 +0000 + + Add two items to Makefile clean XFree86 bug: Reported by: Submitted by: + Reviewed by: Obtained from: + +commit 8696e71db2d79eb318c00abde625d7b61d6800a1 +Author: Jon Smirl +Date: Wed Jul 7 04:36:36 2004 +0000 + + Make drm/libdrm/xf86drm.c match + xc/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c so + that it matches the prototypes in xf86drm.h XFree86 bug: Reported by: + Submitted by: Reviewed by: Obtained from: + +commit deed1eca099eab19f48e40a5b0e7c15c2304b3d4 +Author: Jon Smirl +Date: Wed Jul 7 04:22:17 2004 +0000 + + Add xf86drm.h back to drm/libdrm until it's true home can be found. + mesa-solo needs this file to build. XFree86 bug: Reported by: Submitted + by: Reviewed by: Obtained from: + +commit eaccc05b267670a0934675064e37bbd590e1028e +Author: Eric Anholt +Date: Tue Jul 6 00:25:19 2004 +0000 + + Fix module loading on alpha by not referencing MTRR symbols on + !__REALLY_HAVE_MTRR. + +commit 694291fbd39e0e6ad9a9698794485003648c7fd0 +Author: Eric Anholt +Date: Tue Jul 6 00:23:42 2004 +0000 + + MFC as of 20040705: dev_t -> struct cdev * change. + +commit f3527e9256ab6494e3bffebfa29d870891266c4c +Author: Dave Airlie +Date: Mon Jul 5 12:10:25 2004 +0000 + + align with kernel + +commit 3c9fb37e655f5556c9c002535f1a85c4f248fb2c +Author: Dave Airlie +Date: Mon Jul 5 11:56:51 2004 +0000 + + fixes from kernel for 0 vs NULL - mika + +commit 4cfd0d5ceed49f834a09b22756c100b77bcfa327 +Author: Dave Airlie +Date: Mon Jul 5 11:44:30 2004 +0000 + + whitespace align with kernel + +commit 87832bc81a56ad8abb135628ac906ba9aa4a155b +Author: Dave Airlie +Date: Mon Jun 21 11:46:52 2004 +0000 + + fix bug with pci_disable_device in the wrong place (Paul Mackerras) remove + hack code from me.. + +commit 1ee210e3b5b2d0b9101e371ec1401cdc34b2f25d +Author: Dave Airlie +Date: Sat Jun 12 02:30:52 2004 +0000 + + dirty hack to make mach64 work, (don't worry I'll get around to fixing it + asap..) + +commit 373d67702c1fd6c6258ce03d3fb4fc167ff947cb +Author: Keith Whitwell +Date: Thu Jun 10 12:48:35 2004 +0000 + + A few changes for recent redhat. + +commit 0faa00ae648647b93202b1726864787e383a2ede +Author: Keith Whitwell +Date: Thu Jun 10 12:47:50 2004 +0000 + + i915 drm module + +commit 291ffeae9a2b95cf35835ddd0f25e434e4c26f44 +Author: Keith Whitwell +Date: Thu Jun 10 12:45:38 2004 +0000 + + i915.o drm driver + +commit 78d0fd6526bb725151d8dce86006af7616ee4758 +Author: Dave Airlie +Date: Thu Jun 10 09:43:53 2004 +0000 + + gamma_dma_priority and gamma_dma_send_buffers both deref d->send_indices + and/or d->send_sizes. When these functions are called from gamma_dma, + these pointers are user pointers and are thus not safe to deref. This + patch copies over the pointers inside gamma_dma_priority and + gamma_dma_send_buffers. + Submitted-by: Robert T. Johnson Signed-off-by: + Dave Airlie + +commit cfa5bf31290edad723e1ce388d3840f495f3ccff +Author: Dave Airlie +Date: Mon Jun 7 01:42:35 2004 +0000 + + The dev->devname being passed to request_irq in drm_irq.h is null. With the + old DRM interface, the devname was set in DRM(setunique), but with the + current DRM interface >=1.1 the devname is not being set in + DRM(set_busid). + From: Alan Swanson Approved-by: Dave Airlie + +commit 52e3a8a5d9ac8e91eb66872a008d1f7d5d67a326 +Author: Ian Romanick +Date: Wed Jun 2 17:41:52 2004 +0000 + + Added some comments copied from xf86drm.h. + +commit f994b1f31bb64f0fb56a778c350b6ff05c93501f +Author: Ian Romanick +Date: Tue Jun 1 16:17:32 2004 +0000 + + Replace size_t with an ugly, ugly hack. This was done so that code in the + core X-server would compile. Hopefully, this will soon be replaced with + explicitly sized types (i.e., uint32_t) and everyone will be happy. + +commit 024fd4b15022236fe3f79eba23fec5d6177d0cb4 +Author: Dave Airlie +Date: Sun May 30 23:38:08 2004 +0000 + + 2.4 compat + +commit 412f9909c6127db1ab03716f74cc51c4ac3a603e +Author: Dave Airlie +Date: Sun May 30 23:34:23 2004 +0000 + + fixes from kernel: Make users of page->count use the provided macros + +commit 43c244ebbad842d0ebf3756376bfc6ab1fd11b9f +Author: Roland Scheidegger +Date: Tue May 18 23:30:46 2004 +0000 + + fix whitespace issue in previous patch + +commit aa142ff1b5ac1488221830bb9b512c2d22f6675f +Author: Roland Scheidegger +Date: Tue May 18 23:03:22 2004 +0000 + + add R200_EMIT_RB3D_BLENDCOLOR state packet to support GL_EXT_blend_color, + GL_EXT_blend_func_separate and GL_EXT_blend_equation_separate on r200 + +commit 8350382cb1a5aba150c411be3b662dfe444cb84a +Author: Dave Airlie +Date: Tue May 18 09:46:31 2004 +0000 + + another 2.4 fix + +commit df6c37fc88c659691230d1f589aff93e69e6c63e +Author: Dave Airlie +Date: Tue May 18 09:42:22 2004 +0000 + + 2.4 compat fix + +commit 13894755a74454187f2c84f553b5b9d4a83fb7e3 +Author: Erdi Chen +Date: Fri May 14 23:54:31 2004 +0000 + + Add PCI id entry for VIA CN400 (UnichromePro) chip. XFree86 bug: Reported + by: Submitted by: Reviewed by: Obtained from: + +commit 853adb8be338de113301d7db3c10058476f3bff7 +Author: Eric Anholt +Date: Tue May 11 04:43:43 2004 +0000 + + Merge from FreeBSD-current. Mostly 64-bit cleanliness fixes, but a few + driver interface changes from -current. + +commit 485b259b4492ed6b7abdf063d1d5cefe01d3a3b0 +Author: Eric Anholt +Date: Tue May 11 04:23:02 2004 +0000 + + Add missing DRM_ERR()s. + +commit a1160ba2793b6c17a8aeb31b0d4cc17f3439cf9a +Author: Dave Airlie +Date: Mon May 10 11:16:26 2004 +0000 + + do some real testing and fix the DRM initialising and unloading + +commit c47b611b08327da4a5249d222079be07c26fb2ff +Author: Eric Anholt +Date: Sun May 9 22:36:19 2004 +0000 + + Add mach64 DRM module for BSD (untested, but compiles). + +commit dfdf8e14d3f8e4ceb0cad396efc8b4ecb587d5f6 +Author: Eric Anholt +Date: Sun May 9 22:29:55 2004 +0000 + + Add .cvsignore files. + +commit 51ed2f593703164b7bb7f9d0522f273f3f628c03 +Author: Eric Anholt +Date: Sun May 9 22:16:11 2004 +0000 + + Warning fixes. + +commit d477cc007cacbf95d7db295f579e23fafb423f02 +Author: Eric Anholt +Date: Sun May 9 22:14:07 2004 +0000 + + - Link in shared files as necessary and clean them up. + - Generate drm_pciids.h automatically. + +commit c093a03d47a50c5f178caff6dd20f7c03cddeb40 +Author: Eric Anholt +Date: Sun May 9 22:07:58 2004 +0000 + + Catch up with sis's DRM tag change. + +commit 7bfce0c357360ef3035b6782d48d93a2ad40bd22 +Author: Eric Anholt +Date: Sun May 9 21:59:36 2004 +0000 + + Remove after repocopy to Makefile, now that we don't have to worry about + conflicting with imake's output. + +commit b9dcb5b18713e6fe12130f780535d1b56b8b89cf +Author: Eric Anholt +Date: Sun May 9 21:57:58 2004 +0000 + + No /bin/bash on BSD. + +commit 29f2b1c1cfc13ffc3176d049eb7f235604c70cb1 +Author: Eric Anholt +Date: Sun May 9 21:56:19 2004 +0000 + + drm_hw_lock_t is now defined in drm.h, remove from here. + +commit a2f7a9fa5f7a5dacbc9e04d132f26dd70201fb45 +Author: Dave Airlie +Date: Sun May 9 06:45:17 2004 +0000 + + Commit sysfs and drm PCI changes for 2.6 kernel + +commit d7e777b696e55def668834d4fcfff94b1a89cc54 +Author: Dave Airlie +Date: Sun May 9 06:36:55 2004 +0000 + + make drm pciids + +commit 0b481856dd30fce905759e470b0abff4e186782e +Author: Dave Airlie +Date: Mon May 3 00:06:04 2004 +0000 + + use drm.. not dri for class... + +commit a9d2438999b79419772a00d0deb1caab30334765 +Author: Dave Airlie +Date: Sun May 2 13:03:51 2004 +0000 + + fix 2.4 build + +commit a3612f450be04ca73e5acb3afc4eff65194612df +Author: Dave Airlie +Date: Sun May 2 12:27:17 2004 +0000 + + better device class support from Jon Smirls patches.. + +commit 06332524b5c023db2a6952c25c5bc8a905b093cb +Author: Dave Airlie +Date: Mon Apr 26 06:43:53 2004 +0000 + + add another tdfx + +commit d40443534c3cab2ea1435556c85ef38503eb63ac +Author: Dave Airlie +Date: Thu Apr 22 12:41:43 2004 +0000 + + Add __user annotations from kernel + +commit 87812e82f45d5ca81fd0603d6bd54854831c9174 +Author: Dave Airlie +Date: Thu Apr 22 11:31:55 2004 +0000 + + add sparc ffb files from kernel just to keep things in sync + +commit 0edc2abf8414f6fa414aa4071f4fa9ccbee186a7 +Author: Dave Airlie +Date: Wed Apr 21 23:45:18 2004 +0000 + + add new files to generate pci ids + +commit 2d9bbba0e10642a149297498c4e03fc43bac1280 +Author: Dave Airlie +Date: Wed Apr 21 12:18:42 2004 +0000 + + bug from Linux kernel list caught by checker + +commit 93bd67ef62e95a32f8b7e2fd7d9dadee52664160 +Author: Dave Airlie +Date: Wed Apr 21 12:13:31 2004 +0000 + + centralise pci ids into one place and use scripts to generate files for + kernel + +commit 0f32a8852712e405f64c5917bcebefc441aa1ba3 +Author: Michel Daenzer +Date: Sun Apr 18 22:59:01 2004 +0000 + + Move Makefile.linux to Makefile. + Get rid of Makefile juggling hacks which are no longer necessary. + +commit 6f6d2a553a776068a53332e409fa19e83f6be964 +Author: Thomas Hellstrom +Date: Mon Apr 12 10:18:18 2004 +0000 + + 1. Added a PCI ID. + 2. Big change to the XvMC part of the SAREA. OpenGL clients will not suffer + from this, and via XvMC is still alpha. Needed to make future additions + to XvMC (More decoders and overlays) possible. + 3. Bumped version number to 1.3.0. + +commit 6fa5c5d958688fba801bc08e75345edd51bf27c7 +Author: Dave Airlie +Date: Mon Apr 12 05:44:16 2004 +0000 + + more files for mach64 + +commit 873e1c4d38c78e8b4a5df42d983f285cfb3ae4cc +Author: Dave Airlie +Date: Mon Apr 12 05:27:40 2004 +0000 + + Add mach64 to the trunk + +commit 7e39628577d7478644c51bba2ef1d5e2e029bbbb +Author: Michel Daenzer +Date: Sat Apr 10 16:20:00 2004 +0000 + + Have CVS ignore some files produced by the build. + +commit 3306abbde7565596528e863d2cf906a4a49f3271 +Author: Dave Airlie +Date: Sat Apr 10 13:52:43 2004 +0000 + + white space changes to align with kernel + +commit 7e0f883501ad11d16762763a555a9502f76ffba3 +Author: Dave Airlie +Date: Sat Apr 10 13:25:30 2004 +0000 + + include highmem.h + +commit 2b0292c73995a4892812fe632abdaf46c49279e0 +Author: Dave Airlie +Date: Sat Apr 10 12:58:18 2004 +0000 + + update gamma_dma with patch from davej in 2.6 + +commit e375a3dc10eb8945e05577df8b40072dfffaba81 +Author: Dave Airlie +Date: Sat Apr 10 08:15:48 2004 +0000 + + patch from Andrew Morton tree from Arjan van de Ven fixes some oopses seen + with 4G/4G split + +commit 23ec8875fce631e4554a72161937dca735c2d675 +Author: Dave Airlie +Date: Sat Apr 10 07:41:19 2004 +0000 + + align code with Linux kernel. + +commit 6aad146173e2442eb0dbb10d02ddcd8a62808937 +Author: Dave Airlie +Date: Sat Apr 10 07:39:00 2004 +0000 + + remove unused code + +commit fd473357980b9ba40bef089aadb78136faaa2008 +Author: Dave Airlie +Date: Sat Apr 10 07:36:30 2004 +0000 + + update from linux kernel for ia64 + +commit f673c9280c2691063534062fb9fdea74ad85b18a +Author: Alan Hourihane +Date: Fri Apr 9 00:21:43 2004 +0000 + + remove Imakefile + +commit 596cf634ae9be821c90688f982ae84b6145696c9 +Author: Alan Hourihane +Date: Thu Apr 8 23:22:05 2004 +0000 + + fix build problem + +commit ce601f364723ad361706be59fb7e09d9f6ca444a +Author: Alan Hourihane +Date: Thu Apr 8 23:19:15 2004 +0000 + + disable PCI DMA ioctls as they are not used currently until SAVAGE_CMD_DMA + is made to work. + +commit c47597b484866deb7698eb5575348ecd83088314 +Author: Dave Airlie +Date: Thu Apr 8 14:15:36 2004 +0000 + + big whitespace .. this aligns all the whitespace in this file with the bk + checkout linux tree + +commit 13724f032e127fbaf6d47bb2b6ba8933df23ffe8 +Author: Dave Airlie +Date: Thu Apr 8 13:11:04 2004 +0000 + + 2.6 sysfs patches + stubs in drmP.h for 2.4 compatibility + +commit c3e2685e822f70976fa57db2955cdd98dc5730f4 +Author: Dave Airlie +Date: Thu Apr 8 12:25:31 2004 +0000 + + long dev_t patches from 2.6 tree + +commit 9cff4b45e77c9259a4161ddb55564336f8b99361 +Author: Dave Airlie +Date: Thu Apr 8 12:22:22 2004 +0000 + + 2.6 patches for larger dev_t + +commit 3e0f3c1fbb9b10bcc8e037f79f25d5e491dcfd91 +Author: Dave Airlie +Date: Thu Apr 8 12:20:39 2004 +0000 + + more 2.4 compat fns + +commit 1bc7576474a85b649e2f3291d72890363e6d1483 +Author: Dave Airlie +Date: Thu Apr 8 12:09:10 2004 +0000 + + patch from Linux kernel 2.6.5 + +commit bc1428035ceb5300df429d09a64a20a2a7e903b2 +Author: Dave Airlie +Date: Thu Apr 8 12:05:25 2004 +0000 + + fixes from Linux kernel + +commit ee2889ec0d2f8b6138f916df3c3d8b7e208cc1f7 +Author: Dave Airlie +Date: Thu Apr 8 11:26:52 2004 +0000 + + patch from lk + +commit 994fa063cd3ad2f55ea26beef7e31403c68ae78a +Author: Thomas Hellstrom +Date: Wed Mar 31 22:05:57 2004 +0000 + + VIA module fixes: + 1. Fixed up PCI-id's. + 2. Fixed 2.6 warning in kernel Makefile. + +commit 20163c2b10f5a1d9c8647f5592ac11e4e9867dfc +Author: Dave Airlie +Date: Fri Mar 26 15:52:11 2004 +0000 + + copy correct Makefile + +commit 9b7bf9127e94e0c57a760aacef15db0ae3d6f1b3 +Author: Thomas Hellstrom +Date: Fri Mar 26 13:42:48 2004 +0000 + + Added via driver to drm/linux/Config.in Reported by: Terry Barnaby + +commit 1da595d797f797ff071d98ebf6a4eaad38bb1347 +Author: Thomas Hellstrom +Date: Wed Mar 24 23:22:22 2004 +0000 + + Exported symbols cause compilation failure of via_mm.c on 2.4 kernels. + Added via_mm.o to export-objs: + Reported by: HMX, Via Arena Forum + +commit b15deb239213d28f28a50abe44204836f64d7aed +Author: Thomas Hellstrom +Date: Wed Mar 24 10:07:37 2004 +0000 + + Modified linux/Kconfig to include the via drm driver. + +commit 89d67d90873d1baff48fbd671d5b3a4cb354ada5 +Author: Thomas Hellstrom +Date: Tue Mar 23 21:14:17 2004 +0000 + + Merged via-1-2-0: Altered Makefiles in drm/linux + +commit 6cd8831f7accbcc3efb019d7d288c5b6cc28a230 +Author: Thomas Hellstrom +Date: Tue Mar 23 21:08:48 2004 +0000 + + Merged via-1-2-0 + +commit 681da75af9837fd433d4773c86df52de1c8dba60 +Author: Dave Airlie +Date: Tue Mar 23 11:17:03 2004 +0000 + + make sure in DRM toplevel + +commit dfc71cbd42fe4b4b445bd16087c05e525c38f509 +Author: Dave Airlie +Date: Tue Mar 23 11:06:47 2004 +0000 + + initial shell script to create linux kernel drm from the DRI one + +commit ab66cbc1c5403129b2510208e02146bb062d7b76 +Author: Jon Smirl +Date: Wed Mar 17 01:03:26 2004 +0000 + + Adjust shared path in makefile XFree86 bug: Reported by: Submitted by: + Reviewed by: Obtained from: + +commit 537ac1a39e16c2fe1d1ac513666a4f95798b3c08 +Author: Jon Smirl +Date: Tue Mar 16 00:59:24 2004 +0000 + + Makefile the makefile really clean everything XFree86 bug: Reported by: + Submitted by: Reviewed by: Obtained from: + +commit 0b6f155dbdfe661142307a72aa07a52bde6ec08f +Author: Jon Smirl +Date: Tue Mar 16 00:52:24 2004 +0000 + + Add a missing ifdef CTX to get rid of the waring in the gamma driver build. + XFree86 bug: Reported by: Submitted by: Reviewed by: Obtained from: + +commit 24115068e465cf0d788d870a3c1c24bb68a9cb14 +Author: Jon Smirl +Date: Fri Mar 12 21:22:52 2004 +0000 + + Fixes need to clean up the mess I made with the mesa merge. This code + allows the mesa drivers to use a single definition of the DRM + sarea/IOCTLS located in the drm driver directory. Adjustments were made + to the 2D drivers to not include these changes. Changes to the mesa + copy of DRM were copied to the DRI copy. XFree86 bug: Reported by: + Submitted by: Reviewed by: Obtained from: + +commit f47ed991432672b7353e73b9d3194f255b957bee +Author: Michel Daenzer +Date: Sat Feb 28 14:29:44 2004 +0000 + + Remove extraneous code accidentally added with revision 1.86 + +commit b61f07def349644ec8077cb12b303d444e223c1b +Author: Michel Daenzer +Date: Sat Feb 28 11:52:19 2004 +0000 + + More differentiated error codes for DRM(agp_acquire) + Obtained from: Linux kernel + +commit ce21dca4aaecac73490f26491b8f06a74d0ee0f5 +Author: Felix Kuehling +Date: Tue Feb 24 14:24:07 2004 +0000 + + Use DO_MUNMAP_4_ARGS macro defined in Makefile.linux (Steve Holland). + Silence a warning about a format-argument mismatch in printk. + +commit 3dea36d8437726fd57cc006e351ed8982b091d76 +Author: Felix Kuehling +Date: Sun Feb 22 16:20:16 2004 +0000 + + Merged the Savage DRM driver from the savage-2-0-0-branch into the trunk. + +commit d0031f22cfecc2cce512aae66bedc9fe337f5d97 +Author: Felix Kuehling +Date: Sat Feb 21 19:54:51 2004 +0000 + + Conditionally add definition of list_for_each_entry_safe for kernel + versions that don't have it. + +commit 82157579b586c8f1e147250e09f0837214019680 +Author: Keith Whitwell +Date: Fri Feb 20 22:55:12 2004 +0000 + + drm_ctx_dtor.patch Submitted by: Erdi Chen + +commit 213247a4416b959738a658f2217d4d01ae9c1e67 +Author: Michel Daenzer +Date: Wed Feb 18 20:56:58 2004 +0000 + + Fix sisfb header location for 2.6 kernels + Submitted by: Andrew Morton + +commit 2b9c12ef83b8de5acba782918212f7fa250c9e45 +Author: Michel Daenzer +Date: Sun Jan 11 00:14:28 2004 +0000 + + Adapt to nopage() prototype change in Linux 2.6.1. + Reviewed by: Arjan van de Ven , additional feedback from + William Lee Irwin III and Linus Torvalds. + +commit 0dea4de28873252221d40e3597997f6d0141171d +Author: Michel Daenzer +Date: Sat Jan 10 20:59:16 2004 +0000 + + Make sure that all state packets are handled in + radeon_check_and_fixup_packets() + Fix state packet IDs of R200 cubic offsets + +commit 7b62ed9aed8794e9efe0059dbf37bc41dc691323 +Author: Michel Daenzer +Date: Sat Jan 10 12:28:06 2004 +0000 + + R200_PP_CUBIC_OFFSET_F1_[0-6] state packets only contain 5 offsets, not 6 + (thanks to Andreas Stenglein for spotting this) + +commit fb7b802ddaa1440fdba829eff5373c7d9425f582 +Author: Eric Anholt +Date: Tue Jan 6 04:54:25 2004 +0000 + + Fix some misuse of NULL where 0 is intended. + Obtained from: FreeBSD CVS + +commit 9fb6986e83a84f6b958e8aba2c20b5988676bd55 +Author: Eric Anholt +Date: Tue Dec 16 08:57:08 2003 +0000 + + Don't ioremap the framebuffer area. The ioremapped area wasn't used by + anything, and took up valuable KVA. While I'm in the area, clean up BSD + MTRR stuff some more. + Suggested by: jonsmirl + +commit 5285b029876a4d3122ae72cc3d81ca8d184ed9ca +Author: Eric Anholt +Date: Tue Dec 16 07:39:43 2003 +0000 + + Add a collection of Radeon and R128 PCI IDs, including the IGP chipsets. + Submitted by: Donnie Berkholz (mostly) + +commit 64006ef86b329183599b06da7705bb0b294a1c1a +Author: Keith Whitwell +Date: Mon Dec 8 16:33:08 2003 +0000 + + Add i865 pci id + +commit 6e56c39371a551af1e05e53231162e0fc42c6ce0 +Author: Eric Anholt +Date: Wed Nov 12 20:30:51 2003 +0000 + + Fix a locking nit, and add asserts in some things that should be called + with locks held. + +commit 1f7598245af7e73b34130a44fbaac230e29d7aad +Author: Eric Anholt +Date: Thu Nov 6 04:48:06 2003 +0000 + + Return EBUSY when attempting to addmap a DRM_SHM area with a lock in it if + dev->lock.hw_lock is already set. This fixes the case of two X Servers + running on the same head on different VTs with interface 1.1, by making + the 2nd head fail to inizialize like before. + +commit 2c1172a31794e20f7ba1a2ab234d4dab2f84005b +Author: Eric Anholt +Date: Thu Nov 6 04:35:08 2003 +0000 + + Remove unused variable. + +commit a41a479f74f3fadf1539d1adaefb933ba9a6112c +Author: Alan Hourihane +Date: Wed Nov 5 20:47:28 2003 +0000 + + Changes to DRM(irq_install)...... wrap dev->dma usage with __HAVE_DMA in + irq handler, fixes kernel ooops. comment out some setting of flags that + are done in DRM(setup) (not sure why both of the above is done in the + irq handler) + +commit 66c9e3053f857df340a982edaa8ea57b229efeed +Author: Eric Anholt +Date: Wed Nov 5 08:13:52 2003 +0000 + + - Tie the DRM to a specific device: setunique no longer succeeds when given + a busid that doesn't correspond to the device the DRM is attached to. + This is a breaking of backwards-compatibility only for the + multiple-DRI-head case with X Servers that don't use interface 1.1. + - Move irq_busid to drm_irq.h and make it only return the IRQ for the + current device. Retains compatibility with previous X Servers, cleans + up unnecessary code. This means no irq_busid on !__HAVE_IRQ, but can be + changed if necessary. + - Bump interface version to 1.2. This version when set signifies that the + control ioctl should ignore the irq number passed in and enable the + interrupt handler for the attached device. Otherwise it errors out when + the passed-in irq is not equal to the device's. + - Store the highest version the interface has been set to in the device. + - Fix a recursion on DRM_LOCK in irq_uninstall on FreeBSD. This leaves + irq_uninstall being done without the lock in some cases, but it was + racey anyways. + +commit 19ee64add26773f4436440f8fa405a1011eea4c4 +Author: Eric Anholt +Date: Wed Nov 5 02:42:56 2003 +0000 + + Use int64_t instead of s64 -- fixes FreeBSD compile, works on linux. + +commit 8feb046d8c3c9d531e25c3f854b94593f0a1964b +Author: Eric Anholt +Date: Wed Nov 5 02:41:50 2003 +0000 + + Args for the BSD DRM_PUT_USER_UNCHECKED were swapped. + +commit e8f5b01a4087fac1e44f9f34894dc20a1cbf1e49 +Author: Eric Anholt +Date: Wed Nov 5 02:08:31 2003 +0000 + + __linux__ is spelled with a lowercase 'l' + +commit 5864101ab4400aad6ca936bc94000a4607851bb3 +Author: Eric Anholt +Date: Wed Nov 5 01:43:47 2003 +0000 + + Repo-copy linux/drm/kernel/drm.h to shared/drm/kernel/drm.h and use it on + both Linux and *BSD. + +commit e5cad7fced023e9ad6395147d6fff7ba28f11d17 +Author: Eric Anholt +Date: Wed Nov 5 00:49:35 2003 +0000 + + Remove buf_alloc which is unused since the locking commit. + +commit 27f9c5f01659bb643db00ffb17c140ae3bd99df8 +Author: Michel Daenzer +Date: Tue Nov 4 00:59:52 2003 +0000 + + build fix + +commit 2655ccddf4c026f37dcc76754cdfde6f0a4a4c86 +Author: Michel Daenzer +Date: Tue Nov 4 00:46:05 2003 +0000 + + Memory layout transition: + the 2D driver initializes MC_FB_LOCATION and related registers sanely + the DRM deduces the layout from these registers + clients use the new SETPARAM ioctl to tell the DRM where they think the + framebuffer is located in the card's address space + the DRM uses all this information to check client state and fix it up if + necessary + This is a prerequisite for things like direct rendering with IGP chips and + video capturing. + +commit 84dfe702e27e0ef22801f8fe366120bea90adf4f +Author: Eric Anholt +Date: Mon Nov 3 05:11:04 2003 +0000 + + Add i852/i855 PCI ID. Also fix whitespace in the other ID definitions. + +commit 3f7279cb8ec1d4e65028df955ae17b8081940b4f +Author: Eric Anholt +Date: Mon Oct 27 22:05:38 2003 +0000 + + Add a DRM_PUT_USER_UNCHECKED, which will be used by an upcoming radeon + change. + +commit 2423fedcc8d57d02ccf7aa1209a4b31f248792a7 +Author: Eric Anholt +Date: Fri Oct 24 21:49:28 2003 +0000 + + Don't try to use dev->dma_lock unless dma is initialized (dev->dma != NULL) + in bufs_info sysctl handler. dev->dma and dev->dma_lock existence are + protected by DRM_LOCK(). Fixes panic on sysctl hw.dri when the device + is uninitialied (when you aren't in X). + +commit e4a2a9c04024972f21cdf0620f6faa6de157686d +Author: Jon Smirl +Date: Fri Oct 24 17:40:54 2003 +0000 + + Switch pci enumeration call to work on both 2.4 and 2.6 pci_for_each_dev is + not supported on 2.6 + +commit 451a1d3f69a8d19c24382ef2b483517e9ef2c9f6 +Author: Eric Anholt +Date: Fri Oct 24 00:59:31 2003 +0000 + + Move the REALLY_HAVE_AGP endif above the mtrr functions. Broke tdfx module. + +commit b79d1b341f876c982c1cde02e8aff6c675688b49 +Author: Eric Anholt +Date: Thu Oct 23 05:56:13 2003 +0000 + + Move to "old-style" probing as documented in linux/Documentation/pci.txt. + This should resolve the probe problems with radeon framebuffer due to + pci_driver attachment being exclusive. + +commit 69d038eb4989772b9b21736c821dd5abe8232260 +Author: Eric Anholt +Date: Thu Oct 23 05:52:19 2003 +0000 + + Missed the sis.h header in Makefile.linux in the move to shared/. + +commit 92429f6ebea629e8884eb53cb0c64aad555a4d76 +Author: Eric Anholt +Date: Thu Oct 23 05:51:35 2003 +0000 + + The SiS300 pci id also covers the 305, so make the name reflect that. + +commit 06cb132e86dc4a04044c3c76725ba3037008ab34 +Author: Eric Anholt +Date: Thu Oct 23 02:23:31 2003 +0000 + + - Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows the + server or client to notify the DRM that it expects a certain version of + the device dependent or device independent interface. If the major + doesn't match or minor is too large, EINVAL is returned. A major of -1 + means that the requestor doesn't care about that portion of the + interface. The ioctl returns the actual versions in the same struct. + - Introduce DRM DI interface version 1.1. If the server requests version + 1.1, then the DRM sets the unique itself according to the busid of the + device it probed, which may then be accessed as normal using getunique. + - Request version 1.1 in libdrm's drmOpenByBusID, allowing the X Server to + request based on a BusID. Introduce a wrapper for DRM_IOCTL_SET_VERSION + and bump libdrm minor version. + - Pass the busid in DRIScreenInit if libdrm can handle both a busid and + name. This allows drmOpenByBusID to be used to find the DRM instead of + just the driver name, which allows us in the future to tie a DRM more + strongly to the device it probed to. Introduce a function + DRICreatePCIBusID which creates a busid in the form pci:oooo:bb:dd.f + similar to linux's pci_name() function. This matches the format used by + the DRM in version 1.1. libdrm knows how to match both this format and + the old PCI:b:d:f format. + - Use the new DRICreatePCIBusID function in the *_dri.c to request the new, + more exact busid format. + +commit 86e6325e5ab848c15c422f20133445fe6c1caa09 +Author: Eric Anholt +Date: Wed Oct 22 22:08:53 2003 +0000 + + - Add DRM_GET_PRIV_WITH_RETURN macro. This can be used in shared code to + get the drm_file_t * based on the filp passed in ioctl handlers. + - Use this macro on BSD for simplification and improve its error reporting. + Make failure to find the drm_file_t * print as an error, not debug. + This failure may be part of the problem with KDE. + - Make debug and error print macros include the pid on BSD. + +commit 4e6ddcbb698c029b407d5dc43348c6e422a36705 +Author: Eric Anholt +Date: Wed Oct 22 21:50:09 2003 +0000 + + Fix warning about static DRM(bufs_info) defined but not used in the + !__HAVE_DMA case. + +commit ea7b4fdc225ebbbfd77f875fd3bfcfbdcfa9a1f7 +Author: Eric Anholt +Date: Mon Oct 20 05:09:21 2003 +0000 + + Fix the possibility of sleeping with locks held in sysctls by copying the + data into temporary variables with the lock held then outputting to + sysctls with the lock released. Rearranged a little extra code to aid + this. Note that drm_memory_debug.h hasn't had this fix applied, but I + consider that code to be just about dead anyway. + +commit 6b0424fdcdec9d12943718e4542659c8bca019da +Author: Eric Anholt +Date: Mon Oct 20 00:55:56 2003 +0000 + + Clean up BSD MTRR handling. The NetBSD code is untested, but it's my best + shot. + +commit 0cf1887139eb1ce18d09f7be0567aa93d802040d +Author: Eric Anholt +Date: Sun Oct 19 23:35:58 2003 +0000 + + - SMPng lock the DRM. This is only partial -- there are a few code paths + used by root (the X Server) which are not locked. However, it should + deal with lost-IRQ issues on -current which I think people have been + experiencing but I am unable to reproduce (though I understand why they + would occur, because of a bug of mine). Note that most of the locking + (DRM_LOCK()/UNLOCK()) is all covered by Giant still, so it doesn't + matter yet. + - Remove locking on FreeBSD-stable and NetBSD. These are covered by the + fact that there is no reentrancy of the kernel except by interrupts, + which are locked using spldrm()/splx() instead. + +commit 59fbe01fea8f77fc3810643c14a1738d197d4291 +Author: Eric Anholt +Date: Sun Oct 19 22:29:08 2003 +0000 + + Clean up extra zeroing of dev->dma, and use calloc to take advantage of + M_ZERO. + +commit 63ce8af5550950b19db432230910e7a2424fa16f +Author: Eric Anholt +Date: Sun Oct 19 20:06:03 2003 +0000 + + Fix probing on 2.5+ kernels, which require that drivers have .id_table set. + We use PCI_ANY_ID to ask that our probe is called for every available + device. + Submitted by: jonsmirl + +commit 2950f9e6823d43abae151966ae808d1a63e6659c +Author: Eric Anholt +Date: Fri Oct 17 05:13:48 2003 +0000 + + - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them + from __HAVE_DMA. This will be useful for adding vblank sync support to + sis and tdfx. Rename dma_service to irq_handler, which is more + accurately what it is. + - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have + the right number of underscores. This may have been a problem in the + case that the server died without doing its DRM_IOCTL_CONTROL to + uninit. + +commit ff58476011ba8fe72d65e884380d3d86710bfdd4 +Author: Eric Anholt +Date: Fri Oct 17 03:14:39 2003 +0000 + + - Converted Linux drivers to initialize DRM instances based on PCI IDs, not + just a single instance. Moved the PCI ID lists from _drv.c in BSD + to .h. The PCI ID lists include a driver private field, which may + be used by drivers for chip family or other information. Based on work + by jonsmirl. + - Make tdfx_drv.c and tdfx.h match other drivers. + - Fixed up linking of sis shared files. + Tested with Radeon and SiS on Linux and FreeBSD, including a Linux setup + with + 2 SiS cards in a machine, but only one head being used (with DRI) + +commit 355b204de0dbc01308bebc77c4c1c0a9a402cded +Author: Michel Daenzer +Date: Thu Oct 16 14:18:52 2003 +0000 + + Introduce COMMIT_RING() as in radeon DRM, stop using error prone writeback + for ring read pointer (Paul Mackerras) + Get rid of some superfluous stuff, minor fixes + +commit a64dab132375b4bf5d4e8aeecc1bf341879482fa +Author: Eric Anholt +Date: Thu Oct 16 03:20:03 2003 +0000 + + Try that again. It's a long. + +commit a9e1a57d6d03f9fc52357db8af7ac2e7b8a488e4 +Author: Eric Anholt +Date: Thu Oct 16 03:19:06 2003 +0000 + + Debug printf format fix. + +commit 9fbfb7ca6a7da93fda0d086a712108e1b14c99d1 +Author: Eric Anholt +Date: Fri Oct 3 08:08:10 2003 +0000 + + Some code cleanups done while working on locking. Reduces always-true + tests, excessive indenation, convoluted handling of errors, or code + duplication. + +commit 929536172cda4288857cdc29b272e61e02fd47bd +Author: Eric Anholt +Date: Fri Oct 3 07:02:51 2003 +0000 + + Stylistic preparation for SMPng locking work: DRM_LOCK/DRM_UNLOCK have side + effects, so make them look like functions (add parenthesis). + +commit e187d665e4ffee4990d096d8d3722630b2ba2d46 +Author: Eric Anholt +Date: Thu Oct 2 20:52:44 2003 +0000 + + Add an MIT-style copyright, assigned to myself, to these files. I think + I've touched enough of the code here, and there was no previous + copyright. Do some drive-by style fixes while I'm here. + +commit 89dd7be3dd7f73d3bae54a01865e5605a707f823 +Author: Eric Anholt +Date: Thu Oct 2 07:02:34 2003 +0000 + + Axe more old gamma DMA infrastructure. + +commit a6b84f73e18d88524a906a319c6c8e3c44bd7dea +Author: Eric Anholt +Date: Thu Oct 2 04:48:54 2003 +0000 + + Mostly whitespace cleanups and style(9) fixes focused on "if(" -> "if (" + Change some nearby memset()s to bzero()s or to calloc allocations to + take advantage of M_ZERO). Reverse some error tests to reduce high + levels of indentation. Move the sg_cleanup() call out of the maplist + loop in DRM(takedown)-- I can't see any need for it to be inside. + +commit 4dee75ff58a50559cb8a92c276c0b952c2776154 +Author: Eric Anholt +Date: Thu Oct 2 04:12:34 2003 +0000 + + Wrap sys/endian.h usage with __FreeBSD_version >= 480000. + Obtained from: i865-agp-0-1-branch + +commit 4a55e75e97e39256d5cdb561cf01ff7df73fe664 +Author: Eric Anholt +Date: Thu Oct 2 04:07:03 2003 +0000 + + Allow the DRM to attach to a "drmsub" device. This will be provided by the + i810 AGP module, working around the limitation of one driver per + device. + Obtained from: i865-0-1-branch + +commit 8fe6a0d6c9aae796cc1217794644b314a9960a43 +Author: Eric Anholt +Date: Thu Oct 2 03:51:49 2003 +0000 + + MTRR issue with SMP and -stable seems to be resolved. Re-enable MTRRs on + 4.x + +commit e5546d2f26db3eb15b2be1f33a0b07c7ca497337 +Author: Jose Fonseca +Date: Tue Sep 30 22:43:23 2003 +0000 + + file via_drm.h was initially added on branch cle266-0-0-1-branch. + +commit 87c04835df1ab427c003c5f3d716dbd12a5f4294 +Author: Jose Fonseca +Date: Tue Sep 30 22:43:23 2003 +0000 + + file via.h was initially added on branch cle266-0-0-1-branch. + +commit 64828b7fe36f771e124d0a69e022c5d8177b4564 +Author: Jose Fonseca +Date: Tue Sep 30 22:43:23 2003 +0000 + + file via_drv.c was initially added on branch cle266-0-0-1-branch. + +commit 215a05721bc08eea804c6790a43666ceb297e5d8 +Author: Jose Fonseca +Date: Tue Sep 30 22:43:23 2003 +0000 + + file via_drv.h was initially added on branch cle266-0-0-1-branch. + +commit 37ff4d7ddeff8dfd303b6dedd591f21e4962745e +Author: Jose Fonseca +Date: Tue Sep 30 22:43:23 2003 +0000 + + file via_ds.c was initially added on branch cle266-0-0-1-branch. + +commit 53e11840a54b7b252d56cc8909846a24d53d2366 +Author: Jose Fonseca +Date: Tue Sep 30 22:43:23 2003 +0000 + + file via_ds.h was initially added on branch cle266-0-0-1-branch. + +commit 097d0a51e2c6e8bc1d77b46afe15b1068d6c9a94 +Author: Jose Fonseca +Date: Tue Sep 30 22:43:23 2003 +0000 + + file via_map.c was initially added on branch cle266-0-0-1-branch. + +commit 8d9d81680779ce40b96cdfbd83067b797876a981 +Author: Jose Fonseca +Date: Tue Sep 30 22:43:23 2003 +0000 + + file via_mm.c was initially added on branch cle266-0-0-1-branch. + +commit d04d1cf313be536dc69d4b807a6503aef1204c6d +Author: Jose Fonseca +Date: Tue Sep 30 22:43:23 2003 +0000 + + file via_mm.h was initially added on branch cle266-0-0-1-branch. + +commit 5d4b13707666701506dcb86e7fc2dfe79ee056ea +Author: Leif Delgass +Date: Sun Sep 28 21:27:09 2003 +0000 + + Fix typo in SiS help message (and testing cvs commit to + dri.freedesktop.org) + +commit 28aee7fb1c5b7a7e59aed8ed8e9dc1e3d4b88561 +Author: Eric Anholt +Date: Thu Sep 25 23:04:10 2003 +0000 + + Whitespace cleanup (spaces before tabs or instead of tabs). + +commit b0fab09c4df5075ebfae3637f39ef595a8a37066 +Author: Eric Anholt +Date: Thu Sep 25 19:08:46 2003 +0000 + + Whitespace cleanup. + Submitted by: Linus Torvalds + +commit a0a38f8bd68792206491a51e708d2d1bd2db8b26 +Author: Eric Anholt +Date: Thu Sep 25 19:08:11 2003 +0000 + + Fix Kconfig for SiS DRM now that it doesn't require sisfb. + Submitted by: Linus Torvalds + +commit b0a928557c91fec527f41ae8b2441174889bf32c +Author: Alan Hourihane +Date: Wed Sep 24 14:39:25 2003 +0000 + + post merge fix + +commit decf9e2297d87d646a4259f5d70290f105a487cd +Author: Alan Hourihane +Date: Sat Sep 13 00:25:59 2003 +0000 + + compatibility layer still uses agp (not gart) + +commit dc17c4cdc358213340947ec0e7e7f4caf7664232 +Author: Alan Hourihane +Date: Fri Sep 12 20:03:17 2003 +0000 + + bsd drm fixes + +commit c5168016cc028f59b417df77f1f169bf06e40271 +Author: Alan Hourihane +Date: Fri Sep 12 20:00:59 2003 +0000 + + linux drm fixes + +commit 85c16d962d8f6011b670d74d0669402ec4708f6f +Author: Alan Hourihane +Date: Fri Sep 12 14:24:17 2003 +0000 + + resolve merge conflicts + +commit 6fc41e25e5acbbfae4d2e93a0d9e6f980f8ae477 +Author: Keith Whitwell +Date: Tue Sep 9 07:45:12 2003 +0000 + + Use spldrm/splx around tsleep() in DRM_WAIT_ON + +commit 4d6d3572029414419289fd512416effb9a9ad832 +Author: Eric Anholt +Date: Sun Sep 7 23:56:20 2003 +0000 + + Correct format in debug printfs (free is a pointer, not an int). + +commit 6f563cd513bfcd35643ebc4f0d5c58f0193cc163 +Author: Eric Anholt +Date: Sun Sep 7 23:27:04 2003 +0000 + + Fix for older -stable. + Obtained from: FreeBSD CVS + +commit ebca51d8da42e7e4882694bc3233bf0f8dbdf301 +Author: Eric Anholt +Date: Fri Aug 29 21:41:32 2003 +0000 + + Update to reflect renaming of SIS ioctls. + +commit f634f687592bca690a9bc045661005c77854647b +Author: Eric Anholt +Date: Fri Aug 29 20:54:26 2003 +0000 + + These files were missed in the SiS DRM commit. + +commit fabc64dd573f01a2160be474b4abc65a3a9aa5ea +Author: Eric Anholt +Date: Fri Aug 29 19:24:36 2003 +0000 + + Port the SiS DRM to FreeBSD. This includes the ability for the DRM to + allocate framebuffer memory without sisfb, and a new ioctl to be used + by the X Server which tells the DRM what region of framebuffer memory + to allocate from. Also fixes a possibility to panic the kernel I + believe. Tested on linux with sisfb and FreeBSD (without sisfb) with + new DRI only. + +commit a7aebb6dac3287374721dd2101a4584f12c63c82 +Author: Eric Anholt +Date: Fri Aug 29 19:16:13 2003 +0000 + + Add DRM(calloc), which is convenient, used by the new sis code, and takes + advantage of M_ZERO on BSDs. + +commit db781291164dfa10538776748df7af901c6b20a2 +Author: Eric Anholt +Date: Fri Aug 29 19:08:06 2003 +0000 + + Update radeon PCI IDs. + +commit bd3bc9f23d7a1895b2bf87d39346c5d4c9615020 +Author: Eric Anholt +Date: Fri Aug 29 19:07:27 2003 +0000 + + This PCI header has been living in dev/pci/ for a while now. + +commit ba804e7864eef2fd1d92cfe75b0bc868302da084 +Author: Michel Daenzer +Date: Thu Aug 28 12:14:17 2003 +0000 + + Remove superfluous TLB flush + +commit b83d2f909e03c7c4a95f19a04d717f7ea8dc288e +Author: Michel Daenzer +Date: Tue Aug 26 16:49:33 2003 +0000 + + Rename agp to gart for radeon + +commit 062751ac472b2721bed0cd1ee48a3ae7d327ff07 +Author: Michel Daenzer +Date: Tue Aug 26 15:44:01 2003 +0000 + + Remove artificial PCI GART limitations, rename AGP to GART where + appropriate + +commit 963ad33cb6b85189f3385bcba46905b6d4d329db +Author: Eric Anholt +Date: Tue Aug 19 02:22:57 2003 +0000 + + Fix the debug build. + +commit ad78a613a49daea936372c75423ac17f9f83b092 +Author: Eric Anholt +Date: Tue Aug 19 00:41:00 2003 +0000 + + - Remove $FreeBSD$ tags as they weren't too useful and merges are now being + done through perforce. + - Add copyright headers to drm_os_*bsd.h, still need to research the other + copyright-less files better. + +commit 07a9b30082d6a64d39964f504e3afc4317e22ef7 +Author: Michel Daenzer +Date: Mon Aug 18 23:46:19 2003 +0000 + + Clean up Radeon DRI resume code + +commit 0f094c33da5054e6be9ccf8bf0f6282c9aed5791 +Author: Eric Anholt +Date: Mon Aug 18 23:42:16 2003 +0000 + + Make r128_do_wait_for_idle static, as it's only used in this file. + Noticed by: CScout + +commit 6298d1a1e0deccf085970e12922430dbde09e5da +Author: Eric Anholt +Date: Mon Aug 18 23:41:05 2003 +0000 + + Remove an unnecessary #define __NO_VERSION__ + Noticed by: CScout + +commit 9d7b01ebbe71ff6ca3ea421d5bff64f403b592ba +Author: Michel Daenzer +Date: Fri Aug 15 10:31:54 2003 +0000 + + Merge from 2.6 kernel (Linus Torvalds) + +commit a073ff7dc73dc98e81e2ae26e8c500ea7141084b +Author: Dave Airlie +Date: Fri Aug 15 01:05:24 2003 +0000 + + DA: loads of whitespace .. some from Linus, some from me + +commit 428cbe0b91b1b446b0878544f30121df9b5bb2ac +Author: Dave Airlie +Date: Wed Aug 13 23:35:40 2003 +0000 + + DA: patch from Matthew upgraded to latest DRI head to solve issue with i810 + compatibility + +commit 03e6674c13f8e7033c891ae8979e7f996fe9a6c1 +Author: Eric Anholt +Date: Tue Aug 12 21:48:16 2003 +0000 + + Whitespace cleanup from the pageflipping commit. + +commit 4c9daf6847b4e263d006154ac1e523c091308a6b +Author: Eric Anholt +Date: Tue Aug 12 21:47:34 2003 +0000 + + Document change in interface version 1.9. + +commit fbdadde0079120d49ca719781817a342bb62801d +Author: Eric Anholt +Date: Tue Aug 12 21:34:03 2003 +0000 + + Document the changes in interface version 2.5. + +commit 02675a470e9fde770418748b14d0a69a7f562d3b +Author: Eric Anholt +Date: Tue Aug 12 21:18:05 2003 +0000 + + Merge from FreeBSD r1.11: We have memset in the kernel, no need to define + it to bzero (which it was always used for). + +commit 447d8c56bb8db6c8139c4c4cb3e99f6674069e09 +Author: Dave Airlie +Date: Mon Aug 11 01:46:02 2003 +0000 + + DA: code cleanups for i810_dma.c from 2.4 kernel + +commit c99acb597fe430305b6bba62467cd3c85a36b8f5 +Author: Ian Romanick +Date: Fri Aug 8 21:06:44 2003 +0000 + + Added some information as to when (which DRM version) various queries were + added. + +commit e7944efc4550416ee53e2f570f759d4e6078834b +Author: Michel Daenzer +Date: Thu Aug 7 10:13:50 2003 +0000 + + build fix for kernels >= 2.6 + +commit da16867c8433516c361944e6e4265bd511ac72c8 +Author: Michel Daenzer +Date: Wed Aug 6 11:46:21 2003 +0000 + + Fix maplist entries being used after they were freed; thanks to Benjamin + Herrenschmidt for tracking this down + +commit 4b60cae90e0f689f68167c2e3419df7574cae1ab +Author: Michel Daenzer +Date: Tue Jul 29 10:11:48 2003 +0000 + + IRQ code cleanup suggested by Linus Torvalds + i830 build fix + +commit c26ffeafca30332520660d2bef1106b56d0ef5e1 +Author: Michel Daenzer +Date: Sat Jul 26 15:59:09 2003 +0000 + + Degrade uninformative error message to debug message, as in other drivers + +commit aaf2105be967ad7f99c643b4be09cf6d3d063b65 +Author: Eric Anholt +Date: Sat Jul 26 03:25:40 2003 +0000 + + Add Rage 128 pageflipping support, defaults to off. DRM version bump to + 2.5.0. It still has some issues, including a flicker in the fps meter + in tuxracer and I've seen garbage left behind after moving/closing + windows. However, it's usable. Add the Option "EnablePageFlip" "YES" to + use it. + +commit 983db58a26c37237acf54af60f28a4243467079a +Author: Eric Anholt +Date: Sat Jul 26 03:18:34 2003 +0000 + + Fix FreeBSD build after IRQ changes. + +commit bef7017749c9d3af733bdca4863a012f5d6506d3 +Author: Michel Daenzer +Date: Fri Jul 25 10:50:39 2003 +0000 + + Compile fixes for recent 2.5/2.6 Linux kernels. I hope this doesn't break + the i830 driver or the BSDs. :) + +commit 32ef0f59a8d62460da338568af347286aa450146 +Author: Michel Daenzer +Date: Fri Jul 25 10:31:37 2003 +0000 + + Fail in DRM(agp_acquire) if the AGP aperture can't be used, such that the X + server falls back to PCI GART or disables the DRI gracefully + +commit 3669639b2162d0ec0d3f9b47b2e443b6d89d1cee +Author: Keith Whitwell +Date: Fri Jul 11 15:27:55 2003 +0000 + + Restore __HAVE_KERNEL_CTX_SWITCH, required for the sparc drm module in the + kernel tree. Added comments to that effect. + +commit 1654bc5752740e54a5e6cfd18021a9f66d7b7df2 +Author: Dave Airlie +Date: Wed Jul 9 23:21:15 2003 +0000 + + DA: fix for bug 484 in Bugzilla, originally from me, reworked by David + Dawes to avoid backword incompatibilities... + +commit f4188a751829926f5901d18a0d95774c8cdecbf8 +Author: Jose Fonseca +Date: Wed Jul 9 09:28:42 2003 +0000 + + file drm_mem.h was initially added on branch newdrm-0-0-1-branch. + +commit 7dc959ed2114f4b92b7e0cb8b067f2a182e9a4d8 +Author: Jose Fonseca +Date: Wed Jul 9 09:26:17 2003 +0000 + + file drm_dma.c was initially added on branch newdrm-0-0-1-branch. + +commit 49d152544e64b9d3802f5efd6e5f53cb93756a10 +Author: Jose Fonseca +Date: Wed Jul 9 09:26:17 2003 +0000 + + file drm_fops.c was initially added on branch newdrm-0-0-1-branch. + +commit 6a0e4854574732ed301a1aa7fb8753b37666def1 +Author: Jose Fonseca +Date: Wed Jul 9 09:26:17 2003 +0000 + + file drm_lock.c was initially added on branch newdrm-0-0-1-branch. + +commit c7f9545482223eb01d9b4c76212305615483150a +Author: Jose Fonseca +Date: Wed Jul 9 09:26:17 2003 +0000 + + file drm_stub.c was initially added on branch newdrm-0-0-1-branch. + +commit cf6e7980c913b0b78cbf020052d9135fc2da0417 +Author: Jose Fonseca +Date: Wed Jul 9 09:26:17 2003 +0000 + + file drm_vm.c was initially added on branch newdrm-0-0-1-branch. + +commit 2daf14765214c50088c16e3538d24e157578d000 +Author: Keith Whitwell +Date: Tue Jul 8 17:10:13 2003 +0000 + + Removed unused __HAVE_KERNEL_CTX_SWITCH, whatever that was. + +commit 39e1c534c0730e451062a9dbcbdf5ab95d1c5c50 +Author: Leif Delgass +Date: Fri Jul 4 18:31:42 2003 +0000 + + Don't need to include linux/wrapper.h - we only use Set/ClearPageReserved + from linux/mm.h now and wrapper.h has been removed in 2.5.69 and later. + +commit 01d6ae90d6a8b5ed32739b39334079d5f1c3d95e +Author: Jose Fonseca +Date: Tue Jul 1 18:56:57 2003 +0000 + + file drm_agp.c was initially added on branch newdrm-0-0-1-branch. + +commit a145363ee175757ff0309a50157a9d75e97fda26 +Author: Jose Fonseca +Date: Tue Jul 1 18:56:57 2003 +0000 + + file drm_bufs.c was initially added on branch newdrm-0-0-1-branch. + +commit 7c565e4961c194d9b432d4a6790883ac5c061867 +Author: Jose Fonseca +Date: Tue Jul 1 18:56:57 2003 +0000 + + file drm_mem.c was initially added on branch newdrm-0-0-1-branch. + +commit 43d3934ac86bdd7319b140b7dae823579a3bc43c +Author: Jose Fonseca +Date: Tue Jul 1 18:56:57 2003 +0000 + + file drm_pci.c was initially added on branch newdrm-0-0-1-branch. + +commit 8ec900afb4ea0d0ab3f7f1e7e71f41de210da3bf +Author: Jose Fonseca +Date: Tue Jul 1 18:56:57 2003 +0000 + + file drm_sg.c was initially added on branch newdrm-0-0-1-branch. + +commit 66d39b549eef3bdaaa3b6a99992659e0b381b4aa +Author: Alan Hourihane +Date: Mon Jun 23 16:34:14 2003 +0000 + + file savage_dma.c was initially added on branch savage-1_0_0-branch. + +commit 5640adddc896c89ae25c7db38c796bde21a37bdc +Author: Alan Hourihane +Date: Mon Jun 23 16:34:14 2003 +0000 + + file savage_state.c was initially added on branch savage-1_0_0-branch. + +commit 1b0eb5e3561f3cdabae73c8152fe0b5b72863922 +Author: Jose Fonseca +Date: Sat Jun 21 15:27:51 2003 +0000 + + file drm_pci_tmp.h was initially added on branch newdrm-0-0-1-branch. + +commit dab537cbb1817f6a229640cf2584e64495b7a186 +Author: Jose Fonseca +Date: Sat Jun 21 14:01:43 2003 +0000 + + file drm_stub_tmp.h was initially added on branch newdrm-0-0-1-branch. + +commit b568f838490ef2558e7297a1950e6e9e26093d24 +Author: Jose Fonseca +Date: Sat Jun 21 13:18:47 2003 +0000 + + file drm_memory_tmp.h was initially added on branch newdrm-0-0-1-branch. + +commit 7014016e08c3d98aa348e21f7ce1937535db2e13 +Author: Jose Fonseca +Date: Sat Jun 21 13:09:08 2003 +0000 + + file drm_vm_tmp.h was initially added on branch newdrm-0-0-1-branch. + +commit b816fa625fc05afd0ffa62a2a5d0784c024c3319 +Author: Jose Fonseca +Date: Sat Jun 21 12:49:34 2003 +0000 + + file drm_dma_tmp.h was initially added on branch newdrm-0-0-1-branch. + +commit d64200e830586990cb1ae5436bdfec9127f2a731 +Author: Jose Fonseca +Date: Sat Jun 21 12:27:27 2003 +0000 + + file drm_lock_tmp.h was initially added on branch newdrm-0-0-1-branch. + +commit e7334f927f1f5fc6ed1df1abf2c345be1682c3f8 +Author: Jose Fonseca +Date: Thu Jun 19 00:14:25 2003 +0000 + + file drm_bufs_tmp.h was initially added on branch newdrm-0-0-1-branch. + +commit 93522f6d3ad6924cbf413915491e4f8228502d98 +Author: Jose Fonseca +Date: Thu Jun 19 00:09:52 2003 +0000 + + Revert the janitorial - that works is now on the new branch + newdrm-0-0-1-branch. + +commit 0a995b624d325055abf5ba09d39ac8d85866d85a +Author: Keith Whitwell +Date: Wed Jun 18 15:07:31 2003 +0000 + + file i830_compat.c was initially added on branch i865-agp-0-1-branch. + +commit 22e5f8d765745ff3f41d1b8016e1c0b889bb52d1 +Author: Keith Whitwell +Date: Wed Jun 18 15:07:31 2003 +0000 + + file i830.h was initially added on branch i865-agp-0-1-branch. + +commit 2efebc956c68e5b5ef28690ea1829d9d993dd33f +Author: Keith Whitwell +Date: Wed Jun 18 15:07:31 2003 +0000 + + file i830_dma.c was initially added on branch i865-agp-0-1-branch. + +commit a9611f09037e3966aace29fdfff296dae82e642f +Author: Keith Whitwell +Date: Wed Jun 18 15:07:31 2003 +0000 + + file i830_drm.h was initially added on branch i865-agp-0-1-branch. + +commit 900bd6e4377d70cb6a26905d5310304c6c1a4d71 +Author: Keith Whitwell +Date: Wed Jun 18 15:07:31 2003 +0000 + + file i830_drv.c was initially added on branch i865-agp-0-1-branch. + +commit cf840e71f2e7d8b8814a605020ca3b0d03964295 +Author: Keith Whitwell +Date: Wed Jun 18 15:07:31 2003 +0000 + + file i830_drv.h was initially added on branch i865-agp-0-1-branch. + +commit 4d0e244f8f6fbc710703413cf358942a06cbe843 +Author: Keith Whitwell +Date: Wed Jun 18 15:07:31 2003 +0000 + + file i830_irq.c was initially added on branch i865-agp-0-1-branch. + +commit fbde3dc0e6649f83173a6f39a01338288e8e56f1 +Author: Keith Whitwell +Date: Wed Jun 18 15:07:31 2003 +0000 + + file i830_mem.c was initially added on branch i865-agp-0-1-branch. + +commit 9e7d6177d1e57f8ab08da3232568597d5005709c +Author: Keith Whitwell +Date: Mon Jun 16 10:40:52 2003 +0000 + + Possibly fix stanford checker complaints about sarea + +commit fdf320a1b8025dd4b33670fddae9df2890ee6c5b +Author: Jose Fonseca +Date: Sat Jun 14 15:18:49 2003 +0000 + + Move the linux AGP includes into drm_agp.h and only define the AGP data + structures if AGP support is enabled in the kernel (__REALLY_HAVE_AGP). + This fixes the compile errors on kernels without AGP support. + +commit 0b01c70d59f6e038b8f90f7be98fb77d771ecc1a +Author: Keith Whitwell +Date: Tue Jun 10 18:54:17 2003 +0000 + + Texture rectangle support for r100 + +commit 98840144b120691423038a29e1f0afdc8606cce7 +Author: Keith Whitwell +Date: Mon Jun 9 23:12:33 2003 +0000 + + Revert bogus last commit + +commit 1062b9930f2c0ddb9f5f0db29796aba0e247c80d +Author: Keith Whitwell +Date: Mon Jun 9 23:11:23 2003 +0000 + + Don't activate blend fallbacks unless blending is enabled + +commit 1a2bb4332972c57c0d810e879e251d74a538f13b +Author: Jose Fonseca +Date: Sat Jun 7 12:45:55 2003 +0000 + + Verify 'drm_agp' is not NULL for all its wrappers - this causes no overhead + and must be done if in future a driver tries to talk to the AGP + directly from kernelspace instead of userspace, and the AGP is not + present. + +commit e3a149f08095f1a7321fce890b1337098485f254 +Author: Jose Fonseca +Date: Sat Jun 7 12:30:22 2003 +0000 + + Check that the AGPGART "drm_agp" symbol pointer is valid before + initializing the DRM device - this was causing a kernel oops when the + AGPGART module wasn't loaded. + +commit f723f743c55156039525a5f49dfe6e0fd141c8df +Author: Dave Airlie +Date: Sat Jun 7 01:44:15 2003 +0000 + + fix pitch compile error + +commit 8eaa2d245077d5e949679e48897b57f8dc505a25 +Author: Dave Airlie +Date: Thu Jun 5 23:31:40 2003 +0000 + + add page flipping support to the DRM, up version number to 1.3.0... + +commit 8e7cd92f35629a6f6d904346b09883173a7bda29 +Author: Jose Fonseca +Date: Tue Jun 3 23:50:23 2003 +0000 + + Added the Doxygen configuration file. Minor documentation fixes. + +commit 6611a5fb7f41f81e38391c77903d98a29937ceed +Author: Jose Fonseca +Date: Tue Jun 3 23:27:01 2003 +0000 + + Split declarations/definitions in drm_scatter.h into drm_sg.h/drm_sg_tmp.h + respectively. Splited the work out of the ioctls and renamed (with the + _ioctl prefix). Added some more documentation. Did the same for + drm_sgpsupport.h. + +commit a709d4c97c2de9d75ba845da41d61f8734ee573b +Author: Keith Whitwell +Date: Tue Jun 3 11:23:58 2003 +0000 + + file i830_mem.c was initially added on branch i865-agp-0-1-branch. + +commit 89463947581a5aad25abd22f36e95391c42972b6 +Author: Keith Whitwell +Date: Fri May 30 12:07:45 2003 +0000 + + file i830_compat.c was initially added on branch i865-agp-0-1-branch. + +commit 518db771de1fd1ac26721197833d33147740edae +Author: Leif Delgass +Date: Wed May 28 02:03:37 2003 +0000 + + Restore change to _DRM_VBLANK_SIGNAL from rev. 1.41, which was reverted + with the documentation merge. + +commit ccf6d6a5136af3d59a9d93566f55058e9c8480b4 +Author: Leif Delgass +Date: Wed May 28 01:44:49 2003 +0000 + + Restore DRM_*MEMORYBARRIER change reverted with documentation merge + +commit d2443b2186712dd7c977b47e06444396e1e493ff +Author: Jose Fonseca +Date: Tue May 27 00:37:33 2003 +0000 + + Merged DRM documentation. + +commit aeb4bc3f5b991d7970dca9417e04df06c0bf008a +Author: Leif Delgass +Date: Mon May 26 20:04:53 2003 +0000 + + Add support to r128 for MESA_ycbcr_texture (Ian Romanick, Leif Delgass) + +commit c0efa1a777baf90561a31957014d760f89146e4f +Author: David Dawes +Date: Tue May 20 22:43:39 2003 +0000 + + DRM part of Radeon DRI suspend/resume support (Charl Botha). + +commit 2134577e314d1dac4b48b78e5b6d6e92f2c76ea8 +Author: David Dawes +Date: Tue May 20 22:42:24 2003 +0000 + + Support for building DRM module on OpenBSD (Wilbern Cobb, Matthieu Herrb). + (resync with XFree86 trunk) + +commit b942999b5915cbad75f16f6c242bab03c33f0c8b +Author: Michel Daenzer +Date: Sat May 17 00:37:34 2003 +0000 + + do allow reading from read only mappings... + +commit e5d3c7f260d18168eec755c73f01ac617390d96c +Author: Michel Daenzer +Date: Fri May 16 23:41:27 2003 +0000 + + Support AGP bridges where the AGP aperture can't be accessed directly by + the CPU (David Mosberger, Benjamin Herrenschmidt, myself, Paul + Mackerras, Jeff Wiedemeier) + +commit 1d5bf7a7de35f87e68cce740151fd46cd8fa2ff3 +Author: Michel Daenzer +Date: Tue May 6 21:10:33 2003 +0000 + + fix warning on machines where sizeof(drm_addr_t) != 4 (Randy Dunlap) + +commit 285b1cdc39d9cc47e3ff74b9f9b56c24317beec5 +Author: Ian Romanick +Date: Wed Apr 30 01:51:00 2003 +0000 + + Merged texmem-0-0-1 + +commit 7e1a4bfab3648a83cf2f8eed01c6ac346829aa3c +Author: Leif Delgass +Date: Tue Apr 29 16:59:00 2003 +0000 + + remove unused variables + +commit 87ed795ff354eb6e9431c87ab315349326c1af79 +Author: Eric Anholt +Date: Mon Apr 28 23:18:43 2003 +0000 + + Fix a typo: On takedown the mtrr operation is MEMRANGE_SET_REMOVE, not + _UPDATE. + +commit 5f1e2399eb5b76537c91fc9aba2569f2c289a284 +Author: Leif Delgass +Date: Mon Apr 28 17:49:26 2003 +0000 + + Restore Eric Anholt's DRM_*MEMORYBARRIER changes from rev 1.11 + +commit a57d3204613922ee07e56209169e4b4ce1f17754 +Author: Leif Delgass +Date: Mon Apr 28 16:20:31 2003 +0000 + + Only free original pagelist in addbufs_pci if one already exists (fixes + oops). + +commit 6eb5364eb81474a6ceac8b44c3283cb0327b2a82 +Author: Alan Hourihane +Date: Mon Apr 28 15:29:46 2003 +0000 + + DRM_READ/WRITEMEMORYBARRIER was given an argument in the bsd tree, fix for + linux + +commit c584292e30f1f3fc22da32117dfbb72bb79cdbe2 +Author: Keith Whitwell +Date: Sun Apr 27 09:53:58 2003 +0000 + + Put back __HAVE_KERNEL_CTX_SWITCH for David Miller's sparc drm driver + (which doesn't live in our cvs). + +commit 22b9b720d572ba6fec288e2a13537aec069cec7f +Author: Eric Anholt +Date: Sun Apr 27 00:43:14 2003 +0000 + + Use real endian conversion functions. + +commit 9828bd24c8f7b9d115acf94e422fa34ec8627b92 +Author: Eric Anholt +Date: Sat Apr 26 23:55:30 2003 +0000 + + Fix formatting of hw.dri sysctl. + +commit 766a1da2e5841959246abab9cf27c79d75636129 +Author: Eric Anholt +Date: Sat Apr 26 23:32:00 2003 +0000 + + Remove the map argument from DRM_*MEMORYBARRIER. Not all of the uses of + DRM_*MEMORYBARRIER we had were related to an MMIO space. This means + arch-specific code on the BSDs, unfortunately. Also add + DRM_MEMORYBARRIER() and change the DRM_READMEMORYBARRIER()s that used + to be read/write barriers to it. + +commit a172ee2a18b715a6de9b8e914aecd8414a4f3b2d +Author: Eric Anholt +Date: Sat Apr 26 23:04:22 2003 +0000 + + MFL: Don't install irq handler unless the driver has been initialized. + +commit ce514e08aa8fdbdf52da2ac2cbdace68e0b25210 +Author: Eric Anholt +Date: Sat Apr 26 22:52:39 2003 +0000 + + Add PCI DMA memory functions and make addbufs_pci and associated code use + it. To do this we need to save the bus address along with the virtual + address in the seglist. Also fix some error handling and a few bits of + whitespace. + +commit f2a0c5438dc83171de1007a68e4f98e35b5a8fbe +Author: Leif Delgass +Date: Sat Apr 26 22:28:56 2003 +0000 + + Ensure driver has been initialized (dev_private != NULL) before installing + irq handler in DRM(irq_install). Modify all drivers to ensure irq + handler is removed before cleanup and cleanup is called at takedown. + Remove unused buffer private struct fields in i810, i830. Check for + lock on init/cleanup in all drivers except i810/i830. The current DDX + for i810 and i830 doesn't hold the lock on kernel init (FIXME?). + +commit a79adaab72bde726ce4c08184997f34b31014d9e +Author: Eric Anholt +Date: Sat Apr 26 22:21:37 2003 +0000 + + Missed files in the last commit: Remove memory debugging sysctl unless + MEMORY_DEBUG is set. + +commit 8621ae310b496a5d5db10236083f3f3d38362719 +Author: Eric Anholt +Date: Sat Apr 26 22:18:39 2003 +0000 + + Move the memory functions with debugging info to drm_memory_debug.h, and + remove a couple of dead functions. + +commit 79a0c5757e400c236b4c365761a377d52393606a +Author: Eric Anholt +Date: Sat Apr 26 21:57:43 2003 +0000 + + Remove #if 0'ed code. + +commit f5844cea13ba330beaeebb171eca1580efba62c6 +Author: Keith Whitwell +Date: Sat Apr 26 21:33:44 2003 +0000 + + 2.5.x sync patch from Linus Torvalds + +commit 2c40a56393102bb0fb21e183bf5a08b0eea35c57 +Author: Keith Whitwell +Date: Sat Apr 26 21:22:08 2003 +0000 + + move prototypes for gamma functions to gamma_drv.h + +commit 2142b7840a5e0c2b6342ef94f285ac9fcf4a87ce +Author: Keith Whitwell +Date: Sat Apr 26 21:21:36 2003 +0000 + + Remove #if 0'd code + +commit e60eb69bc029c04b39ef0de620002d5ba2433d04 +Author: Eric Anholt +Date: Sat Apr 26 06:53:22 2003 +0000 + + Replace the C atomic_cmpset_int compatibility function for -stable with the + real i386 atomic_cmpset_int from -current. FreeBSD-stable won't ever + have DRM support for non-i386. + +commit acb5d6b2732cccfa3734b25dc808ecdc5a6c556c +Author: Eric Anholt +Date: Sat Apr 26 06:39:55 2003 +0000 + + Disable MTRRs on FreeBSD-stable. Without this, it hangs on boot in the MTRR + setting for AGP cards on SMP machines. + +commit cb32dde3be831096e98c66398159f7d7ddf3d672 +Author: Leif Delgass +Date: Fri Apr 25 19:42:47 2003 +0000 + + Fix potential oops and memory leaks when allocations fail in + addbufs_agp/pci. Add support for buffer private structs with PCI DMA + buffers. Also some debug format string fixes. + +commit 77ee73f8cd92aa136488e23424282afba9977160 +Author: Eric Anholt +Date: Fri Apr 25 02:27:21 2003 +0000 + + Merge from FreeBSD-current. + +commit c3092ead6427d04b7067c1d7d95163c7aa7b75b1 +Author: David Dawes +Date: Fri Apr 25 00:57:42 2003 +0000 + + Targets for building dristat and drmstat. + +commit 58650c3a9d53044a0ab463df41864ddb39238bab +Author: Eric Anholt +Date: Fri Apr 25 00:02:14 2003 +0000 + + Clean up the DRM_COPY_TO_USER()ing of DRM(infobufs), making it more + legible. + +commit 781828b26e35e8347e461d2097563823e8f76c88 +Author: Eric Anholt +Date: Thu Apr 24 23:57:29 2003 +0000 + + Clean up the style of the linux-compat code and use ioctl() directly rather + than reimplementing it. + +commit 16fda821eb457818414faa57bf9ccfba93c3a350 +Author: Leif Delgass +Date: Thu Apr 24 23:18:33 2003 +0000 + + Pass dma handle from pci_alloc_consistent to the card for status page, + rather than using virt_to_bus() on the virtual address. + +commit a147df879b3b850612222759c14f4142d2406e74 +Author: Eric Anholt +Date: Thu Apr 24 19:09:55 2003 +0000 + + Remove more gamma DMA infrastructure. Most of this code was copied straight + from linux, so it could be added back if some driver needed it in the + future. + +commit d6a82ff9c160acbb7db5bee2cde45818d1e8548e +Author: Leif Delgass +Date: Thu Apr 24 16:55:22 2003 +0000 + + Remove unused dev->map_count. We always iterate the maplist with + list_for_each() and the count is not updated or used for stats. + +commit 2dc672a7908817f43391703a8341cb873fbb1543 +Author: Leif Delgass +Date: Thu Apr 24 16:47:32 2003 +0000 + + Minor cleanups for dri/drmstat test progs (Both still need targets for new + Makefile) + +commit cd3d6090b79ad5583494938a231cfc4da610ca9b +Author: Leif Delgass +Date: Thu Apr 24 15:29:30 2003 +0000 + + Remove unused variables + +commit 57406077e554d29e56a8a82c54ec7d41cdc07b79 +Author: Keith Whitwell +Date: Thu Apr 24 10:02:18 2003 +0000 + + Move the debug versions of the DRM memory functions to a new file and + implement non-debug ones as standard. + +commit a41594e8dfa029cfba9c518d6c21551f5e0857bc +Author: Keith Whitwell +Date: Thu Apr 24 09:41:33 2003 +0000 + + Remove #if 0'd code and some unused string functions + +commit 01178567ebc428fcf8eb53a62b5ca9c449980491 +Author: Eric Anholt +Date: Thu Apr 24 06:19:54 2003 +0000 + + Remove more gamma DMA code. This isn't all of it, but it's a major portion. + +commit c6d2af70cb30a5cc65aebae2637313158a95346e +Author: Eric Anholt +Date: Thu Apr 24 05:56:44 2003 +0000 + + Move some common code from addbufs_ to addbufs. Make buf_alloc be + protected by the count_lock and make it non-atomic. + +commit af3bfdef26b2d02ea4877e3d57601e57ffa4e95a +Author: Eric Anholt +Date: Thu Apr 24 05:14:05 2003 +0000 + + Remove the ioctl_count variable from the device. A reference is held to the + fp throughout the ioctl syscall, so the device can't be closed out from + under us. + +commit bcd527ee71043478d27ec3e5b611c9f34bf4f191 +Author: Eric Anholt +Date: Thu Apr 24 04:50:07 2003 +0000 + + Remove a bunch of dead code and fix spelling of a couple of comments. + +commit 00522cedd6ee3027d2858909d34e862fa21e6e28 +Author: David Dawes +Date: Thu Apr 24 03:01:40 2003 +0000 + + Single/dual rasterizer quiescence patch for the glint/gamma DRI driver + (#5685, Sven Luther). + +commit 9d603b0abe3d1ab2a383ee9f33f27900f9eb1d5e +Author: David Dawes +Date: Thu Apr 24 02:56:06 2003 +0000 + + break long line + +commit 9b2b2337b3caa006fa95eecb966b8a68eed83b90 +Author: Eric Anholt +Date: Thu Apr 24 00:46:03 2003 +0000 + + Move one definition to drm_drv.h and remove the rest of drm_init.h which + was all unused. + +commit e21473c88853bb6f539ecca1c76e692d748bb722 +Author: Eric Anholt +Date: Thu Apr 24 00:37:35 2003 +0000 + + Remove DRM_DMA_HISTOGRAM and associated code. + +commit 1fc0a5e1e4c43a0e9fe8b0d9860f22ae8e820d46 +Author: Eric Anholt +Date: Thu Apr 24 00:25:36 2003 +0000 + + Make DRM(read) and DRM(poll) stubs and remove DRM(write) and + DRM(write_string). This is the first part of removing much of the + support code for gamma from the BSD DRM, since it appears that no new + drivers are using it and nobody has ever shown interest in gamma on + BSD. + +commit e15b0b6a1b95e4145363b15e1a581ee230b2f9a2 +Author: Keith Whitwell +Date: Wed Apr 23 23:42:29 2003 +0000 + + Install dummy/noop read & poll fops unless the driver has replacements. + +commit 23a76c37594d3d423963c7b8610b64367e3ff9d8 +Author: Michel Daenzer +Date: Wed Apr 23 14:21:17 2003 +0000 + + deal correctly with read() from the DRM failing + +commit d5db1144dd5cb96b7e25d0e08a209b38e0afdc9b +Author: Michel Daenzer +Date: Tue Apr 22 21:45:06 2003 +0000 + + get rid of superfluous fields in struct drm_radeon_ring_buffer + use correct address for ring read pointer writeback (yes, we seem to have + been running with bogus values for the ring read pointer, which + 'worked' because the return value of radeon_wait_ring() is never + checked and the ring usually never fills up) + +commit 5ee61c18f4866bd9257bdc5eddefe6e58e0a1849 +Author: Leif Delgass +Date: Tue Apr 22 21:30:24 2003 +0000 + + Remove AGP dependency in kernel config for radeon, sis. Remove + PCIGART_ENABLED define for radeon, pcigart support now included for any + arch. + +commit 22608a414d7b7ef32ca51b9123be8341ddd5e8ce +Author: Leif Delgass +Date: Tue Apr 22 19:42:27 2003 +0000 + + Only mga, i810, i830 require AGP (should mga define __MUST_HAVE_AGP?) + +commit 879e3d335c09bfe069948754600543291e8f8475 +Author: Alan Hourihane +Date: Tue Apr 22 12:52:17 2003 +0000 + + change PREINSTALL/POSTINSTALL/UNINSTALL irq code to real functions as per + the other drivers + +commit 9c5d16216d35d4b815471ff62de79f7fff2b2a2c +Author: Alan Hourihane +Date: Tue Apr 22 12:42:22 2003 +0000 + + remove unused variable + +commit 0782f0df60b0544a8fb784aa253a4f57f9dfdeeb +Author: Alan Hourihane +Date: Tue Apr 22 12:41:16 2003 +0000 + + fix gamma headers + +commit 73e20998b46bd8aa6ac903bc4701711d9a527f63 +Author: Keith Whitwell +Date: Tue Apr 22 12:14:59 2003 +0000 + + Rename drm_lists.h to gamma_lists.h + +commit 700e880c3dbaf3532287ad423f3158adbac85fb7 +Author: Keith Whitwell +Date: Tue Apr 22 12:07:43 2003 +0000 + + new file + +commit 928c25d14f76ff537bd56f135b91cf681dee326b +Author: Keith Whitwell +Date: Tue Apr 22 12:07:24 2003 +0000 + + Move the excitingly named DRM(flush_block_and_flush) and friends to + gamma-specific code. + Fix templates so i8x0 drivers don't have to define __HAVE_DMA_WAITLIST. + +commit aba6bf7eb3cd53137fab4424ff39e2d68b83dc2a +Author: Keith Whitwell +Date: Tue Apr 22 11:39:34 2003 +0000 + + remove unused __HAVE_KERNEL_CTX_SWITCH code + +commit a1780925fb461c736bae7e51de0d3a1e909548f2 +Author: Keith Whitwell +Date: Tue Apr 22 11:31:55 2003 +0000 + + Move a chunk of gamma-specific code out of drm_dma.h. Remove unused + 'DRM_FLAG_NOCTX' option. + +commit 056762a9104997569b09416c35d9a0bfef175e1f +Author: Keith Whitwell +Date: Tue Apr 22 10:18:29 2003 +0000 + + remove unused dma histogram code + +commit 5141da97f680235d10d74737d5444963d2080072 +Author: Keith Whitwell +Date: Tue Apr 22 10:13:14 2003 +0000 + + Move a bunch of gamma-specific code into a gamma-specific file. Restore the + kooky DRM(write_string) code for gamma. + +commit 13211ad82c184e3daf68c06203412d3f1c949291 +Author: Keith Whitwell +Date: Tue Apr 22 09:49:14 2003 +0000 + + add more get_param queries for embedded project + +commit fc4fb6b51b50e37ff697e872b297b6460c3617af +Author: Keith Whitwell +Date: Tue Apr 22 08:06:14 2003 +0000 + + remove DRM read, poll and write_string + +commit 46e06192a88834a97257d2be5ab3aa7c325a1cfe +Author: Leif Delgass +Date: Mon Apr 21 16:07:17 2003 +0000 + + Check for NULL map before calling DRM(ioremapfree) on cleanup. Prevents an + oops if a map wasn't found (e.g. XFree86 Bugzilla #108) + +commit da35a90d99cf56a8ffc48f87754013d13e1cafcd +Author: David Dawes +Date: Thu Apr 17 18:52:05 2003 +0000 + + Add a Kconfig file as used in recent 2.5.x kernels. + +commit 21af3202874b5938e9c262a906f1eaba08e74b6e +Author: David Dawes +Date: Thu Apr 17 18:48:06 2003 +0000 + + Make Config.in look more like a recent 2.4.x kernel version. + +commit dbb7beb51d8adb4b5616fbcca7999b00d760b839 +Author: David Dawes +Date: Thu Apr 17 18:44:38 2003 +0000 + + Rework the Linux drm kernel module build to leverage off the standard + kernel build system. This is based on suggestions and examples from + David Woodhouse. This approach has the advantage that the build + requirements of a wider range of standard kernels are now supported + transparently, but the disadvantage of some extra complexity to handle + building against clean vendor-distributed kernel source trees. This has + been tested with some recent Red Hat and SuSE distributions. + +commit c2d7ff1bf98f92add98fb76b63d2bdb190f3cf2c +Author: David Dawes +Date: Thu Apr 17 18:41:28 2003 +0000 + + Bring some drm module changes over from the XFree86 trunk: + - Reset 'bound' flag for an agp entry after undbind succeeded in + drm_agpsupport.h (Egbert Eich). + - Ignore hw_lock for drm device if lock was set by a different instance (ie + Xserver) to prevent second server from spinning in driver release + function (currently only relevant for i8xx drm drivers) (David Dawes). + - Use the agpgart "key" for the unique handle for bindings rather than the + memory address (the key is guaranteed to be unique) (David Dawes). + +commit d1b7f551e6d582cd9c44d23883de1f6121907627 +Author: David Dawes +Date: Thu Apr 17 15:27:34 2003 +0000 + + Fix DRM module build on 2.5.41 and later kernels (tqueue -> workqueue). + +commit 48e389f3a5109383ca71c6c7f743b5107965f1d9 +Author: Jose Fonseca +Date: Thu Apr 10 14:58:53 2003 +0000 + + file drm_pci.h was initially added on branch mach64-0-0-5-branch. + +commit 244d4faa1d537a01292c4d2cf6c025b41710908d +Author: Eric Anholt +Date: Tue Apr 8 04:43:29 2003 +0000 + + file mach64_drv.c was initially added on branch mach64-0-0-6-branch. + +commit 353c84d2ddd2b4aff288a5ffd4a766e928322b28 +Author: Eric Anholt +Date: Tue Apr 8 04:23:49 2003 +0000 + + file Makefile was initially added on branch mach64-0-0-6-branch. + +commit 12a52fd8269a07103b6328483577f2487fd7cd01 +Author: Eric Anholt +Date: Tue Apr 8 04:09:47 2003 +0000 + + file drm_linux_list.h was initially added on branch mach64-0-0-6-branch. + +commit 10444e06d4f4edaf8e8cd9370f450ce7c047efac +Author: Leif Delgass +Date: Tue Apr 8 01:30:43 2003 +0000 + + Use list_entry() to get container struct from struct list_head pointers. + Build fix for RedHat 9 kernel (5 args to remap_page_range()). + +commit 3f7769921bd414f489d4487a5760a8d814efd51d +Author: Leif Delgass +Date: Sat Apr 5 19:49:16 2003 +0000 + + add 'SG' map type identifier string (pci scatter/gather) to /proc vm info + +commit 6f88a5351c3f0b8e657708b64060adb833c8a919 +Author: Eric Anholt +Date: Tue Apr 1 18:53:24 2003 +0000 + + Whitespace and remove a dead commented line. + +commit 8e51112fe06cc92a7e4d415c897d53008a935554 +Author: Leif Delgass +Date: Mon Mar 31 04:14:35 2003 +0000 + + Warning fix (use %p format for filp) + +commit 8926acac37025cd89dae2308c566c778fa1cc406 +Author: Eric Anholt +Date: Sun Mar 30 07:23:03 2003 +0000 + + Spelling fixes in comments. + Submitted by: Linus Torvalds + +commit aea0418d0db3338b81f83abf26df99dfd7ac85bc +Author: Eric Anholt +Date: Sat Mar 29 18:22:28 2003 +0000 + + Remove dead vma code and remove the unused devstate struct definition. + +commit 6ef79263b68402687ccc2b7447dd908c00e35057 +Author: Eric Anholt +Date: Sat Mar 29 03:38:47 2003 +0000 + + Add DRMFILE definitions and supply filp for BSD in the + post-drm-filp-0-1-branch world. The filp is a void * cast from the + current pid. This is a temporary solution which maintains the status + quo until a proper solution is implemented. + What is really needed is a unique pointer per open, hopefully with a device + private area. This can be done in FreeBSD for all entry points except + mmap, but is difficult (sys/dev/streams/streams.c is an example). I + have partially completed code for this but have not had time to debug, + so this is a temporary fix. + +commit e27d2f8c7cacf1e9994e9030c7ebb15dc4f4efff +Author: Eric Anholt +Date: Sat Mar 29 03:30:21 2003 +0000 + + buf->filp is a pointer, so make printf format args be %p not %d + +commit 1728bc637df023cce7b5abfeab2796ea481ca7e9 +Author: Keith Whitwell +Date: Fri Mar 28 14:27:37 2003 +0000 + + merged drm-filp-0-1-branch + +commit 37cb114bd92a17112033f4838e86857bcd466024 +Author: Keith Whitwell +Date: Wed Mar 26 16:37:47 2003 +0000 + + Add 2nd arg for DRM_FREE + +commit b3eb34e0ea0ec7c550df5fd6b25efcf9e35c53cd +Author: Alan Hourihane +Date: Tue Mar 25 11:36:43 2003 +0000 + + linux merge for drm + +commit c14006ba9f0522875327998215150067d8ca6ea7 +Author: Alan Hourihane +Date: Tue Mar 25 00:29:14 2003 +0000 + + XFree86 4.3.0 merge + +commit 0bd0dd2300e91707ae5a41a83eb37217fd8ad295 +Author: Eric Anholt +Date: Tue Mar 11 20:51:28 2003 +0000 + + Merge back from FreeBSD-current, adding FreeBSD ID tags to aid future + merging. Also includes an update to radeon PCI IDs. + +commit 638d45d2a0f5101e0b10a4f2761f9e25d2872055 +Author: Eric Anholt +Date: Sat Mar 8 05:05:41 2003 +0000 + + Make dma_addr_t an unsigned long not a uint32, don't try to use memrange + functions on FreeBSD non-x86, and remove a dead define. + +commit bf4b8ba753807eac22e7b14a5581c3c883d9473c +Author: Eric Anholt +Date: Thu Mar 6 19:21:23 2003 +0000 + + Remove the vbl signal code because it's untested (and has lock issues on + -current). + +commit a01d26f39d7e1fcf0ffafc04df832f72ae3d3896 +Author: Eric Anholt +Date: Wed Mar 5 06:06:27 2003 +0000 + + Put cdevsw initialization in line with FreeBSD-current. (From r1.10,r1.11 + of FreeBSD CVS) + +commit 3f786dbd1827d4f399bdf71e57d970ea8124bb0c +Author: Eric Anholt +Date: Wed Mar 5 06:04:50 2003 +0000 + + Update mmap handling for FreeBSD-current (Based on r1.3 of FreeBSD CVS). + +commit 1434bfe4a8e5fb7b6e8f52d3a732582e61216f68 +Author: Eric Anholt +Date: Wed Mar 5 04:14:52 2003 +0000 + + Remove a paste-o in DRM_SPINUNINIT and add a volatile to the compatibility + atomic_cmpset_int. + +commit 51e5f73d2a4020a1bae860057bae2b0eff8e9c70 +Author: Keith Whitwell +Date: Tue Mar 4 11:41:12 2003 +0000 + + DRM_FREE/2 patch from Philip Brown + +commit 708ecd0e4b4b1bc2f78dbb4e004bb4d5ec3effe8 +Author: Jose Fonseca +Date: Sun Mar 2 21:44:26 2003 +0000 + + file savage_drv.h was initially added on branch savage-0-0-1-branch. + +commit 2254ac21b8087c60fbf7d479ba3de2a1e7ac3d17 +Author: Jose Fonseca +Date: Sun Mar 2 21:44:26 2003 +0000 + + file savage_drm.h was initially added on branch savage-0-0-1-branch. + +commit ef6838e92e53530077f3fa946434306b8addde3e +Author: Jose Fonseca +Date: Sun Mar 2 21:44:26 2003 +0000 + + file savage_bci.c was initially added on branch savage-0-0-1-branch. + +commit eb0fd431c82b494cf62012b43306fa7a836f3865 +Author: Leif Delgass +Date: Fri Feb 28 19:39:46 2003 +0000 + + Update object targets + +commit 40de83c52cab6d343533ca0879a062b75ae7d096 +Author: Jose Fonseca +Date: Thu Feb 27 12:52:42 2003 +0000 + + file savage_drv.c was initially added on branch savage-0-0-1-branch. + +commit 1c3f7049057fcbc05a1c64e92329daf754c64691 +Author: Jose Fonseca +Date: Thu Feb 27 12:52:42 2003 +0000 + + file savage.h was initially added on branch savage-0-0-1-branch. + +commit 40bae8bec876086a61763012508298398b27b7c4 +Author: Leif Delgass +Date: Wed Feb 26 09:49:54 2003 +0000 + + file mach64_irq.c was initially added on branch mach64-0-0-6-branch. + +commit b487f30ea5c129eed1dd85f7ad79db3d2485b1f8 +Author: Eric Anholt +Date: Sat Feb 22 18:40:12 2003 +0000 + + Fix build on NetBSD. + +commit cfa778af9c70faea8c13e5cb7f80029eee0d074e +Author: Eric Anholt +Date: Fri Feb 21 23:23:09 2003 +0000 + + Merge from bsd-4-0-0-branch. + +commit a64472d18493de575a7636704b45babe7b4b4572 +Author: Eric Anholt +Date: Sun Feb 16 19:03:04 2003 +0000 + + file mach64_drm.h was initially added on branch mach64-0-0-6-branch. + +commit 5bf6a26aeb2a89b4ed599361f60cb68bf45e3956 +Author: Eric Anholt +Date: Sun Feb 16 19:03:04 2003 +0000 + + file mach64_state.c was initially added on branch mach64-0-0-6-branch. + +commit bd6120a28c30fa0b62c8c07a2fc7a6790834abf3 +Author: Eric Anholt +Date: Sun Feb 16 19:03:04 2003 +0000 + + file mach64_drv.h was initially added on branch mach64-0-0-6-branch. + +commit afcfefa6dc296b4863b1c83ebcf8143750af65ad +Author: Eric Anholt +Date: Sun Feb 16 19:03:04 2003 +0000 + + file mach64_dma.c was initially added on branch mach64-0-0-6-branch. + +commit 314d1d2cbee3fe0851d914c57cc09bf388e8ac37 +Author: Eric Anholt +Date: Sun Feb 16 19:03:04 2003 +0000 + + file mach64.h was initially added on branch mach64-0-0-6-branch. + +commit 639c2d813f91c80aca66b13242b8d45a1ea986e8 +Author: Michel Daenzer +Date: Sat Feb 8 18:02:02 2003 +0000 + + reclaim DMA buffers in DRIVER_RELEASE() (Felix Kühling) + +commit fac2ed4d10e4d8283f818989df5d5722a447aac4 +Author: Michel Daenzer +Date: Thu Feb 6 18:20:00 2003 +0000 + + fix EAGAIN handling in radeon_cp_dispatch_texture() (fixes corruption of + large textures), and get rid of superfluous local y variable + +commit b88cc5da26cf1478e425a6398456b52e27f53626 +Author: Michel Daenzer +Date: Tue Feb 4 19:28:52 2003 +0000 + + disable strict aliasing for building the DRM + +commit 73bf29a6c14d12f86fbce48f6f6bace0de6732a6 +Author: Michel Daenzer +Date: Tue Feb 4 19:20:18 2003 +0000 + + fix PCI and AGP posting problems (based on testing by Chris Ison and + suggestions by Benjamin Herrenschmidt and Arjan van de Ven) + remove radeon_flush_write_combine() which has been unused for a while + +commit f13af50838a2a207269ef46c3561ca1250dc6c12 +Author: Michel Daenzer +Date: Tue Feb 4 15:56:37 2003 +0000 + + only acknowledge interrupts we handle - others could be used outside the + DRM + +commit f3751850c8b5b4216c460474147e0dcfc26a144e +Author: Keith Whitwell +Date: Mon Feb 3 14:30:32 2003 +0000 + + Fix size of VERTEX2 ioctl struct (Egbert Eich) + +commit c7d471b6ae936127311a816a8d15b4565746af48 +Author: Michel Daenzer +Date: Sun Feb 2 03:06:47 2003 +0000 + + don't inflate relative vblank sequence numbers on repeated calls (e.g. when + interrupted by a signal) + +commit 9b9b099471580616e1685bae725f2c297179ae99 +Author: Leif Delgass +Date: Sun Jan 26 22:25:35 2003 +0000 + + Add cast to avoid void * arithmetic warning + +commit 66f57c403c012f55126817bc21d40346d29d2d35 +Author: Eric Anholt +Date: Fri Jan 24 00:49:15 2003 +0000 + + Fix build on -current: Provide M_WAITOK define. + +commit 77ea378b09a86a9fe73d0ecef40f5570068c9af0 +Author: Eric Anholt +Date: Thu Jan 16 06:20:44 2003 +0000 + + Fix radeon for BSD. + +commit 826aad0aba648befe09592f154f75db5009a0cd9 +Author: Michel Daenzer +Date: Sat Jan 11 20:58:20 2003 +0000 + + limit number of pending vblank signals to 100 to prevent DoS, and minor + cleanups + +commit 6f940bc3f8aeb09925354445e92e9c0e74515b13 +Author: Jeff Hartmann +Date: Sat Jan 11 05:42:37 2003 +0000 + + file agp_30_symbols.h was initially added on branch agpgart_2_0_branch. + +commit a1fc6af2d8937fcc4eef25119d777e168e62b2ea +Author: Keith Whitwell +Date: Fri Jan 10 17:04:21 2003 +0000 + + Note that radeon_do_cp_idle() can fail, cope with it. + +commit 4b3051d3f606faf1a78ac85236119a1d2e10fdc7 +Author: Rik Faith +Date: Mon Jan 6 07:38:25 2003 +0000 + + [TRIVIAL] [TRIVIAL PATCH 2.5.48] Remove unused function from radeon_mem.c + Submitted by Rusty Trivial Russell + +commit 320802ebc145c0b821979dc587cd7e90b10b2d55 +Author: Keith Whitwell +Date: Fri Jan 3 11:22:23 2003 +0000 + + more cleanups, free mem heap data on last client exit + +commit 7419aa6e3f639ee47879824f387117d28b4de013 +Author: Keith Whitwell +Date: Thu Jan 2 18:59:43 2003 +0000 + + Bump radeon drm version nr on recent interface relaxation + +commit 14e831baf4ea2a412c9173cd9ec16b4928284232 +Author: Keith Whitwell +Date: Thu Jan 2 18:41:02 2003 +0000 + + Remove printk + +commit 208c0779b65242159bbb87153269faef9370670c +Author: Keith Whitwell +Date: Thu Jan 2 18:38:07 2003 +0000 + + Make the radeon drm module better at cleaning up after itself if all the + clients (particularly the X server) exit without doing so for it. + +commit ab9eb685c002bc875e9a7d81b7ac7bd5fd0be1d4 +Author: David Dawes +Date: Mon Dec 16 19:18:51 2002 +0000 + + file i830_irq.c was initially added on branch mesa-4-0-4-branch. + +commit 05f761fa4fe6d9b34b44e7cfe57a8e11263b0e3c +Author: David Dawes +Date: Thu Dec 12 22:20:30 2002 +0000 + + enums should be ints + +commit 786228bd26d56c13fc2655431ee5ca2d4d0c9863 +Author: Keith Whitwell +Date: Thu Dec 12 16:45:31 2002 +0000 + + bring in jantorial changes from 2.5.51 + +commit fd621fd4a0c0033365353b6d33f132c7ef49b359 +Author: Keith Whitwell +Date: Wed Dec 11 13:40:27 2002 +0000 + + remove agpgart informational + +commit b03fa556b2c7e19d7021c017e35aaacaf24e5694 +Author: Keith Whitwell +Date: Fri Dec 6 12:22:43 2002 +0000 + + Rewrite radeon_cp_dispatch_texture() to avoid pingponging back to userspace + when issue large (multi-buffer) uploads. + +commit a885d6786f40fd0c4dbcb09a17f6e103d0949ed7 +Author: Eric Anholt +Date: Fri Dec 6 02:27:30 2002 +0000 + + Add vblank signal code for BSD DRM. Untested so far, but working with a + 4.2.0 userland at least. + +commit 85025d4f2ad25258fb7678395b8c7ce1be1f0063 +Author: Michel Daenzer +Date: Wed Dec 4 15:39:53 2002 +0000 + + further vertical blank interrupt cleanups: remove unused variable, + non-ambiguous variable names, don't express subtraction in + unnecessarily complicated ways + +commit 4acba63bb7045e6bf665580cf6cea111f0786f77 +Author: Michel Daenzer +Date: Tue Dec 3 00:43:47 2002 +0000 + + vertical blank interrupt cleanups: use spinlock instead of semaphore, send + signal directly from interrupt handler instead of using a taskqueue + (based on feedback by Linus Torvalds) + +commit 40891ac190fb74f389ea1a9758249a2f642fd99b +Author: Michel Daenzer +Date: Sat Nov 30 14:24:07 2002 +0000 + + vertical blank ioctl can send signal instead of blocking + +commit c869f4a1e59c4fa0bed5681cad5ad49e685603eb +Author: Brian Paul +Date: Mon Nov 25 16:03:20 2002 +0000 + + added missing return fd (Alexander Stohr) + +commit a654424ca16dca5d27e91592e2082d1381f6d5f5 +Author: Keith Whitwell +Date: Mon Nov 25 09:34:47 2002 +0000 + + Silence the radeon_freelist_get 'returning NULL' message. It's not an error + & just confuses people. + +commit b96f48a89c8962343ee75b0961a06453d0f8b355 +Author: Michel Daenzer +Date: Sat Nov 23 11:58:33 2002 +0000 + + allow unprivileged clients to use the GETPARAM ioctl (Wang WenRui) + +commit e656655a361acf73c5652fcef8cf6ba61dfe7a50 +Author: Eric Anholt +Date: Wed Oct 30 06:10:34 2002 +0000 + + Kernel support for vblank syncing on Rage 128 and Matrox. + +commit 344c7f6b412c19c963c33709f0d4a3a7205e1d79 +Author: Jens Owen +Date: Tue Oct 29 20:29:05 2002 +0000 + + updated e-mail addresses for Keith, Alan and Jens + +commit 5e1b8ed88ae8fb8b697515140f7a00d022ac2db0 +Author: Michel Daenzer +Date: Tue Oct 29 13:49:26 2002 +0000 + + preserve CRTC{,2}_OFFSET_CNTL in 2D driver to avoid bad effects when + pageflipping after a mode switch + take current page into account in AdjustFrame(); writing the CRTC offset + via the CP was probably a bad idea as this can happen asynchronously, + reverted + take frame offset into account when flipping pages + handle CRTC2 as well for pageflipping (untested) + preserve GEN_INT_CNTL on mode switches to prevent interrupts from getting + disabled + +commit 10900dab7caa593a54d76e5f6abdc3df9bdd0a04 +Author: Eric Anholt +Date: Tue Oct 29 03:20:21 2002 +0000 + + Use bus_alloc_resource/bus_release_resource more properly: save the rid + returned by alloc. + +commit ff25e7016c74ed0be5d47be5bf1937335da2bbf4 +Author: Brian Paul +Date: Mon Oct 28 19:05:40 2002 +0000 + + merge from mesa-4-1-branch to get cube-map registers. bumped version to 1.7 + +commit 516392beff156f87b466ff7931e5573a3a931ca0 +Author: Eric Anholt +Date: Sun Oct 27 05:25:50 2002 +0000 + + s/udelay/DRM_UDELAY/ + +commit 9f21f02217dd8b81886f042ce1af99d61de9a218 +Author: Eric Anholt +Date: Sun Oct 27 05:24:33 2002 +0000 + + Catch up to -current. + +commit b3a20ce219b353aa3e2b7f3b47ffd28b279557c7 +Author: Alan Hourihane +Date: Tue Oct 22 23:38:53 2002 +0000 + + final part of XFree86 4.2.99.2 merge + +commit ff4baa69da278b7f616063f37fbd27febf3eb211 +Author: Alan Hourihane +Date: Tue Oct 22 13:43:45 2002 +0000 + + Import of XFree86 4.2.99.2 + +commit 5e9fad35880e89d428ba917d842d0e9ed9a1be6b +Author: Eric Anholt +Date: Mon Oct 14 23:35:24 2002 +0000 + + Fix reversed test that broke vblank waiting on FreeBSD. + Pointy hat to: anholt + +commit 3d69766ea6df4ab1837f5270beafb13c70ec61e6 +Author: Keith Whitwell +Date: Thu Oct 10 08:25:40 2002 +0000 + + Jonny Strom's mga_dma.c patch + +commit 2af90a581d20c983446d354051f0f098a5d4eacb +Author: Brian Paul +Date: Wed Oct 9 16:29:01 2002 +0000 + + replaced max() macro with conditional expression + +commit aa1ca406d637a1eabbff272c0508bed5eb1147a1 +Author: Keith Whitwell +Date: Tue Oct 8 08:32:06 2002 +0000 + + Fix error condition... + +commit a653224403a9c85b1406697e725226e0d477042a +Author: Keith Whitwell +Date: Tue Oct 8 08:29:47 2002 +0000 + + Call pci_enable_device() in DRM(irq_busid). + +commit 381e0fe7f8ee5a9500fdb91d83ce45915b64db5f +Author: Keith Whitwell +Date: Wed Oct 2 07:55:27 2002 +0000 + + Free correct block in free_block (K. Rasche) + +commit 8c14585fc33f2af781261303780c0df70fbe0db2 +Author: Michel Daenzer +Date: Tue Oct 1 17:31:20 2002 +0000 + + fix wait condition for vertical blank IRQs + +commit 537f2208f00069913c161750baef82964d0e870e +Author: Eric Anholt +Date: Sun Sep 29 23:56:17 2002 +0000 + + Remove some noise being spit to the console. + +commit 506c1c02a43970e8ae891c9015eba7ab581d08f3 +Author: Eric Anholt +Date: Sun Sep 29 23:21:55 2002 +0000 + + Make our set_bit and friends match linux better (cleans up some warnings) + +commit efda4ce3539c9adf5fc798bb5e0ba5e8ce804afb +Author: Eric Anholt +Date: Sun Sep 29 22:47:08 2002 +0000 + + warnings cleanup + +commit 33a51d8518c37833a83225b47ad0b435050edeae +Author: Eric Anholt +Date: Sun Sep 29 22:39:34 2002 +0000 + + Fix some of my silliness in DRM_WAIT_ON (not returning EINTR). + +commit 899df4f53009d8484648ca12133a6ef8b1bd2d52 +Author: Keith Whitwell +Date: Sun Sep 29 21:22:01 2002 +0000 + + Turn boxes off again + +commit 9243e642dabc30ddf4b1743acb8cd4e9e905f351 +Author: Keith Whitwell +Date: Sun Sep 29 21:19:01 2002 +0000 + + Move os-dependent stuff out of radeon_irq.c + +commit e6901cad696cf58ee9f1a48bdc7e9fa047824f8a +Author: Eric Anholt +Date: Sun Sep 29 20:48:18 2002 +0000 + + Fix up BSD irq handling. + +commit ec48dfa83599fa6061bb9cc566f8d8dc1727aced +Author: Michel Daenzer +Date: Sun Sep 29 00:12:28 2002 +0000 + + add support for 16K and 64K page sizes (Bjorn Helgaas) + +commit a33d42e2ba08a97a434c25980449f4e027d0072b +Author: Michel Daenzer +Date: Fri Sep 27 21:47:52 2002 +0000 + + make SW interrupts more robust: write sequence number to scratch register, + acknowledge any lost interrupts before waiting + +commit cc9a169d08c00975f623d717737b499defb4938e +Author: Michel Daenzer +Date: Thu Sep 26 12:49:18 2002 +0000 + + DRM(vblank_wait) is driver specific + +commit 97961e2c65773328fe9c2e1d66e4a0b8a253d54d +Author: Eric Anholt +Date: Thu Sep 26 07:45:07 2002 +0000 + + BSD vblank framework. + +commit 770d045d25728be51534b930afdfa36f3ffddbfc +Author: Eric Anholt +Date: Thu Sep 26 07:21:05 2002 +0000 + + Fix one warning. + +commit f40674ea9f3e3c17d632de90d7e35da5640a55b2 +Author: Michel Daenzer +Date: Wed Sep 25 19:48:51 2002 +0000 + + change RADEON_PARAM_IRQ_ACTIVE to RADEON_PARAM_IRQ_NR + +commit 55acd0d5a64a2ee6b0cecc75872fbf8c4bb42a0c +Author: Michel Daenzer +Date: Wed Sep 25 17:18:19 2002 +0000 + + common ioctl to wait for vertical blank IRQs + +commit f1c8fe95578e15d5eece6ad52540ce2c7c671f70 +Author: Keith Whitwell +Date: Mon Sep 23 17:26:43 2002 +0000 + + merged r200-0-2-branch to trunk + +commit cfa1a918b6d6b2d0fd9ae0f58f5b86a15c443dcb +Author: Michel Daenzer +Date: Sat Sep 21 23:18:54 2002 +0000 + + make sure we never oops because the hardware lock pointer in the sigdata + structure is out of date + +commit c4318a5c642d15ad3847a0b7a3185abf0c1ca219 +Author: David Dawes +Date: Wed Sep 11 00:57:49 2002 +0000 + + - Fix various bugs in the DRI support for the i830 and i845G (Keith + Whitwell). + - Major rework of the 2D i830/i845G support, including: + - Improve VESA mode selection, and fix refresh rate selection. + - Don't duplicate functions provided in the vbe modules. + - Don't duplicate functions provided in the vgahw module. + - Rewrite memory allocation. + - Rewrite initialisation and save/restore state handling. + - Decouple the i810 support from i830 and later. + - Remove various unnecessary hacks and workarounds. + - Fix an 845G problem with the ring buffer not in pre-allocated memory. + - Fix screen blanking. + - Fix some HW cursor glitches, and turn HW cursor off at VT switch and + exit. + - Don't attempt to use the i830's function 1 entity. + - Fix problems with option handling. (David Dawes). + - Add mode VBE-aware mode handling functions to the vbe module (David + Dawes). + +commit 9797f0fd172c7d87e009dbfe7603c9df48509394 +Author: Eric Anholt +Date: Fri Aug 30 23:49:25 2002 +0000 + + Remove some extra symlinking for kernel module building that hasn't been + needed since 2000. + +commit b248c02c4ffaaaef4c91d8024808c35bcbfa303b +Author: Eric Anholt +Date: Fri Aug 30 21:34:03 2002 +0000 + + Remove this one too: it'll be used from the linux version (if ever) + +commit d51ec6b9728e8da473fb06e23424a1f6c0ee8e9b +Author: Eric Anholt +Date: Fri Aug 30 21:06:21 2002 +0000 + + Remove compat functions for FreeBSD for drivers which weren't available in + X4.2 + +commit be88ab60dfbacddbc424c7e6bc558abf13eafa9d +Author: Keith Whitwell +Date: Fri Aug 30 07:55:25 2002 +0000 + + file radeon_irq.c was initially added on branch r200-0-2-branch. + +commit 4fcde1efc16ef0849c7aa61d568ef5577e2f1920 +Author: Keith Whitwell +Date: Thu Aug 29 07:34:49 2002 +0000 + + standardize use of __FUNCTION__ (Linus) + +commit 22c1ca1fd5116d55c81bbfdeccd995dc19572a8f +Author: Keith Whitwell +Date: Wed Aug 28 08:47:39 2002 +0000 + + Turn boxes off. + +commit 8a8cfd38df9a48069c4ca56006d219e0eb8ca59c +Author: Eric Anholt +Date: Wed Aug 28 04:33:02 2002 +0000 + + Remove i8x0 files from the BSD side. These were not actually ported, and + when they do get ported most of them won't live in these directories. + +commit fa560b4847fc89aa68251236d3843b97518b1853 +Author: Keith Whitwell +Date: Tue Aug 27 12:16:32 2002 +0000 + + file radeon_mem.c was initially added on branch r200-0-2-branch. + +commit e4830ba553eda00783261073cf4082176b4c2fe2 +Author: Eric Anholt +Date: Tue Aug 27 03:56:10 2002 +0000 + + Remove drm_linux.h, it's no longer used. + +commit 5e81d590d557672376795011b9d78e93d10e2f7f +Author: Eric Anholt +Date: Tue Aug 27 01:22:55 2002 +0000 + + Include non-radeon modules in the build. + +commit 48cc350e21acd2b4b03c76937e2861af5271435a +Author: Keith Whitwell +Date: Mon Aug 26 22:16:18 2002 +0000 + + merged r200-0-1-branch + +commit a697941d4c35e0287c51f1a5cad5c2aa32ae9159 +Author: Leif Delgass +Date: Thu Aug 22 19:35:31 2002 +0000 + + Don't (re)define vmalloc_to_page for kernel >= 2.4.19, as it has been + backported from 2.5.x. Also fix a couple of incorrect + LINUX_VERSION_CODE tests and fix header dependency for r128, radeon + when building without AGP. + +commit 2febcafd66adfe0728f93e4b9b2954d793f71459 +Author: Leif Delgass +Date: Thu Aug 22 18:43:39 2002 +0000 + + SetPageLocked only defined in 2.5.x (x=?), use LockPage for 2.4.x (x>=9). + Also apply build fixes from i810_dma.c to i830_dma.c + +commit 18d3fac990b9f3b5820306129feb5563b5d207f4 +Author: Jose Fonseca +Date: Wed Aug 21 14:09:28 2002 +0000 + + Change the linux kernel version condition in the i810 driver (according to + Alan Cox) + +commit 77c35c043a8d50244d4fbaa4f2b5d0b7d4fd856f +Author: Eric Anholt +Date: Wed Aug 21 07:14:21 2002 +0000 + + Remove drm_linux.h, move the two useful defines into drm_drv.h (the only + place they're used). Use fd locking on -current. Actually copy in data + from userspace to kernel in the linux-compat ioctl path. Make sure + ioctl sizes are as expected in the ioctl handler functions. + +commit 8eedac58332094c72caf1fc6c41312e8ce1728b7 +Author: Leif Delgass +Date: Wed Aug 21 01:14:43 2002 +0000 + + add missing include (for udelay), remove unused counter. + +commit 3165128fc461fdadf34b7f4bbd393fa076c1ae14 +Author: Michel Daenzer +Date: Wed Aug 21 00:09:32 2002 +0000 + + TRUE and FALSE don't seem to be defined everywhere... + +commit 33d57137daece1bc5b1e8cc0a11e45a9d5974939 +Author: Keith Whitwell +Date: Mon Aug 12 07:26:00 2002 +0000 + + zero-cliprect case patch from Jacek + +commit d0ac4e5ad0481eb634b3b811a94f4a2b6587e479 +Author: Michel Daenzer +Date: Sun Aug 11 15:56:44 2002 +0000 + + test scratch register writeback before using it + +commit d2f2b42f1d206fd248ada48ce2c498e31351ab33 +Author: Eric Anholt +Date: Thu Aug 8 21:23:46 2002 +0000 + + Try to open the /dev/dri/cardX device once, then only if it fails check the + device number and recreate it if necessary. Fixes xf86drm.c to allow + linux binaries to be used for emulation on FreeBSD. + +commit 977b420d5dc66db3d4335132861a1eff3747b49a +Author: Rik Faith +Date: Tue Aug 6 18:00:57 2002 +0000 + + Updates from Rusty Russell to: + 1) Remove redundant header inclusion + 2) Silence bitop on non-long argument warnings (change int to long) + 3) Move to ISO C (gcc 2.6) initializers (accepted by older gccs also) All + of these are syntax changes that should not impact functionality. + +commit 881a9b214d033a1e153f61996645bdaa37eb87d8 +Author: Michel Daenzer +Date: Thu Jul 18 23:17:13 2002 +0000 + + fix off-by-one error for right bottom corner in radeon_emit_clip_rect() + (Jacek Rosik) + +commit 8fa8db126a6aa180fd44ae0be0e720722af69e1d +Author: Tim Smith +Date: Wed Jul 17 08:30:36 2002 +0000 + + Workaround for Radeon lockups on fast machines + +commit 9a3a3143ce41c72b4de2721cf16025f11ca334ca +Author: Michel Daenzer +Date: Sun Jul 14 20:26:52 2002 +0000 + + bump DRM minor and check it before using the GETPARAM ioctl to obtain + scratch register values + +commit fd86ac9561dc77ef23e19d28723b40c72bdf1e97 +Author: Michel Daenzer +Date: Thu Jul 11 20:31:12 2002 +0000 + + Don't read scratch registers directly, obtain the values via the GET_PARAM + ioctl. The DRM reads them from memory addresses the chip writes to on + updates. Fall back to reading the registers directly with an old DRM. + (Tim Smith, cleanups by myself) + +commit 2ec9c15d8ce45d95ef395a4fff114109c908a572 +Author: Eric Anholt +Date: Tue Jul 9 02:40:38 2002 +0000 + + Increase the linux-compatibility max ioctl. + +commit 9ceabc585a20a3f992f2b3852d476df81855967a +Author: Alan Hourihane +Date: Sat Jul 6 09:43:12 2002 +0000 + + remove obsolete files + +commit 59c07e447b18708757375d969f8eef5abd3c9a93 +Author: Alan Hourihane +Date: Fri Jul 5 08:58:15 2002 +0000 + + remove files missed by merge + +commit 74ef13fd009b9e37956e4207d0a5ed92f4b5e39a +Author: Alan Hourihane +Date: Fri Jul 5 08:31:11 2002 +0000 + + merged bsd-3-0-0-branch + +commit 24025ca5f78c15ced14490532b4410730353d2c1 +Author: Keith Whitwell +Date: Thu Jul 4 12:03:15 2002 +0000 + + Fix some more pageflipping issues -- existing code was doing MMIO writes + while ring was active. There is still an MMIO read in there, but I + haven't seen any lockups that could be attributed to it. + +commit ca81e1334edebb90b0528baad089fbc6df937fb6 +Author: Keith Whitwell +Date: Thu Jul 4 11:55:44 2002 +0000 + + Revert SET_SCISSORS change. + +commit cc45cc060963356edd832d1bbdf21da46e01c8fb +Author: Tim Smith +Date: Tue Jul 2 21:34:25 2002 +0000 + + Fix lockup on faster machines when drawing in multiple clip rectangles + (e.g. when part of a 3D window is obscured by another window) + +commit bb91bc0879ccc1981c49fa761e9bd58bceb1e5cd +Author: Keith Whitwell +Date: Thu Jun 27 17:56:39 2002 +0000 + + Set pfCurrentPage on cleanup_pageflip + +commit 8aecdbea7660ae184827a0812fc4bbd953279c5b +Author: Alan Hourihane +Date: Tue Jun 25 12:13:20 2002 +0000 + + gamma_alloc -> DRM(alloc) + +commit f626cf76e61313152e57334c7f172de97235d169 +Author: Max Lingua +Date: Tue Jun 25 11:20:36 2002 +0000 + + file s3v.h was initially added on branch s3virge-0-0-1-branch. + +commit 4cdcbd6c2f8f7026fbf2435001fc1e90de01505c +Author: Max Lingua +Date: Tue Jun 25 11:20:36 2002 +0000 + + file s3v_dma.c was initially added on branch s3virge-0-0-1-branch. + +commit 4073aa694c2de2f65f37afef93abeab139c1aa30 +Author: Max Lingua +Date: Tue Jun 25 11:20:36 2002 +0000 + + file s3v_drm.h was initially added on branch s3virge-0-0-1-branch. + +commit 5f8b0028a26cdbe0996abc243602010ae8af755e +Author: Max Lingua +Date: Tue Jun 25 11:20:36 2002 +0000 + + file s3v_drv.c was initially added on branch s3virge-0-0-1-branch. + +commit 688082d6564644f2f64a44105c872cc57476a1f6 +Author: Max Lingua +Date: Tue Jun 25 11:20:36 2002 +0000 + + file s3v_drv.h was initially added on branch s3virge-0-0-1-branch. + +commit 978136f2f4dd12d1828ab41db5343ce5fccd52a9 +Author: Max Lingua +Date: Tue Jun 25 11:20:36 2002 +0000 + + file s3v_regs.h was initially added on branch s3virge-0-0-1-branch. + +commit 663c9a152a868ca9e1dbd6ab000f2da273d737ea +Author: Eric Anholt +Date: Fri Jun 21 06:08:46 2002 +0000 + + file radeon_state.c was initially added on branch bsd-3-0-0-branch. + +commit 3fe7fb316c6f160ec8b6ef2a8ebf159e71cd2283 +Author: Eric Anholt +Date: Fri Jun 21 06:08:46 2002 +0000 + + file radeon.h was initially added on branch bsd-3-0-0-branch. + +commit f8794f23f6d9318a9797949f1761119706baae42 +Author: Eric Anholt +Date: Fri Jun 21 06:08:46 2002 +0000 + + file radeon_drm.h was initially added on branch bsd-3-0-0-branch. + +commit 1942da19d46f67afbdf3da8103f3260377bbbe89 +Author: Eric Anholt +Date: Fri Jun 21 06:08:46 2002 +0000 + + file mga_dma.c was initially added on branch bsd-3-0-0-branch. + +commit baf55c1b8b5560104e29e5f4089ccdde4bb111db +Author: Eric Anholt +Date: Fri Jun 21 06:08:46 2002 +0000 + + file mga_drv.h was initially added on branch bsd-3-0-0-branch. + +commit df6e570e4de5e57173d4b3b63ddaa0ba1a11e15e +Author: Eric Anholt +Date: Fri Jun 21 06:08:46 2002 +0000 + + file mga_ucode.h was initially added on branch bsd-3-0-0-branch. + +commit 2a0545aa19db1d861290df07709cbd58a2a820f3 +Author: Eric Anholt +Date: Fri Jun 21 06:08:46 2002 +0000 + + file mga_warp.c was initially added on branch bsd-3-0-0-branch. + +commit 0ca7468d0602e46aead3e645de714345cb75c5f3 +Author: Eric Anholt +Date: Fri Jun 21 06:08:46 2002 +0000 + + file mga.h was initially added on branch bsd-3-0-0-branch. + +commit d29446a3002a8f60736ab3bcb7a1f22a8f2818f0 +Author: Eric Anholt +Date: Fri Jun 21 06:08:46 2002 +0000 + + file mga_state.c was initially added on branch bsd-3-0-0-branch. + +commit 1c9c08717a09cdb5fa9b40e7ed43efa7f76b82f3 +Author: Eric Anholt +Date: Fri Jun 21 06:08:46 2002 +0000 + + file radeon_drv.h was initially added on branch bsd-3-0-0-branch. + +commit 5dd77d6e49205ff5ac71d832de270681ba186558 +Author: Eric Anholt +Date: Fri Jun 21 06:08:46 2002 +0000 + + file mga_drm.h was initially added on branch bsd-3-0-0-branch. + +commit a3ddb601df69116be8e40481471b523e163bf65b +Author: Eric Anholt +Date: Fri Jun 21 06:08:46 2002 +0000 + + file radeon_cp.c was initially added on branch bsd-3-0-0-branch. + +commit 9e3d3c9541bc167831841156b99f31cfa5cb39be +Author: Eric Anholt +Date: Wed Jun 19 04:01:55 2002 +0000 + + file r128_state.c was initially added on branch bsd-3-0-0-branch. + +commit c4f11163699b1046ec51b27440154fd3ad4bb727 +Author: Eric Anholt +Date: Wed Jun 19 04:01:54 2002 +0000 + + file r128_drv.h was initially added on branch bsd-3-0-0-branch. + +commit 89181b9c599988e9b46f2a3d1de5ec47b8cc8c43 +Author: Eric Anholt +Date: Wed Jun 19 04:01:54 2002 +0000 + + file r128_cce.c was initially added on branch bsd-3-0-0-branch. + +commit 2015f551378e19bc3a1727de2c3f68cec4ac1a42 +Author: Eric Anholt +Date: Wed Jun 19 04:01:54 2002 +0000 + + file r128.h was initially added on branch bsd-3-0-0-branch. + +commit 5465239b0c422b4f8c1ef13e4353877fa9229993 +Author: Eric Anholt +Date: Wed Jun 19 04:01:54 2002 +0000 + + file r128_drm.h was initially added on branch bsd-3-0-0-branch. + +commit 063d0a30c2a9899ae52d50ad5d37d6171e37e3f8 +Author: Michel Daenzer +Date: Tue Jun 18 22:40:26 2002 +0000 + + endianness fixes + +commit 1cb07189420a529a43ad390731f8365a0805a9bd +Author: Eric Anholt +Date: Mon Jun 17 22:18:00 2002 +0000 + + file drm_os_netbsd.h was initially added on branch bsd-3-0-0-branch. + +commit 2dcada361db7db00bf0796e399b4188578e3efbe +Author: Keith Whitwell +Date: Wed Jun 12 15:50:28 2002 +0000 + + merged tcl-0-0-branch + +commit 5676a2a6105afdfc343e7f36f3c87e528a9d14b3 +Author: Michel Daenzer +Date: Sun Jun 2 16:00:45 2002 +0000 + + fixes for big endian in general and powerpc in particular + +commit 6ac48cddd0a074c77de0ab3dfc1661352b6f0c26 +Author: Jeff Hartmann +Date: Wed May 29 21:21:50 2002 +0000 + + Import Mesa 4.0 port of I830M/I845G 3D driver funded by 2d3d. Import + Lastest i810 ddx driver changes from XFree86 CVS to support the I845G. + Fixup warnings in I830M kernel driver. + -Jeff + +commit 96b22f57ea9fa0dca36062d56c8f205e5b08fd84 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file r128_drv.c was initially added on branch bsd-3-0-0-branch. + +commit 8e2b1e79da105a406cc33d8bb3b8cab35337647e +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file mga_drv.c was initially added on branch bsd-3-0-0-branch. + +commit 468b72512aa0e70de60506e4f03ea6d365e56267 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file tdfx.h was initially added on branch bsd-3-0-0-branch. + +commit ba9503de430f8e0a34bf9ed8c2dc9a635959eeb0 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file i830_dma.c was initially added on branch bsd-3-0-0-branch. + +commit d1c2922d76ab81bde00e504b179a7afb39b6fc78 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file i830.h was initially added on branch bsd-3-0-0-branch. + +commit 8a0fe9be3463e9244055847e5cd4f8df485526e8 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file i830_drv.c was initially added on branch bsd-3-0-0-branch. + +commit dbf4b0aecb2d6efd9f9fafd3fd7c7eae6c59f3ba +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file i830_drv.h was initially added on branch bsd-3-0-0-branch. + +commit 205e33909d26b587e36527b3fae6c4ed9cddab34 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file i810_drv.h was initially added on branch bsd-3-0-0-branch. + +commit e8ba43d3ac7982cc16b4cdc81671375f41e66a6f +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file radeon_drv.c was initially added on branch bsd-3-0-0-branch. + +commit f6126878dce5bc800252c9a8d095e9ac30f4d5ca +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file i810_dma.c was initially added on branch bsd-3-0-0-branch. + +commit 8fc7367069eaf14e30010f5a56fc4cbac15e39da +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file i810_drv.c was initially added on branch bsd-3-0-0-branch. + +commit 8afc2de290e1aed0377c097d05077d9aac2e4897 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file i810.h was initially added on branch bsd-3-0-0-branch. + +commit 76c315e7e09e84b135033c7bad74b1297ee72fe6 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file gamma.h was initially added on branch bsd-3-0-0-branch. + +commit 073cf3ae4818f8f1b720dbc58bdcf61ce62d11e0 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file mga.h was initially added on branch bsd-3-0-0-branch. + +commit d10db84928384084d9ab17bcca3d2880ecd611de +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file mga_dma.c was initially added on branch bsd-3-0-0-branch. + +commit c5b8f939db83d8de9c983b622c6003eca36ea4d2 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file mga_drv.h was initially added on branch bsd-3-0-0-branch. + +commit abbe04f64fab2a9fa2099756b776ec634df9fd82 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file mga_state.c was initially added on branch bsd-3-0-0-branch. + +commit 8797372f642018de3b5d7142e9c9f51d4eab999d +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file mga_ucode.h was initially added on branch bsd-3-0-0-branch. + +commit 49a57237e029892ee788f059c99bad5ccf9df1a1 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file mga_warp.c was initially added on branch bsd-3-0-0-branch. + +commit 3ddd3c649de865d44ad737b8510d46ce273bd728 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file r128.h was initially added on branch bsd-3-0-0-branch. + +commit c57397bf62734000673411231c8ac2b35f731e39 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file r128_cce.c was initially added on branch bsd-3-0-0-branch. + +commit eea2997098406bfd5a9dd4f93034e5715d5a641e +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file r128_drv.h was initially added on branch bsd-3-0-0-branch. + +commit 47d39609fe713e57ab9c1391f5ac2c2be71594df +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file r128_state.c was initially added on branch bsd-3-0-0-branch. + +commit 3e15d0e63c67158742f2c5434333213923f7b0fe +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file radeon.h was initially added on branch bsd-3-0-0-branch. + +commit 731dbf2dfccbf44f375f58d7dda91d9b2f1ab9ce +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file radeon_cp.c was initially added on branch bsd-3-0-0-branch. + +commit c12d19453954dd2ade830fac50bd4669954c7aab +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file radeon_drv.h was initially added on branch bsd-3-0-0-branch. + +commit 69e99d05a29d91e87f32affdc4776f76552b5783 +Author: Eric Anholt +Date: Wed May 29 08:44:52 2002 +0000 + + file radeon_state.c was initially added on branch bsd-3-0-0-branch. + +commit cd375832813a66491f43c3f5e56ed74670955e43 +Author: Alan Hourihane +Date: Fri May 17 08:35:47 2002 +0000 + + Remove some older Linux 2.3.99 code + +commit 91d7b17e82e8d8659405832a3cd1e7a904ad283f +Author: Alan Hourihane +Date: Fri May 17 08:21:34 2002 +0000 + + same udelay fixes + +commit 9e67da5626b683df58f2041fdb0f743eb4da7036 +Author: Keith Whitwell +Date: Thu May 16 23:47:15 2002 +0000 + + Allow drm to build under 2.4 and 2.5(.14) + +commit 3903e5ac94c07cf31f0bc24eff5011ef8cc7afba +Author: Jens Owen +Date: Tue Apr 9 21:54:56 2002 +0000 + + Merged drmcommand-0-0-1 + +commit a820c741374743065540546c92b1d5e1a2089225 +Author: Jens Owen +Date: Fri Mar 29 16:31:52 2002 +0000 + + file xf86drmCompat.c was initially added on branch drmcommand-0-0-1-branch. + +commit 31c885bafb47e24b8523dcc2850ce4acc8ef1004 +Author: Alan Hourihane +Date: Mon Mar 18 19:21:14 2002 +0000 + + file trident_drv.c was initially added on branch trident-0-0-1-branch. + +commit f0e215d3f946321fadad62cbc4e380b9f30ceb49 +Author: Alan Hourihane +Date: Mon Mar 18 19:21:14 2002 +0000 + + file trident.h was initially added on branch trident-0-0-1-branch. + +commit 2ab6ff71900ad068f6d5b8ee42743e13c928cedf +Author: Alan Hourihane +Date: Mon Mar 11 11:26:13 2002 +0000 + + fixups for *BSD + +commit baef086c324769010f0d164c0fe03105d9e474e1 +Author: Keith Whitwell +Date: Fri Mar 8 16:03:37 2002 +0000 + + Fix backwards compatibility bug, add tests for good numbers of + vertices/prim. + +commit 6a1941aa2431f3f4febb0f7aa3df127976eea33f +Author: Alan Hourihane +Date: Fri Mar 8 09:00:12 2002 +0000 + + missing file + +commit 271830e9b6f32f66ffa62d55fafb21b5892ab122 +Author: Alan Hourihane +Date: Wed Mar 6 20:14:30 2002 +0000 + + fixup the radeon driver (not tested) + +commit 5e734a7ac85f7bd8b333a28cf26745d1960a3a43 +Author: Alan Hourihane +Date: Wed Mar 6 19:31:39 2002 +0000 + + i830 & mga contain minor changes from 4.2.0 for mesa 4.0 bsd merge + +commit 46cacdca855a99c1ffe0ccf7a7f88134bca9bade +Author: Alan Hourihane +Date: Wed Mar 6 19:30:45 2002 +0000 + + first pass at merging mesa 4.0 kernel drivers into new bsd-3-0-0 branch. + +commit ab87c5d0d1b5c35006ce8b99a9260e3116c732dc +Author: David Dawes +Date: Thu Feb 14 02:00:26 2002 +0000 + + First pass of mesa-4-0 branch merge into trunk. + +commit 65d25572deec33b7da13c211bf0aa78c361f535a +Author: Michel Daenzer +Date: Sat Feb 2 17:03:51 2002 +0000 + + wrapper for ioremap_nocache() like for ioremap() (Paul Mundt) + +commit 44aa4d6297874022a4f5a49ea24f2d052584d3dc +Author: David Dawes +Date: Sun Jan 27 20:05:42 2002 +0000 + + First pass merge of XFree86 4.2.0 import. + +commit 14945ada16218e9f918c24e0d702979fae9b07f6 +Author: David Dawes +Date: Sun Jan 27 18:23:04 2002 +0000 + + Import of XFree86 4.2.0 + +commit 16bd14926e02e4dbc6e74689bdb3eb90f30a0233 +Author: David Dawes +Date: Sun Jan 27 18:23:04 2002 +0000 + + Initial revision + +commit f18a6d836b5e0081dff9217b44e88e74c421c576 +Author: Alan Hourihane +Date: Mon Dec 10 23:29:37 2001 +0000 + + merge with linux kernel 2.4.15 + +commit 727abee235478a66c90a8cd097f85307e232524a +Author: Keith Whitwell +Date: Tue Nov 27 11:43:12 2001 +0000 + + Put back i810 major version number (same reasons as for r128) + +commit 13e11e1f94ce2fcf2ce86be1400b644560cb066c +Author: Keith Whitwell +Date: Mon Nov 26 13:28:38 2001 +0000 + + Put drm version back from 3.0 to 2.2; XFree86 4.1 is the baseline for + versioning information. + +commit 05fb3e93f2f99a1ace1444c8f0669067f553504b +Author: Alan Hourihane +Date: Fri Nov 2 17:40:11 2001 +0000 + + wrap the MODULE_LICENSE definition. + +commit 92ad1b60e109170e1fa7d22a4627efa7fa77aa71 +Author: Alan Hourihane +Date: Mon Oct 22 19:15:04 2001 +0000 + + merge kernel 2.4.13-pre6. + +commit 87ec138e1421f408c0fa86fa3567544dd488711e +Author: Manuel Teira +Date: Sun Oct 21 21:08:15 2001 +0000 + + file mach64.h was initially added on branch mach64-0-0-2-branch. + +commit bdd84e895838328d5a7f20e7063c49cd6f300fd0 +Author: Alan Hourihane +Date: Mon Oct 8 12:58:20 2001 +0000 + + commit Abraham vd Merwe fix. + +commit ca820fca877faf4776be142417795a5945c606e6 +Author: Alan Hourihane +Date: Tue Sep 25 09:32:16 2001 +0000 + + merge with 2.4.10 kernel + +commit 390440c9399a3c01811f3b37c2628d6e905656e8 +Author: Alan Hourihane +Date: Tue Sep 18 11:00:23 2001 +0000 + + remove Linux 2.3.x cruft. + +commit b1c44c8ac1cfd7927d96fdd9dce15a9996c14073 +Author: Alan Hourihane +Date: Mon Sep 17 21:12:10 2001 +0000 + + bumped the DRM versions (already done in ddx and client side drivers). + +commit 2fabe808274e5769fbc2b871e36e06fab2364208 +Author: Alan Hourihane +Date: Mon Sep 17 10:30:17 2001 +0000 + + Use CCE for 2D acceleration (Gerd Knorr) + +commit 9e69d0dac61cc20ed20281bfa5b7e12124fa3989 +Author: David Dawes +Date: Sat Aug 25 03:13:04 2001 +0000 + + - Remove the rest of the unneeded client-side libraries. + - Use installed libraries that are not built here. + - Don't build/install client-library related file and headers. + +commit 27e24cbc0ad561b8dabad08dfd89ca0dfaa7449d +Author: Alan Hourihane +Date: Fri Aug 24 11:09:50 2001 +0000 + + file convert.c was initially added on branch bsd-2-0-0-branch. + +commit c6bf9bae8ec49987c66dadd5f9313cc13eb5832e +Author: David Dawes +Date: Wed Aug 22 18:24:52 2001 +0000 + + First part of XFree86 4.1.99.1 merge. + +commit 2f060f44e0eb617059bf9301e62a0d2c202ddee1 +Author: David Dawes +Date: Wed Aug 22 18:00:47 2001 +0000 + + Import of XFree86 4.1.99.1 + +commit 063fe900aa895ff2b342843d68c003650b83c8c3 +Author: Jeff Hartmann +Date: Tue Aug 21 21:54:04 2001 +0000 + + file drm_ioctl_table.h was initially added on branch mesa-3-5-branch. + +commit f4c2f1400203434d9a5392b990aaa4fa32dce9c5 +Author: Alan Hourihane +Date: Sun Aug 19 15:20:08 2001 +0000 + + No one's maintaining 2.2.x support - so remove all the cruft. + +commit 8aaf82d45c406220d5f18168e4350827a9e038e2 +Author: Jeff Hartmann +Date: Tue Aug 14 00:35:07 2001 +0000 + + A few warning fixes when actually building under 2.4.9-pre2 + some + reformating + +commit aa09e3611490d6a2f12f211c3c834f1237126313 +Author: Jeff Hartmann +Date: Mon Aug 13 23:23:47 2001 +0000 + + Sync with Linus 2.4.9-pre2 + make all nopage routines more alike + +commit 2d4b2cf6f69de2ceaf0c2b00ccbb24aad412b202 +Author: Alan Hourihane +Date: Sat Aug 11 15:48:00 2001 +0000 + + new multihead code was missing Voodoo3 2000 and Voodoo4 support. + +commit 97b8aa52bba602d5babe225983f7e4c7cb4d7492 +Author: Jeff Hartmann +Date: Fri Aug 10 16:29:21 2001 +0000 + + Commit Keith Owens kernel Makefile changes, merge and commit alpha patch + set from Jay Estabrook (sans some mga modifications which broke other + arch's.) + +commit b6923b39539c34c2a589197def5eee72a9d719bf +Author: Jeff Hartmann +Date: Wed Aug 8 16:10:47 2001 +0000 + + Update to the code I sent Linus and Alan this morning. Added some missing + agp chipsets to drm_agpsupport.h, redid the card detection common code + to use a structure (avoids endian porting issues), changed the tdfx + driver to use the kernel pci id '#defines' + +commit 938a637d1fc33bc8ef14210d655c27d646ddc2d2 +Author: Jeff Hartmann +Date: Tue Aug 7 18:22:41 2001 +0000 + + Avoid compiler warning about r_list being used uninitialized. + +commit 51e38d96ead5700c25c4fddd8017dc7992e96f5a +Author: Jeff Hartmann +Date: Tue Aug 7 18:15:10 2001 +0000 + + Lots of DRM fixes: added new pieces of template code so the ffb driver can + be ported, rolled back r128 and i810 version bumps so 4.1.0 works with + cvs kernel modules, added Config.in and updated Makefile.kernel, + incorporated lots of drm fixes inspired by patches sent by Redhat, made + DRM(realloc) usage check for NULL allocations, restructure driver init + routines to export dev_priv only when initialized and to check for all + error conditions. + +commit 56bd9c207770d41a497f3e8237a1099dd9d4cd91 +Author: David Dawes +Date: Mon Jul 30 19:59:39 2001 +0000 + + Merge the multihead-1-0-0 branch into the trunk, with the exception of the + glide header files. + The changes include: + - Brian Paul's changes to the tdfx client-side 3D driver to make it + dlopen() the correct glide library (Voodoo3 or Voodoo5). This allows + both types of the glide library to co-exist, and allows Voodoo3/Voodoo5 + cards to be mixed in multi-head configs. + - DRM kernel driver changes to allow a driver to set up multiple instances + (minor numbers), one for each card present that the driver supports. + This is currently implemented and tested only for the tdfx DRM driver. + - Add some missing missing includes. + - Some log message cleanups. + - Change the 2D tdfx driver to access VGA legacy registers via their PCI + I/O space access points rather than their legacy addresses, and fix + some problems with the way the VGA-related bits are initialised. + Status: + - With these changes, multi-head direct rendering works with multiple + Voodoo3 and/or Voodoo5 cards. This has been tested with two PCI Voodoo3 + cards and an AGP Voodoo5 card, and all permutations of those. + Caveats: + - Xinerama is not supported. If Xinerama is enabled, then direct rendering + gets disabled. + - The text mode on secondary screens will show junk after the X server + exits. + - On some hardware, starting the X server on multiple 3dfx cards will + result in a hard lockup. One workaround is to enable APIC support in a + uni-processor kernel, or use an SMP kernel. + +commit 84a5e7108773d5a5ff7242e1460c98e3acb178a8 +Author: Jeff Hartmann +Date: Mon Jul 23 20:25:38 2001 +0000 + + Fixes that allow the modules to be built into the kernel + +commit 5e8ba79eb6aabd85f52de43fcf30722268857f60 +Author: Jeff Hartmann +Date: Fri Jul 20 22:16:04 2001 +0000 + + Merge checker fixes from Alan Cox made to the drm in the ac kernel tree. + These aren't really security problems, but Alan has made some arguments + that have convinced me that the code should be fixed anyway. + +commit ae5b4effc05cd5ac44ab44c5c733c6599652f1eb +Author: Jeff Hartmann +Date: Fri Jul 20 20:31:30 2001 +0000 + + Remove module name hacks because we aren't going to implement this anymore + because of Linus' comments + +commit 4eafeec960c29369982a9b15c24681a3072f491d +Author: Jeff Hartmann +Date: Wed Jul 18 21:02:58 2001 +0000 + + Add module version name at a lower layer of the code, allows things to be + more flexible and allow older module versions to still work. Might not + be final code if we move over to DRI kernel module version, but will be + if we use XFree86 version. + Only build tdfx.o instead of tdfx-4_1_0.o + since tdfx.o has never changed its API. + +commit c6454e6a93544fd20f4b5d9cb2ee08725e9b6740 +Author: Jeff Hartmann +Date: Tue Jul 17 22:31:26 2001 +0000 + + Someone forgot to bump the r128 and i810 drivers properly before the 4.1.0 + release. Better late than never. + +commit d5749d7603d397be7639266e6c740941af2004fb +Author: Jeff Hartmann +Date: Mon Jul 16 22:42:36 2001 +0000 + + Added version string to the end of the kernel module name. This allows + multiple versions of the kernel module to co-exist on one machine. + +commit b816802daf6818306473c35d8776202c69fd0083 +Author: Jeff Hartmann +Date: Mon Jul 16 16:57:12 2001 +0000 + + i810 drm security fix + +commit 7ccc528911137156f216a13c95ce946c5f65af15 +Author: Gareth Hughes +Date: Fri Jul 13 01:42:48 2001 +0000 + + Fix typo in XFREE86_VERSION(). + +commit 12e9c636dfb4fbaf229e884afa8febaecd79b475 +Author: Jeff Hartmann +Date: Mon Jun 18 19:25:15 2001 +0000 + + Fix 5 security bugs found by the Stanford tools + +commit b1a588f0cc9cd7b4f5b2150f03722ac09b7e8989 +Author: Gareth Hughes +Date: Mon Jun 18 13:45:23 2001 +0000 + + Forgot to bump date stamp. + +commit 3a410059b43027c08bcb0fef307dd4ee7734197e +Author: Gareth Hughes +Date: Mon Jun 18 12:59:42 2001 +0000 + + Enable shared IRQs in DMA template, use in i810 driver. + +commit d87c873df05eb3a110316c7af2358553fa7f988e +Author: David Dawes +Date: Thu Jun 14 22:23:44 2001 +0000 + + First pass of 4.1.0 merge. + +commit 334e134918ee2ece3e845cd55c49c9709b67ee6c +Author: David Dawes +Date: Thu Jun 14 21:53:06 2001 +0000 + + Import of XFree86 4.1.0 + +commit dca245e37c875660fa766a264377628dd3a311e5 +Author: Gareth Hughes +Date: Wed May 23 17:41:31 2001 +0000 + + Only authenticated clients can mmap() (Jeff Hartmann). + +commit 18ce40c9d31c166b49e6689c260eb1ddb3cc08c9 +Author: Alan Hourihane +Date: Thu May 17 15:20:40 2001 +0000 + + Make the SiS module work again. At least glxinfo reports it's working, yet + trying to run the simple apps return 'out of video memory' + +commit 9c775d0b2f303389c24aea5e8abc1473f0cf93e8 +Author: David Dawes +Date: Mon May 14 14:49:58 2001 +0000 + + finish struct stat type cleanup Fix a build dependencies for the tdfx drm + module + +commit 0813760110535d8989af187d23b4eedc4c6b225f +Author: Alan Hourihane +Date: Fri May 4 14:05:13 2001 +0000 + + add some commented enclosures around the BUS_BASE calls for Alpha + platforms. + +commit 5f5d850013d6c846946f77b57e88a507232c0aca +Author: Alan Hourihane +Date: Fri May 4 09:31:35 2001 +0000 + + file drm_linux.h was initially added on branch bsd-2-0-0-branch. + +commit 726096309b86184b83cd5cb08c95fe7e870f443c +Author: Alan Hourihane +Date: Fri May 4 08:28:30 2001 +0000 + + file drm_agpsupport.h was initially added on branch bsd-2-0-0-branch. + +commit ebf0d7addfd51d1fafca354ebdcdb4fd17593616 +Author: Alan Hourihane +Date: Thu May 3 14:52:29 2001 +0000 + + add new file + +commit 94c6d951a21f2d3b42cda0acb1b5dfc954c1c66b +Author: Alan Hourihane +Date: Thu May 3 14:51:01 2001 +0000 + + Make SiS driver compile with the new templated format. Not tested. minor + cleanups + +commit d3645e7a4e0885aba8063c6cc41d7d9fded99982 +Author: Alan Hourihane +Date: Thu May 3 14:32:59 2001 +0000 + + remove deprecated file + +commit 2ea12226a675cc8d4b95799129f143fa61d97296 +Author: David Dawes +Date: Tue May 1 21:39:35 2001 +0000 + + Initial merge for XFree86 4.0.99.3 import + +commit a576d41498b742502d4f7dbfeed44737ff79db8f +Author: David Dawes +Date: Tue May 1 17:07:59 2001 +0000 + + Import of XFree86 4.0.99.3 + +commit b804c09d0699131a8333c19a4d58cb14125d413e +Author: Alan Hourihane +Date: Mon Apr 30 16:18:22 2001 +0000 + + fix build of i810 kernel driver for 2.4.3 or greater kernels + +commit df76f812924e4db284fd38b3c5db6b87ec0d82fc +Author: Kevin E Martin +Date: Mon Apr 30 15:07:18 2001 +0000 + + - PCIGART patches for Alpha from Compaq + +commit d1ef7f9d2c9f8f191ab79b1a43eb96a787df5f64 +Author: Alan Hourihane +Date: Mon Apr 30 13:24:28 2001 +0000 + + file drm_vm.h was initially added on branch bsd-2-0-0-branch. + +commit 2c0811d628249f81f29b85392d5eaae3c12f882e +Author: Alan Hourihane +Date: Mon Apr 30 11:11:00 2001 +0000 + + file drm_sysctl.h was initially added on branch bsd-2-0-0-branch. + +commit ae1cc904624245d738bfdf8afb74776c4e9b1215 +Author: Alan Hourihane +Date: Wed Apr 25 14:20:17 2001 +0000 + + file drm_os_freebsd.h was initially added on branch bsd-2-0-0-branch. + +commit 376189905b8391295f18a5fac922d1d9546c7b43 +Author: Alan Hourihane +Date: Wed Apr 25 14:20:17 2001 +0000 + + file drm_os_linux.h was initially added on branch bsd-2-0-0-branch. + +commit 97e48b4cd1747e427e70af6e530ec57676f6189d +Author: Alan Hourihane +Date: Wed Apr 25 12:59:04 2001 +0000 + + file Makefile was initially added on branch bsd-2-0-0-branch. + +commit b1488c2f87ab3b4d377b32a0c0ed0ba05e996f25 +Author: Brian Paul +Date: Sat Apr 21 19:06:46 2001 +0000 + + include linux/sisfb.h, per David Gaarenstroom + +commit 49781fcf37e30ed17513bd13a90ded39ab1b0b9d +Author: David Dawes +Date: Wed Apr 18 18:45:20 2001 +0000 + + put back BUS_BASE + +commit 6f5e397f2549e7d5f806d2c44053d3d306a36f3a +Author: Kevin E Martin +Date: Mon Apr 16 21:43:28 2001 +0000 + + - Fix typo and remove magic numbers + +commit cc7afb2b16b84293258be0cc8bcffd32308cd3b9 +Author: David Dawes +Date: Tue Apr 10 18:45:17 2001 +0000 + + Use the linux version of xf86drm.c. + +commit 18fc5ee92394b31c00df8e72b1f29bada79292f5 +Author: David Dawes +Date: Mon Apr 9 21:56:31 2001 +0000 + + First pass of XFree86 4.0.99.2 merge. + +commit 1759c16ab9b64598968a0058039e8a66bf5f9773 +Author: David Dawes +Date: Mon Apr 9 16:27:54 2001 +0000 + + Import -f XFree86 4.0.99.2 + +commit 0e7f6c0726e5ff08eeab8e17a5aa63fbe44b3410 +Author: Kevin E Martin +Date: Fri Apr 6 17:53:32 2001 +0000 + + - Fix typo + - Clean up some macros + +commit 908d32f84c33a4192b8381d74fc6bccc73e309f9 +Author: Alan Hourihane +Date: Fri Apr 6 15:49:42 2001 +0000 + + search /lib/modules//build/include first, then the others.... + +commit 2bd9bf98c7bc0c23870f86f97341197114c3e70a +Author: Alan Hourihane +Date: Fri Apr 6 08:39:02 2001 +0000 + + Handle drivers that don't have __HAVE_SG defined. + +commit 5d6ddbca26d695561fb1d08d798a0cc254b805e7 +Author: Kevin E Martin +Date: Thu Apr 5 22:16:12 2001 +0000 + + Merged ati-pcigart-1-0-0 + +commit a15b9dec3cfed3ce36826faf8c7d76284b0527a8 +Author: Alan Hourihane +Date: Tue Apr 3 08:01:00 2001 +0000 + + include 2.4.2 + +commit 4259e5e61716d321aa3c1ac6d7ad4bf0e3c39a38 +Author: Alan Hourihane +Date: Tue Apr 3 07:50:30 2001 +0000 + + make 2.4.2 -> 2.4.3 change conditional. works with older than 2.4.3 kernels + again. + +commit 62d49315299f4483b2e7fb44f21d6b09cef01afd +Author: Gareth Hughes +Date: Mon Apr 2 01:17:18 2001 +0000 + + Update radeon DRM to v1.1.0 (texture upload changes). + +commit fcc21069b7019a4a93e1ceacc175ccd682353861 +Author: David Dawes +Date: Fri Mar 30 17:16:20 2001 +0000 + + - Move xf86ConfigDRI declaration from xf86Priv.h to xf86.h. + - Don't include xf86Priv.h in the drm module. + - Fix 'struct stat' in loader libc wrapping to avoid unnecessary + XFree86LOADER #ifdefs in code that uses it. + - Make drmOpenMinor() static. + +commit e407c2f5a611e30b05ea095f8b17d39fb5a7ebfa +Author: Alan Hourihane +Date: Fri Mar 30 13:32:39 2001 +0000 + + merge in 2.4.3 kernel change. + +commit 301a1ad315bd7881adcf0df33c589e0a74c059f4 +Author: David Dawes +Date: Wed Mar 21 20:22:16 2001 +0000 + + Move #include inside the __linux__ #ifdef, so that it + doesn't break non-Linux builds. + +commit 92b0aaa6fe787c2e17bba1973d19d6fd5a61d03a +Author: Gareth Hughes +Date: Wed Mar 21 13:10:27 2001 +0000 + + - Fix MGA header info. + - Update date strings. + - Fix MGA hangs (undocumented side effects of DWGSYNC). + - Remove idle before ILOAD??? Seems fine with the above fix. + +commit b90028231c5c73783ee45124903794970f244978 +Author: Gareth Hughes +Date: Wed Mar 21 03:29:23 2001 +0000 + + Remove compiler warnings, minor cleanups. + +commit 86c41620a5f0a3b3af143bebdda0cca2114ade88 +Author: David Dawes +Date: Mon Mar 19 23:48:35 2001 +0000 + + merge/build fix + +commit 404a409ab302c99d8aceb85ede301b04780480d0 +Author: David Dawes +Date: Mon Mar 19 21:39:36 2001 +0000 + + Initial XFree86 4.0.99.1 merge. + +commit 0e5b8d77cfe0f86698041aebe31c54f59c877825 +Author: David Dawes +Date: Mon Mar 19 17:45:52 2001 +0000 + + Import of XFree86 4.0.99.1 + +commit b42ff4f6600b97e9b7482152d5ea8713e800dc00 +Author: Gareth Hughes +Date: Mon Mar 19 12:16:24 2001 +0000 + + Update version, date stamp. + +commit 9914f4cf6057957bd77f1c1b0b9957537eafdfb9 +Author: Gareth Hughes +Date: Mon Mar 19 12:04:12 2001 +0000 + + Remove PRIMPTR completely. + +commit d15f98443295feeb4e3bd65b26f43c73d655e26e +Author: Gareth Hughes +Date: Mon Mar 19 11:49:25 2001 +0000 + + Try this... + +commit f2ad4d9bebd052e5b7c9a90c4a813830bd1b72f8 +Author: Gareth Hughes +Date: Sun Mar 18 23:54:41 2001 +0000 + + __REALLY_HAVE_MTRR, vmalloc_32 fixes from Jeff Wiedemeier. + +commit 1d32e305efdcb4668a91d94e2149c9c7a243b6dc +Author: Alan Hourihane +Date: Thu Mar 15 21:48:51 2001 +0000 + + file agpgart.diff was initially added on branch gamma-2-0-0-branch. + +commit 74e19a40187ac3b5907922e5dc01418135a5794b +Author: Kevin E Martin +Date: Wed Mar 14 22:22:50 2001 +0000 + + Merged sarea-1-0-0 + +commit e2b2bffc6b25361b2f09afc5a28030645440cd03 +Author: Gareth Hughes +Date: Tue Mar 13 00:22:05 2001 +0000 + + Rest of MGA dualhead patch. + +commit 0b60aad8a5f1e6d38bf2d254fa5209492157e344 +Author: Gareth Hughes +Date: Mon Mar 12 18:18:06 2001 +0000 + + Try that again... + +commit 134aecdeed19a339a147d7e88fc9b722b9794245 +Author: Gareth Hughes +Date: Thu Mar 8 00:21:33 2001 +0000 + + Fix ring space calculations, tests. Based on patch by Bruce Stockwell. + +commit 8c511c60ec1ecbe3f0832a8e5a07bc43239eae5f +Author: Gareth Hughes +Date: Wed Mar 7 15:06:57 2001 +0000 + + Change error message to debug message when client dies while holding the + lock. Should prevent bug reports about this, but you never know... + +commit 07f761bfae8f220c819b67f9f614984f930ff427 +Author: Alan Hourihane +Date: Wed Mar 7 08:53:15 2001 +0000 + + surround agp calls in drm_memory with __REALLY_HAVE_AGP instead of + CONFIG_... remove include for agpsupport in tdfx_drv.c - not needed. + +commit 3a74d3a371acc7b8632885c15ce2f7c05aae94bd +Author: Gareth Hughes +Date: Tue Mar 6 04:37:37 2001 +0000 + + Merge tdfx-3-1-0 branch. + +commit 971c2f8ad582bd0d6b97ed503c9e5abaa9feee02 +Author: Alan Hourihane +Date: Mon Mar 5 16:02:40 2001 +0000 + + allow dristat to find out whether AGP is write-combined or not. + +commit d1774bb44cdc1b5ce606c299b8eea1793f4352e3 +Author: Alan Hourihane +Date: Mon Mar 5 15:52:11 2001 +0000 + + fix that last patch to initialize the MTRR when AGP available. + +commit 8d3f3f4f9b8a5611888c35b7683661bcf52ef9cc +Author: Alan Hourihane +Date: Sun Mar 4 19:19:20 2001 +0000 + + Don't try and setup the MTRR for AGP when AGP not available. Check + dev->agp, when agp_acquire called, and..... Uncomment MUST_HAVE_AGP + around agp_* calls, so that support for both agp/pci can happen in a + single kernel driver. + +commit db03d12a8fe6c11029127831f1a9bf22056a250b +Author: Jeff Hartmann +Date: Wed Feb 28 18:47:39 2001 +0000 + + file drm_scatter.h was initially added on branch ati-pcigart-0-0-1-branch. + +commit 9a4033a02ac74e384596190adfcc0e938c19865b +Author: Gareth Hughes +Date: Wed Feb 28 14:11:05 2001 +0000 + + Make the hardware bug workaround configurable. That way, people with newer + revs of the chipset can avoid the copy when it's not needed. + +commit 7b5e87d91d062cceb1e4e54b2e144c3c87375234 +Author: Gareth Hughes +Date: Wed Feb 28 11:22:52 2001 +0000 + + Please try this if you experience lockups... + +commit 88dbee54ed400a3fd5594fab506518c171167805 +Author: Rik Faith +Date: Wed Feb 28 09:27:44 2001 +0000 + + Implement drmOpen* without /proc dependence (Fallback to /proc is included + for backward compatibility.) Move statistic-gathering drm* calls from + dristat.c to xf86drm.c + +commit c4a247d26228b2506fcb1c5cac2302a22e91219e +Author: Rik Faith +Date: Wed Feb 21 16:06:10 2001 +0000 + + Add Linux 2.2.x support for stubs + +commit 48768df6c3197dea8f68fc69795c5aa820ce5678 +Author: Jeff Hartmann +Date: Wed Feb 21 15:48:40 2001 +0000 + + file gamma_drm.h was initially added on branch sarea-1-0-0-branch. + +commit 43f1a52a564812d814c8a5f92b95fc6d3b589200 +Author: Jeff Hartmann +Date: Tue Feb 20 20:16:56 2001 +0000 + + Fix some warnings and flush pixel cache in idle routine so readpixels works + correctly + +commit 62aa46ccec223aa3660c71ff0981ea035fc2cff9 +Author: Gareth Hughes +Date: Tue Feb 20 13:44:45 2001 +0000 + + Disable DRIVER_DMA_QUIESCENT() in r128, radeon drivers. Prevents deadlock + in the locking process when the engine isn't idle. + +commit 01a14789edce0ce1cae0f3fd4328833399fae56d +Author: Gareth Hughes +Date: Fri Feb 16 05:24:06 2001 +0000 + + - Clean up the way customization of the templates is done. + - Fix old-style DMA for gamma driver (please test). + - Pull out IRQ handling into drm_dma.h (please test on i810, gamma). + - Lots of general cleanups, remove compiler warnings etc. + +commit 1d30ac11404c588e4a158d72f987c1fb3e478bea +Author: Keith Whitwell +Date: Thu Feb 15 16:31:11 2001 +0000 + + Added missing include "drm_lists.h". + i810 now working fine with new kernel module. + +commit f2f5bf6f5f577d5cc43af99dbad16710225bfa2f +Author: Gareth Hughes +Date: Thu Feb 15 10:26:03 2001 +0000 + + - Fix up merge. + - Update date stamps. + +commit 360475376c5a597caf4a981c934a6b0d783fa94d +Author: Gareth Hughes +Date: Thu Feb 15 08:12:14 2001 +0000 + + Merge mga-1-0-0-branch into trunk. + +commit 38c22bc4883ac201bde7f5f130a72acd1be68ec5 +Author: Gareth Hughes +Date: Wed Feb 14 14:34:01 2001 +0000 + + file i810.h was initially added on branch mga-1-0-0-branch. + +commit 75720460ce234fcf0317b78869a669afd1274ae1 +Author: Gareth Hughes +Date: Wed Feb 14 06:31:26 2001 +0000 + + file radeon.h was initially added on branch mga-1-0-0-branch. + +commit de554cb64045516ede340549441f109fd06495cd +Author: Gareth Hughes +Date: Wed Feb 14 05:30:38 2001 +0000 + + file r128.h was initially added on branch mga-1-0-0-branch. + +commit 32c4aa1eb3ffd59312c64a7f46b933371c31761f +Author: Gareth Hughes +Date: Wed Feb 14 05:30:38 2001 +0000 + + file r128_drm.c was initially added on branch mga-1-0-0-branch. + +commit 0fa26e550d56e068737d40f741e1f567c3f79cc5 +Author: Gareth Hughes +Date: Wed Feb 14 01:37:05 2001 +0000 + + file tdfx.h was initially added on branch mga-1-0-0-branch. + +commit 0e928b4733388477409b827185c714fd87702f0b +Author: Gareth Hughes +Date: Wed Feb 14 01:37:05 2001 +0000 + + file tdfx_drm.c was initially added on branch mga-1-0-0-branch. + +commit 3b17f9165b4c73665515c2e435a8221805e514d9 +Author: Alan Hourihane +Date: Tue Feb 13 17:53:02 2001 +0000 + + file gamma_context.c was initially added on branch mga-1-0-0-branch. + +commit 41b80a0ab0fedb60385afc374a590d0ab58ef6c3 +Author: Alan Hourihane +Date: Fri Feb 9 16:44:16 2001 +0000 + + file gamma_drm.c was initially added on branch mga-1-0-0-branch. + +commit 89486dffa8b91bb95f80420252675f095082b046 +Author: Alan Hourihane +Date: Fri Feb 9 16:44:16 2001 +0000 + + file gamma.h was initially added on branch mga-1-0-0-branch. + +commit 04c29ef2e484c09d29c17cc667433bd3b6d36b11 +Author: Rik Faith +Date: Fri Feb 2 11:44:22 2001 +0000 + + file dristat.c was initially added on branch mga-1-0-0-branch. + +commit 7d68e5ffe29cabf5ed802964d9501411ccae9b28 +Author: Rik Faith +Date: Thu Feb 1 20:54:01 2001 +0000 + + file drm_stub.h was initially added on branch mga-1-0-0-branch. + +commit 82b645dc74218fd8d1ed10d045128002f0c1f705 +Author: Gareth Hughes +Date: Mon Jan 29 17:46:23 2001 +0000 + + Corresponding sync with PCI GART updates. + +commit 5f67507e65a38cf6d33290299937c6bad98fcc6e +Author: Gareth Hughes +Date: Sun Jan 28 07:18:08 2001 +0000 + + Fix depth clears properly this time. Update all instances of + drmRadeonClear() to the new interface. + +commit a68dddf19caf0106479b71aab5a8de552a5ed596 +Author: Gareth Hughes +Date: Fri Jan 26 07:52:36 2001 +0000 + + Client-side updates for drmRadeonClear(...), fixes color/depth buffer + clears. + +commit 4ebcb86ace31f127281644ed9aaadb0a3303d29d +Author: Gareth Hughes +Date: Wed Jan 24 16:09:02 2001 +0000 + + file mga_warp.c was initially added on branch mga-1-0-0-branch. + +commit b68ca866244e96c37c4a25c85bfeaef0405bbad2 +Author: Gareth Hughes +Date: Wed Jan 24 16:09:02 2001 +0000 + + file mga_ucode.h was initially added on branch mga-1-0-0-branch. + +commit 321bc52606a3f674e8fc33cb990c7b04f4b050c9 +Author: Gareth Hughes +Date: Wed Jan 24 16:09:01 2001 +0000 + + file mga_drm.c was initially added on branch mga-1-0-0-branch. + +commit 2adf5999619935da80e0f5b682a2c1ec7fdce0b3 +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file mga.h was initially added on branch mga-1-0-0-branch. + +commit f14506198e6684429c400d7d4852bacc9a07bddb +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_vm.h was initially added on branch mga-1-0-0-branch. + +commit bb1a10743f52e7bf9f73b3be9bad198f00efa925 +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_lock.h was initially added on branch mga-1-0-0-branch. + +commit 2f23eca6298e5f60bf40ec2ed5188f52d450ec22 +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_memory.h was initially added on branch mga-1-0-0-branch. + +commit 105bece739c52a7d1416728e950ec8a249f4ae9f +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_bufs.h was initially added on branch mga-1-0-0-branch. + +commit b46a78c06061e4501bc2fa5657d6285cdce46769 +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_proc.h was initially added on branch mga-1-0-0-branch. + +commit 91844ee03910cce947801dc967606bd6260a91ef +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_fops.h was initially added on branch mga-1-0-0-branch. + +commit fd82ce8f3fcf6c7368df6710f1943ee89a474620 +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_init.h was initially added on branch mga-1-0-0-branch. + +commit d2110a1dbefabcce14a4c492db4bfee038a99faf +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_ioctl.h was initially added on branch mga-1-0-0-branch. + +commit 18ea3b5e6f6803ac2c50f12f1b107b1838f7520e +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_drv.h was initially added on branch mga-1-0-0-branch. + +commit 03593b1629591a9fc80ff3a951d102668a1147f2 +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_context.h was initially added on branch mga-1-0-0-branch. + +commit 94dd569fc0f4d4d48e9de42670a126c04c259117 +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_drawable.h was initially added on branch mga-1-0-0-branch. + +commit b25e0fee34a39a6b07c22b48b05dd02c56a0ffa7 +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_agpsupport.h was initially added on branch mga-1-0-0-branch. + +commit a596a6f4e850556bac1259a6616395dc11e0866e +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_auth.h was initially added on branch mga-1-0-0-branch. + +commit ae28c6aab6789c5eba42ef05e04827b150402370 +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_dma.h was initially added on branch mga-1-0-0-branch. + +commit 249dfc1c29d9f539c59bc014eae72baa5b35d88e +Author: Gareth Hughes +Date: Wed Jan 24 16:09:00 2001 +0000 + + file drm_lists.h was initially added on branch mga-1-0-0-branch. + +commit 4d2a4455b4e7bc65952aa6167c34b488c4ca3b8d +Author: Gareth Hughes +Date: Wed Jan 24 15:34:46 2001 +0000 + + - Misc cleanups. + - Fix drmR128Clear parameters (Radeon to follow). + - Add some helper macros to r128/radeon kernel modules. + +commit 642bb6fbb0bfbc6e549e61bd0ece72abcbd399b7 +Author: Jeff Hartmann +Date: Tue Jan 23 17:53:57 2001 +0000 + + file ati_pcigart.h was initially added on branch ati-pcigart-0-0-1-branch. + +commit 97379b82c812b5eed0a4a52106afc895469e13fa +Author: Jeff Hartmann +Date: Tue Jan 23 17:53:57 2001 +0000 + + file ati_pcigart.c was initially added on branch ati-pcigart-0-0-1-branch. + +commit 9116644366c427b39945bca71969a5b561181046 +Author: Jeff Hartmann +Date: Thu Jan 18 18:21:05 2001 +0000 + + Fixed problem preventing compile on system w/o agpgart. + +commit 417bfc8a9d42cf2b9238ee394514fa3db512c49d +Author: Jeff Hartmann +Date: Wed Jan 17 18:43:04 2001 +0000 + + file r128_pcigart.c was initially added on branch ati-pcigart-0-0-1-branch. + +commit 5708131c9ab5ee3b51a6ef937925f36e083147b1 +Author: Jeff Hartmann +Date: Wed Jan 17 18:43:04 2001 +0000 + + file scatter.c was initially added on branch ati-pcigart-0-0-1-branch. + +commit 4c3f3de819981959f764c5d2a69417c52d122d61 +Author: Gareth Hughes +Date: Sat Jan 13 01:33:00 2001 +0000 + + Remove debug messages. + +commit 33e8dcf7e97e6bec69fc05137e1eede1a0f9b443 +Author: Keith Whitwell +Date: Thu Jan 11 20:05:39 2001 +0000 + + Makefile.linux was checking $(MACHINE) for 'i386' before building the + i810.o module. However on my i810's, $(MACHINE) is 'i686'. + +commit 61c15f4a2d053c9e609360a5e600f56b0887c3aa +Author: Nathan Hand +Date: Mon Jan 8 16:21:42 2001 +0000 + + Merged tdfx-3-0-0 + +commit 0994e635b2f002c8e9f177037a46c26ccd98c59d +Author: Kevin E Martin +Date: Fri Jan 5 22:57:55 2001 +0000 + + Merged ati-5-0-0 + +commit 833af23c5d21b1ab139327861d25d96dcd91af6f +Author: Rik Faith +Date: Thu Jan 4 18:41:41 2001 +0000 + + Sync with Linux 2.4.0-prerelease + +commit c7c6156aecdee2838dd0e193a3d529ecbb797ae7 +Author: Keith Whitwell +Date: Sat Dec 30 23:28:53 2000 +0000 + + add blit ioctl, fix plnwt handling + +commit b19c44e4fe01db3efe72e6a130bbd49af151ee95 +Author: Gareth Hughes +Date: Fri Dec 15 01:15:57 2000 +0000 + + Update date information. + +commit 013d6f0806de66edcca4193cd4a0b175bb3c2b32 +Author: Gareth Hughes +Date: Wed Dec 13 10:30:26 2000 +0000 + + file bufs_tmp.h was initially added on branch mach64-0-0-1-branch. + +commit 8725828cf0ebb55f813e19f87f7d279c62b68293 +Author: Gareth Hughes +Date: Tue Dec 12 14:50:50 2000 +0000 + + - Fix nasty depth span bug. Drawable offset was not being added to pixel + coords. + - Remove unneeded mask parameters from clear ioctl. + - Use correct subpixel offsets, fixes most glean bugs. + - Remove 32-bit depth buffer support. Only use 16 or 24-bit depth buffers. + +commit 14a73775360585b9a09bfdf932881fbb06b34037 +Author: David Dawes +Date: Tue Dec 5 16:39:28 2000 +0000 + + Import of XFree86 4.0.1g + +commit 41fa18dda5e49caed68ce853791a21dd6d92376b +Author: Gareth Hughes +Date: Mon Dec 4 06:26:37 2000 +0000 + + file mach64_dma.c was initially added on branch mach64-0-0-1-branch. + +commit 51b68cb483aa93c8eb19e9915f08978324b1b3ac +Author: Gareth Hughes +Date: Mon Dec 4 06:26:37 2000 +0000 + + file mach64_state.c was initially added on branch mach64-0-0-1-branch. + +commit 8e02d8dcc4f52549f97c83f2b3c0aaa249f66977 +Author: Gareth Hughes +Date: Sat Dec 2 13:10:03 2000 +0000 + + file mach64_drm.h was initially added on branch mach64-0-0-1-branch. + +commit e15a24e154d6749ba0be3155ed802005c5e1ebf0 +Author: Gareth Hughes +Date: Sat Dec 2 06:14:18 2000 +0000 + + Merged ati-4-1-1-branch into trunk. + +commit 33fd00485f350f7ecceb1fabfa81ce4137c894c2 +Author: David Dawes +Date: Thu Nov 30 17:32:23 2000 +0000 + + Import of XFree86 4.0.1f + +commit 84699b456d2453b3c3c99eb75ebfc0dfe30eb64f +Author: Gareth Hughes +Date: Mon Nov 27 15:30:26 2000 +0000 + + file context_tmp.h was initially added on branch mach64-0-0-1-branch. + +commit 2da85fdba0331e2ae5d7ea245ef865aa9eee3687 +Author: Gareth Hughes +Date: Mon Nov 27 15:30:26 2000 +0000 + + file driver_tmp.h was initially added on branch mach64-0-0-1-branch. + +commit 3e9ebfb4cf89b60871a226dbf1d4ec5129d6c070 +Author: Gareth Hughes +Date: Mon Nov 27 15:30:26 2000 +0000 + + file mach64_drv.h was initially added on branch mach64-0-0-1-branch. + +commit 960f13cdf4cc4201fabe4c48e40395d3a755be58 +Author: Jeff Hartmann +Date: Tue Nov 21 16:18:47 2000 +0000 + + Integrated bug fix from David S. Miller (a wait queue removal bug) + +commit 679531e1669085115bac5f6fc982d54a4a9608e8 +Author: Rik Faith +Date: Wed Nov 15 15:47:51 2000 +0000 + + Sync with Linux 2.4.0-test11-pre5 Provide backward compatibility tested + against 2.2.18pre21 + As usual, since all 2.4.0-test* kernels set LINUX_VERSION_CODE to the same + value, if you are running a 2.4.0-test kernel, you MUST be running + 2.4.0-test11-pre4 or later (although anything after 2.4.0-test11-pre1 + should work fine -- I tested with pre4/pre5). I expect 2.2.x support to + continue to work for all recent kernels, but I tested with 2.2.18pre21 + -- we use the old intermodule symbol communication for 2.2.x kernels, + so they should all continue to work. + +commit 0636342ef84da23f30b838b4f933e3aa15d5c2ce +Author: Rik Faith +Date: Tue Nov 14 21:35:00 2000 +0000 + + Move .c to .h file + +commit 633e9c8f8b2366a93951f11830954fb895917252 +Author: Kevin E Martin +Date: Mon Nov 13 23:35:02 2000 +0000 + + file radeon_state.c was initially added on branch ati-5-0-0-branch. + +commit 58d90faf9a3d3ef2a66d2cc3632958ab73e19250 +Author: Kevin E Martin +Date: Mon Nov 13 23:35:02 2000 +0000 + + file radeon_cp.c was initially added on branch ati-5-0-0-branch. + +commit 006458f227b9e97252406df52963d98b41bb3a1b +Author: Rik Faith +Date: Fri Nov 10 18:27:33 2000 +0000 + + Split agpsupport.c into pre-2.4.0 version and current version. + +commit 94071289a4c61a1083a3d6b3546b06cafeaeac44 +Author: David Dawes +Date: Wed Nov 8 00:07:17 2000 +0000 + + merge with 4.0.1d + +commit 5745cb7fa70cf312d371aac44de3beae2a8d6e47 +Author: David Dawes +Date: Tue Nov 7 22:10:46 2000 +0000 + + Import of XFree86 4.0.1d + +commit 37d6828fef51b3a113a11b54e7dbd9c92cd4a548 +Author: Jeff Hartmann +Date: Wed Nov 1 19:00:45 2000 +0000 + + Added multitexture fix to the mga drm driver + +commit 52f0bc3c9ec722c0c8a40bb7959e7ec2eb9d8180 +Author: Rik Faith +Date: Fri Sep 29 02:05:41 2000 +0000 + + More changes for sync with Linux 2.4.0-test9-pre7 + +commit 39a659e87718d8b6bbf138510e83de7a1e95d855 +Author: Rik Faith +Date: Fri Sep 29 01:47:11 2000 +0000 + + Audit calls to schedule() Remove tags from files shared with Linux kernel + tree Remove debugging statements to make debugging more useful Other + minor cleanups in preparation for sync with Linux 2.4.0-test9-pre7 + +commit b0a7efb5a959a6105486d303d25d06d69d5d569e +Author: Jeff Hartmann +Date: Thu Sep 28 23:04:57 2000 +0000 + + Use PG_reserved for things we remap non-cached + +commit ed2d0b4bb0bb90af87c7c89a2e0a6297455d3bbe +Author: Jeff Hartmann +Date: Thu Sep 28 15:09:39 2000 +0000 + + Fixed two things Rik pointed out in the last commit + +commit 550dff98b0cf08687cdde697fc6909aeb9cef30f +Author: Jeff Hartmann +Date: Wed Sep 27 21:32:19 2000 +0000 + + Merged the mga-lock-debug-0-2-0-branch with the trunk. This includes + several fixes including: (Jeff) Really disable multitexture (Broken + since Mesa 3.4 integration.) + (Jeff) Various changes in mga_state.c in the kernel module, which includes + a fix to the bug where the first OGL application hangs the machine + w/out rendering anything. This also includes defines for the warp + registers so they are easily human readable. + (Rik and Jeff) Fixed all the schedule loops in the kernel to look like they + are supposed too. + (Jeff) Configurable agp modes: Add the option "AGPMode2x" or "AGPMode4x" to + your XF86Config file. + (Rik) Various cleanups to the mga kernel driver to make it easier to read + and debug. + (Rik) Removed alot of DRM_DEBUG statements from the kernel driver. + +commit dbe7d55cb08487f688dfbdd29835500b3b087721 +Author: Kevin E Martin +Date: Wed Sep 27 03:34:14 2000 +0000 + + file radeon_drv.c was initially added on branch radeon-1-0-0-branch. + +commit 0688c5939796e09e2cea759e64774c6db478f513 +Author: Kevin E Martin +Date: Wed Sep 27 03:34:14 2000 +0000 + + file radeon_drv.h was initially added on branch radeon-1-0-0-branch. + +commit 9c250f5c18795cbf919d0ce947a269876e945cac +Author: Kevin E Martin +Date: Wed Sep 27 03:34:14 2000 +0000 + + file radeon_context.c was initially added on branch radeon-1-0-0-branch. + +commit 54e6f2f846ee46dc464033aa6a0c021ab7ccefd2 +Author: Kevin E Martin +Date: Wed Sep 27 03:34:14 2000 +0000 + + file radeon_drm.h was initially added on branch radeon-1-0-0-branch. + +commit ca013c632ca00931d404392be4e625f325fc959c +Author: Kevin E Martin +Date: Wed Sep 27 03:34:14 2000 +0000 + + file radeon_bufs.c was initially added on branch radeon-1-0-0-branch. + +commit cba6c830e07f4906a2b9de4de51ec3f2f1f9d7f6 +Author: Kevin E Martin +Date: Wed Sep 27 03:34:14 2000 +0000 + + file radeon_dma.c was initially added on branch radeon-1-0-0-branch. + +commit c7558d8fa4df805b7f7ff3d631432eadac9b8a1c +Author: Alan Hourihane +Date: Sun Sep 24 09:34:10 2000 +0000 + + commit xfree86 4.0.1d-pre update + +commit b1aa228f7d7390f8b9a361f862d724b908d5a71f +Author: Alan Hourihane +Date: Sat Sep 23 21:25:26 2000 +0000 + + Import of XFree86 4.0.1d-pre (2) + +commit 881683873e6aeab6529b8e6db8ed0678c87e86d7 +Author: Alan Hourihane +Date: Fri Sep 22 18:14:54 2000 +0000 + + Import of XFree86 4.0.1d-pre + +commit e06e4a73ac182bbd15ad7e6c10d259b12f39a383 +Author: Gareth Hughes +Date: Wed Sep 20 05:25:18 2000 +0000 + + file mach64_drv.c was initially added on branch mach64-0-0-0-branch. + +commit 7ed69fd309850cee0c14775b92322e4f91955405 +Author: Gareth Hughes +Date: Wed Sep 20 05:25:18 2000 +0000 + + file mach64_bufs.c was initially added on branch mach64-0-0-0-branch. + +commit d75fe0d7bfd1d5c3893464b2d184543932ffe347 +Author: Gareth Hughes +Date: Wed Sep 20 05:25:18 2000 +0000 + + file mach64_context.c was initially added on branch mach64-0-0-0-branch. + +commit de842ea5dbfd78d2e749d552f06410dbc2072087 +Author: Rik Faith +Date: Tue Sep 19 19:41:07 2000 +0000 + + Make management of current->state more correct. + +commit 01346c98b1d919374dc1f2ee70d4b401d2eaad67 +Author: Rik Faith +Date: Tue Sep 19 19:24:28 2000 +0000 + + Make management of current->state correct (accidentally made incorrect when + fixing the trispd bug). + +commit e2a16e1906592636e5e0e5ed82db776466b7e494 +Author: Gareth Hughes +Date: Tue Sep 19 18:24:09 2000 +0000 + + Correct sync with 2.4.0-test9-pre4 kernel. + +commit 9c8e1adfac249ee2a4d10e7ae32fc439c22fb8f6 +Author: Gareth Hughes +Date: Tue Sep 19 18:14:16 2000 +0000 + + Sync with 2.4.0-test9-pre4 kernel. + +commit ce199c73e555546aa4c6654695ab90ea42b1970d +Author: Gareth Hughes +Date: Tue Sep 19 16:40:02 2000 +0000 + + file r128_state.c was initially added on branch ati-4-1-1-branch. + +commit 4ec540945deb46008a7d6ff54d78c02582de5629 +Author: Gareth Hughes +Date: Tue Sep 19 16:38:55 2000 +0000 + + file r128_cce.c was initially added on branch ati-4-1-1-branch. + +commit dc6b57bf22ecbac04a5a1fee72fd0a43646b9c8c +Author: Alan Hourihane +Date: Thu Sep 14 14:48:44 2000 +0000 + + axp cast fix. + +commit f850c1bd06d8ccb576e8836ed8f0c16db6eec343 +Author: Rik Faith +Date: Wed Sep 13 15:02:35 2000 +0000 + + Remove debugging statement from production code. + +commit 1f8651163acb06b0691322ec9ab96bc606ba8777 +Author: Rik Faith +Date: Wed Sep 13 15:00:09 2000 +0000 + + Fix for [Bug #112247] Hard MGA lock with trispd -size 50000 + +commit bda40b41465ab67f8eef0b89cd26f9bbe8cf4a85 +Author: Gareth Hughes +Date: Sun Sep 10 04:59:05 2000 +0000 + + Sync with 2.4.0-test8 kernel. + +commit 3adced5b29924079da9b600265687863e6f92d99 +Author: Jeff Hartmann +Date: Thu Sep 7 22:33:36 2000 +0000 + + file drm_heavy_kern_lock.c was initially added on branch + mga-lock-debug-0-0-1-branch. + +commit 5f2cfc5bd8132d1bd4dabd78848acd0ee038ea92 +Author: Gareth Hughes +Date: Thu Sep 7 20:42:32 2000 +0000 + + Merge of tdfx branch undid the changes from the 2.4.0-test8-pre5 kernel + sync, so apply them again. + +commit f1bb3c5f5ff40e89004064d8ac8e13a3798b9afb +Author: Alan Hourihane +Date: Thu Sep 7 12:40:41 2000 +0000 + + Merged tdfx-2-1-branch + +commit 7db6449142ca24183f50e6f9dcf396b899b4113b +Author: Gareth Hughes +Date: Wed Sep 6 20:56:34 2000 +0000 + + Sync with 2.4.0-test8-pre5 kernel. + +commit e3e2d66131a3615379fe81ea106d7133da084683 +Author: Keith Whitwell +Date: Thu Aug 31 15:32:10 2000 +0000 + + Bump version number after kernel interface change. + +commit 433408db2e334f25df700b701fb3e159abd471b9 +Author: Rik Faith +Date: Thu Aug 31 10:10:03 2000 +0000 + + Pre Linux 2.4.0 compatibility header file + +commit 0bdde422b7db154935295938a937dab0c3212edf +Author: Keith Whitwell +Date: Wed Aug 30 22:36:27 2000 +0000 + + Added planemask args for color and depthbuffer clears. + +commit 926349534d4a20b8dc4f795e41055540ad48d112 +Author: Keith Whitwell +Date: Wed Aug 30 22:34:28 2000 +0000 + + Initialize vertsize correctly. Add planemask arguments for color and depth + stencil clearing. + +commit 32cebaf750b82639822f5f50d0aa8a4417595ada +Author: Rik Faith +Date: Mon Aug 28 19:50:52 2000 +0000 + + Add compatibility header file to make Linux 2.4.0 kernel patches cleaner. + +commit 6f07e1ff6bec8f306e8aa1d59b8bcaa93ffa776e +Author: Rik Faith +Date: Sat Aug 26 10:36:44 2000 +0000 + + Sync with Linux 2.4.0-test7 Add signal blocking support to all drivers + (using control-z on a running direct-rendering client should work now) + +commit 37643234affb329775d3330eed650dee59d39bad +Author: Rik Faith +Date: Fri Aug 25 12:49:18 2000 +0000 + + Apply patch from Alan Hourihane to temporarily allow compilation on Alpha + (the driver has not been tested on Alpha -- this just makes it compile) + +commit ac3c3571a714a38f7572f94c40fe143b43beb3b9 +Author: Rik Faith +Date: Fri Aug 25 12:45:53 2000 +0000 + + Remove misleading authorship information from sis driver (author has been + contacted and will provide improved information later) Rename + sis_drm_public.h to sis_drm.h to be consistent with the other drivers. + +commit 68f6795ef45739816fe9d5f1f5b3ef4900bf3187 +Author: Rik Faith +Date: Fri Aug 25 12:44:44 2000 +0000 + + Improve detection of kill_fasync parameter count Make compilation of sis.o + depend on CONFIG_FB_SIS + +commit fb3939c1a5cee3fedc02e0ca710870548481f99e +Author: Keith Whitwell +Date: Sun Aug 20 18:16:49 2000 +0000 + + Bug fixes for 32bpp rendering (still disabled) + +commit e30361416b31f6661d36f9d331f48217d66c9ee8 +Author: Jeff Hartmann +Date: Fri Aug 18 19:03:19 2000 +0000 + + Possible fix for trispd bug + +commit 364d44a24cb7a32ab7ac860e9dde0cd5d082fcd7 +Author: Rik Faith +Date: Fri Aug 18 18:57:56 2000 +0000 + + Fix ABA problem in drm_freelist_{put,try} + +commit f0f6509a72abf3a3a0a8f26a35b7a8f3d96cbb9b +Author: Rik Faith +Date: Fri Aug 18 13:55:23 2000 +0000 + + Sync with Linux 2.4.0-test7/pre4 + +commit f75ec3010ad8d15d316f6e6d580c85f9e6b8466e +Author: Rik Faith +Date: Thu Aug 17 20:26:11 2000 +0000 + + Bug #112196: auth.c uses semaphores while holding spinlocks Make spinlocked + region smaller to avoid semaphore. + +commit 761ffd63f3b8c9789afe026e75d384a6d450165a +Author: Rik Faith +Date: Thu Aug 17 20:20:33 2000 +0000 + + Bug #112197 Made sis driver compile under 2.4.0-test7/pre4 + +commit 3e42514360d15f63c250875e3aa4eb6ddd748763 +Author: Jeff Hartmann +Date: Wed Aug 16 21:13:24 2000 +0000 + + Fix for bug #111744 which caused any application to never render and dma to + stall on certain mga cards + +commit cba4d3504c843f6f66ffc0b477f86b4ee0048065 +Author: David Dawes +Date: Wed Aug 16 18:29:06 2000 +0000 + + first part of 4.0.1b merge + +commit 0cbca9cca2a9680bcced7d2ffe47599a37c7fea9 +Author: David Dawes +Date: Wed Aug 16 17:23:02 2000 +0000 + + Import of XFree86 4.0.1b + +commit 1df8afa8fff0750775ebcd8770d3b887053a65a7 +Author: David Dawes +Date: Wed Aug 16 17:23:02 2000 +0000 + + Initial revision + +commit 8b9363d1b1f7bc40fb68261f7659dea5124f2821 +Author: Rik Faith +Date: Tue Aug 8 16:04:21 2000 +0000 + + Sync with Linux 2.4.0-test6-pre8 + +commit 9199075a6a975ebcc44aff53fe0f77080c01a30b +Author: Jeff Hartmann +Date: Mon Aug 7 16:55:10 2000 +0000 + + Fix for multiple sarea bug + agp built into kernel segfault + +commit f3ae6786f89a4f63dbba93c5519d3792a1744dd7 +Author: Rik Faith +Date: Fri Aug 4 10:04:55 2000 +0000 + + Sync with Linux 2.4.0-test6-pre2 + +commit bcad11818296fa58a356175bc7e13060579012d0 +Author: Rik Faith +Date: Sat Jul 22 01:08:00 2000 +0000 + + Fix typo + +commit 1e54e554312d0970427e81c0a2bc8a16d1325c07 +Author: Rik Faith +Date: Sat Jul 22 01:04:22 2000 +0000 + + Move to new, denser, easier-to-read Linux kernel Makefile format + +commit 3bcc55a74d5fba18e53c4a6441dffb50badbbec0 +Author: Rik Faith +Date: Fri Jul 21 18:28:01 2000 +0000 + + Revert some changes and try alternative way to clean up AGP handling. + +commit 6dd96a15ed329f26565bb971877f03e15801f3f5 +Author: Rik Faith +Date: Fri Jul 21 16:57:00 2000 +0000 + + Revert some changes and try alternative way to clean up AGP handling. + +commit e38b34e54a79919588f23294ddb326309c9cb005 +Author: Rik Faith +Date: Fri Jul 21 15:48:24 2000 +0000 + + Fixes for building in the kernel tree + +commit 81da79d1ed038ff8968abcf1cde3362035603861 +Author: Rik Faith +Date: Fri Jul 21 14:20:57 2000 +0000 + + Changes to make AGP optional for in-kernel builds + +commit 6d1ce8fe7727ee0a704a8a7464b22559ce9831fd +Author: Rik Faith +Date: Thu Jul 20 20:21:10 2000 +0000 + + kfree_s was deprecated in 2.4.0-test? + +commit b4722ec943b3c51e103aaf7c6c77fe7b9c2c716d +Author: Rik Faith +Date: Thu Jul 20 05:17:49 2000 +0000 + + More fixups for kernel build: EXPORT_SYMTAB warning removal + put_module_symbol clean up of tdfx tdfx_cleanup routine Makefile.kernel + fix + +commit 0bd1fa795a06f592c1115b251685b36fec63fed3 +Author: Rik Faith +Date: Thu Jul 20 01:52:00 2000 +0000 + + Fixes for building in the kernel tree + +commit e8c9ed03f8d950ef82c09e387001b2fd43b81182 +Author: Rik Faith +Date: Thu Jul 20 01:14:58 2000 +0000 + + Fixed for monolithic kernel build + +commit 742c33bf6197e6ed18c7de89c7d895fecafaa838 +Author: Rik Faith +Date: Thu Jul 20 00:59:40 2000 +0000 + + Fix signature for *_options function + +commit c459c9ead3476a8edc1cd453fafa2b1c83c20e60 +Author: Rik Faith +Date: Thu Jul 20 00:48:12 2000 +0000 + + Added support for building as modules or as part of monolithic kernel + +commit 1d3c4d2ed2d7dd9e91037cff9ef0044a8fc2a6bb +Author: Rik Faith +Date: Wed Jul 19 20:59:35 2000 +0000 + + Bump driver dates and add descriptions + +commit ee9514b63b4309defc21a929deba1651a5dd8306 +Author: Rik Faith +Date: Wed Jul 19 20:41:51 2000 +0000 + + Allow SAREA > 1 page in size + +commit aed8549e91ade1582505ebce50e4a79d99b4436f +Author: Rik Faith +Date: Wed Jul 19 18:38:41 2000 +0000 + + Sync with Linux 2.4.0-test4 kernel + +commit 7b888f87fa5ec559df97a7e911dd5a3328895f6f +Author: Brian Paul +Date: Thu Jul 13 18:47:48 2000 +0000 + + applied Jeff's xf86cvs-I810copy.patch + +commit 4509385d37d0738f14d48bd91d9378e72dacc063 +Author: Alan Hourihane +Date: Wed Jul 12 21:37:17 2000 +0000 + + Final misc changes to bring upto 4.0.1 + +commit 8751b6774da527fdc3773d86da53ad5948b733dc +Author: Alan Hourihane +Date: Tue Jul 11 11:41:07 2000 +0000 + + Merge XFree86 4.0.1 + +commit 8bc39d01cae622db6097b967c132f9b0e04fb785 +Author: Alan Hourihane +Date: Mon Jul 10 21:32:06 2000 +0000 + + Import of XFree86 4.0.1 + +commit 62838b948cdddc0f007c200fbec195c1a008c731 +Author: Gareth Hughes +Date: Sat Jul 1 01:50:00 2000 +0000 + + Fix for agpgart module detection. If the kernel module has been configured + to use AGP, and the module is not present, fail gracefully instead of + doing evil things. + +commit dc2701a9f6034a04319f71e43e7f928f818be6db +Author: Gareth Hughes +Date: Fri Jun 23 17:14:20 2000 +0000 + + Update register definitions to match r128_reg.h + +commit d399dbcd569a66f5bf4863ffa2aab95fa8ebd5fc +Author: Doug Rabson +Date: Tue Jun 13 17:38:09 2000 +0000 + + Merged bsd-1-0-1 + +commit 2fbd4bf0189cf6d421000c7eea85fee3b9c79ed0 +Author: Rik Faith +Date: Tue Jun 13 14:34:13 2000 +0000 + + Unify code with kernel: Change some spacing in comments Add #include + to all *_drv.c files + +commit 1c8b2b5e06f7967babfa49b9dc8bf24316bfe201 +Author: Rik Faith +Date: Tue Jun 13 14:22:03 2000 +0000 + + Update email addresses and copyright notices to reflect VA Linux Systems + +commit d5348efe258d5399dd161bb488d22c981177bf78 +Author: Gareth Hughes +Date: Mon Jun 12 15:47:31 2000 +0000 + + Merging the ati-4-1-0 branch onto the trunk. + +commit ea425f532fb9c5b8f4d942e45751b7f715464b34 +Author: Daryll Strauss +Date: Mon Jun 12 02:33:12 2000 +0000 + + Merged the tdfx-2-0 branch onto the trunk + +commit b084e752920a3cc8ef904e67280fd903d050c301 +Author: Doug Rabson +Date: Fri Jun 9 17:16:10 2000 +0000 + + file mga_state.c was initially added on branch bsd-1-0-1-branch. + +commit 776faf51f00a856349c46bcc87e888207ec68558 +Author: Doug Rabson +Date: Fri Jun 9 17:16:10 2000 +0000 + + file mga_drv.h was initially added on branch bsd-1-0-1-branch. + +commit 8444cd6f11ecd8dca28f0a54c769bd908c4dd1df +Author: Doug Rabson +Date: Fri Jun 9 17:16:10 2000 +0000 + + file Makefile was initially added on branch bsd-1-0-1-branch. + +commit 2add3b9dc882b20e977ec16343ef13fabd4392a6 +Author: Doug Rabson +Date: Fri Jun 9 17:16:10 2000 +0000 + + file mga_dma.c was initially added on branch bsd-1-0-1-branch. + +commit 0eed55ba456d3541c11b6bb5e6739747ce177b84 +Author: Doug Rabson +Date: Fri Jun 9 17:16:10 2000 +0000 + + file mga_drv.c was initially added on branch bsd-1-0-1-branch. + +commit 736ca698c8f0fd42654b396caaa8f1e5b3f0f6a0 +Author: Doug Rabson +Date: Fri Jun 9 17:16:10 2000 +0000 + + file mga_bufs.c was initially added on branch bsd-1-0-1-branch. + +commit 018c96b3e6fa2119ca63e107c29ae5ce54ced11c +Author: Doug Rabson +Date: Fri Jun 9 17:16:10 2000 +0000 + + file mga_context.c was initially added on branch bsd-1-0-1-branch. + +commit 877873ad33536765af1f51d485a2f8f28feff2e4 +Author: Doug Rabson +Date: Fri Jun 9 17:16:10 2000 +0000 + + file mga_drm.h was initially added on branch bsd-1-0-1-branch. + +commit 7d88040f523a1e82435a4bfae71d3b370d7a6a05 +Author: Alan Hourihane +Date: Fri Jun 9 15:14:51 2000 +0000 + + Fix define of PCI_DEVICE_ID_3DLABS_GAMMA when not available in the kernel + includes. + +commit 0dc99dc4b941ca5b47ebbf7c7f03cb16b296f87c +Author: Brian Paul +Date: Thu Jun 8 17:13:48 2000 +0000 + + don't draw if window is unmapped, other updates (Jeff Hartmann) + +commit 569da5a42ebf10c86d6c6ba81866a888e1c708dc +Author: Brian Paul +Date: Thu Jun 8 14:38:22 2000 +0000 + + Merged glxmisc-3-0-0 + +commit 5ce0f2afec70a1d062b749e1bf7150c21d35281d +Author: Brian Paul +Date: Tue Jun 6 22:51:29 2000 +0000 + + define VM_DONTCOPY to zero if undefined + +commit 909085a0083fccae1c74d2c78dc8a34efc55a5cf +Author: Alan Hourihane +Date: Mon Jun 5 00:42:21 2000 +0000 + + Include new updated gamma support. + +commit f0cf8d5edd466b3e224bad08223ba2b31fb3f046 +Author: Doug Rabson +Date: Wed May 31 14:32:36 2000 +0000 + + file ctxbitmap.c was initially added on branch bsd-1-0-1-branch. + +commit fa0a35a25fd008617ef6c7444cb92b138dd01859 +Author: Doug Rabson +Date: Tue May 30 17:13:31 2000 +0000 + + Merged bsd-1-0-0 + +commit a72f370f4d8a65db5c4ff28dc49b0a1d7acc146c +Author: Doug Rabson +Date: Tue May 30 14:47:51 2000 +0000 + + file r128_drm.h was initially added on branch bsd-1-0-0-branch. + +commit 50996ec9ba504e125d76a3713dfe96d5b8e99ac3 +Author: Gareth Hughes +Date: Fri May 26 23:24:54 2000 +0000 + + Fixed WARP pipe hangs in Quake 3. Fullscreen or window at (0,0) seems to + work fine now, but an offset window still hangs in the same places as + before. + +commit ddcb28259f70d6808caf57e8eb9f74ca95b5f069 +Author: Keith Whitwell +Date: Thu May 25 21:06:02 2000 +0000 + + Merged mga-0-0-3-branch + - New security model for i810 + - Enable i810 dri by default + - New indexed vertex path for mga + - Mga kernel driver rework + - Removed dead files in i810 driver + +commit 2bb4f7ef4252007c356c0fbb8597925d395cb6b1 +Author: Doug Rabson +Date: Mon May 22 10:28:44 2000 +0000 + + file agpsupport.c was initially added on branch bsd-1-0-0-branch. + +commit 99efe3c247f726909f0a9a43e59835ebfc2d121f +Author: Kevin E Martin +Date: Thu May 18 06:14:27 2000 +0000 + + Merged ati-4-0-1 + +commit e79f86b2540527fd5261aae9e251d582282914dc +Author: Doug Rabson +Date: Sun May 7 14:14:47 2000 +0000 + + file tdfx_drv.c was initially added on branch bsd-1-0-0-branch. + +commit daa2b5316de12dd0bc231764312981567bb9db92 +Author: Doug Rabson +Date: Sun May 7 14:14:47 2000 +0000 + + file tdfx_context.c was initially added on branch bsd-1-0-0-branch. + +commit bbdf6517b972b40a2a9502b3a715a7fa4f04c623 +Author: Doug Rabson +Date: Sun May 7 14:14:47 2000 +0000 + + file Makefile was initially added on branch bsd-1-0-0-branch. + +commit 946502a97c93bc5266740e5e1d744f209aa3db46 +Author: Doug Rabson +Date: Sun May 7 14:14:47 2000 +0000 + + file tdfx_drv.h was initially added on branch bsd-1-0-0-branch. + +commit b8a8b6a0072cb5b5fbe57bce2ef4baf7dd2e8d7d +Author: Doug Rabson +Date: Sun May 7 14:14:47 2000 +0000 + + file gamma_drv.h was initially added on branch bsd-1-0-0-branch. + +commit 0ce3eb0c37f36f857738c8c5ab869b015019a8a3 +Author: Doug Rabson +Date: Sun May 7 14:14:47 2000 +0000 + + file gamma_dma.c was initially added on branch bsd-1-0-0-branch. + +commit fc3e594efe21c7ee7f93840947c59b87a7da3713 +Author: Doug Rabson +Date: Sun May 7 14:14:47 2000 +0000 + + file gamma_drv.c was initially added on branch bsd-1-0-0-branch. + +commit ec9c8cf8c3ba4aef093e8a0fa754d40d0f56738a +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file lock.c was initially added on branch bsd-1-0-0-branch. + +commit dc461915572f293d4fb4ea9ff8c1806cdd850216 +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file memory.c was initially added on branch bsd-1-0-0-branch. + +commit 3b55ffde2f887945b4c0bc8cd15730678e6a6333 +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file vm.c was initially added on branch bsd-1-0-0-branch. + +commit 874b13095bc3571eefaf8098a1b08a6906bc8adb +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file drmstat.c was initially added on branch bsd-1-0-0-branch. + +commit 7428ee6555af8dc0e7a1b77f096bb683ebb8deb2 +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file fops.c was initially added on branch bsd-1-0-0-branch. + +commit 2c88ecd2e6d7af28d69b634dc6e34b12bd02fb12 +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file init.c was initially added on branch bsd-1-0-0-branch. + +commit 54d4e7afff4a5f8bc0932f1a048f52cbbbcbb06b +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file proc.c was initially added on branch bsd-1-0-0-branch. + +commit 291816bd9c718ce25fe9c9b54f68ce83d75ba9ed +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file lists.c was initially added on branch bsd-1-0-0-branch. + +commit badaa2f2eb79a244feb412b49c19cdc1372f69ff +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file sysctl.c was initially added on branch bsd-1-0-0-branch. + +commit 1d6bc9c448915a91b1ecf7ed7ac9b698b24d2ec7 +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file context.c was initially added on branch bsd-1-0-0-branch. + +commit bbb0c2352b93f7b71900f66ddcfb6621a79c66e6 +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file ioctl.c was initially added on branch bsd-1-0-0-branch. + +commit 573dcc12080f12f3afda076497185e0cf317ced3 +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file dma.c was initially added on branch bsd-1-0-0-branch. + +commit a1a5b192d4ba3bc1a57e7f7fa708139d256689b8 +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file bufs.c was initially added on branch bsd-1-0-0-branch. + +commit 111738fade531ad02729b8b2d18a077afe74459d +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file auth.c was initially added on branch bsd-1-0-0-branch. + +commit 93dcf91a0f03db4a07b4b2d86c0398c144883ff5 +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file drawable.c was initially added on branch bsd-1-0-0-branch. + +commit c14788bf2982357e529114e4b4cf70e7b730a8ff +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file mga_drm.h was initially added on branch bsd-1-0-0-branch. + +commit 356bfda022741de65c7629c5c282690c0939cde2 +Author: Doug Rabson +Date: Sun May 7 14:14:46 2000 +0000 + + file i810_drm.h was initially added on branch bsd-1-0-0-branch. + +commit fc671ac20f84b2a8bac34472aa2c3033dee3acab +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file drmP.h was initially added on branch bsd-1-0-0-branch. + +commit 6b760708bdf876bf4cfd567743e45905d6c50653 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file Makefile.bsd was initially added on branch bsd-1-0-0-branch. + +commit 188d7591db6cddad414d971ac4db1c67855945d8 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file Imakefile was initially added on branch bsd-1-0-0-branch. + +commit a8af9a06524345dfd14ab42fb21484f0a8b22117 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file drm.h was initially added on branch bsd-1-0-0-branch. + +commit 9ca9e835279b66b14ad74158044aa6f08986d25b +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file tdfx_drv.c was initially added on branch bsd-1-0-0-branch. + +commit 268b2d0fa4c97c75b4cb2ce0d005b115da123b88 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file gamma_drv.h was initially added on branch bsd-1-0-0-branch. + +commit 2b4191b5b2331bc3146a546cd6737ba4cc8ea812 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file gamma_drv.c was initially added on branch bsd-1-0-0-branch. + +commit f352d4892ece370627de380da362cd55cf3ef2e6 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file gamma_dma.c was initially added on branch bsd-1-0-0-branch. + +commit a8ea56741b040e85221c7a4c5bfe9ff3d8817336 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file auth.c was initially added on branch bsd-1-0-0-branch. + +commit ba453d71d3cca772c6682772e96eb606d208cbee +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file bufs.c was initially added on branch bsd-1-0-0-branch. + +commit 244e9c02acf60bd5e1aba9082f889509bb0f4bb6 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file context.c was initially added on branch bsd-1-0-0-branch. + +commit 8f45e86a7681f73238c065d59be4b31ee058ba1d +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file dma.c was initially added on branch bsd-1-0-0-branch. + +commit 94e0ea68ae33160e62fcc9ffd38d919b8bab06f1 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file drawable.c was initially added on branch bsd-1-0-0-branch. + +commit 47c42ab42a8248794d07cea0e8fac233023c0754 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file drmstat.c was initially added on branch bsd-1-0-0-branch. + +commit e801cc05e755c0ecd6bb420482ebab110443ee17 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file fops.c was initially added on branch bsd-1-0-0-branch. + +commit 20afae284903d86b6168ebe26802935a9a761102 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file init.c was initially added on branch bsd-1-0-0-branch. + +commit 145d5c0006c7c0ad51075424df16c961bff461dd +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file ioctl.c was initially added on branch bsd-1-0-0-branch. + +commit 39d7d7228d997c9839898becee8fce7e9baacf68 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file lists.c was initially added on branch bsd-1-0-0-branch. + +commit 1140d8b0343e273c71a01d0a82fe3325e2072fe8 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file lock.c was initially added on branch bsd-1-0-0-branch. + +commit 3df97c45106cd08ab393935494b2ec42bebdb567 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file memory.c was initially added on branch bsd-1-0-0-branch. + +commit 7304e831cc1e429a07f27d8fc916f72cbde508cf +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file proc.c was initially added on branch bsd-1-0-0-branch. + +commit fe7968a7c507f9b330cc17e1f21b846ebcba561a +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file sysctl.c was initially added on branch bsd-1-0-0-branch. + +commit 4735070bd77fe68542e116effbaaff61ae640ba2 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file tdfx_context.c was initially added on branch bsd-1-0-0-branch. + +commit 2efb5abb9bd233ebe57393c697d04b3e412cae27 +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file tdfx_drv.h was initially added on branch bsd-1-0-0-branch. + +commit 813dc2fd4717e8fe21333e4c22d2380e0126bb0a +Author: Brian Paul +Date: Wed May 3 23:13:52 2000 +0000 + + file vm.c was initially added on branch bsd-1-0-0-branch. + +commit 01836824d5b3dd4833573ebf3f98ed4cfb9cd5b3 +Author: Brian Paul +Date: Thu Apr 20 16:36:40 2000 +0000 + + Merged glxmisc-1-0-0 + +commit da74fc3f29f3cc093929fe6c54140522ff489e2a +Author: Kevin E Martin +Date: Sat Apr 15 08:06:36 2000 +0000 + + file r128_bufs.c was initially added on branch ati-4-0-1-branch. + +commit 4a106124909259a08e65cc087dd6212629fa85a3 +Author: Kevin E Martin +Date: Wed Apr 12 06:22:02 2000 +0000 + + file r128_dma.c was initially added on branch ati-4-0-1-branch. + +commit d476a211bcf712506ac11f79a9f6c56a49ab4907 +Author: Kevin E Martin +Date: Wed Apr 12 06:22:02 2000 +0000 + + file r128_drm.h was initially added on branch ati-4-0-1-branch. + +commit 42f526b5ca90317dd751a772105f30e8151b8613 +Author: Daryll Strauss +Date: Sun Apr 9 17:29:28 2000 +0000 + + Only enable DRI for 16bpp mode. Allow GL_BLEND if color is 0,0,0,1 Wrap + grTexLodBiasValue call Link math library into libGL Recognize Napalm + boards Allow CLUT/gamma changes Make driver compile on 2.2.14 kernel + +commit 1dcfddf9154bcce3d6e004acee7dd503c27d0f0b +Author: Jeff Hartmann +Date: Wed Apr 5 18:48:23 2000 +0000 + + Fixed reclaim Oops + +commit ba1b1ae3806490cce16a9c8957b52cd74967f463 +Author: Jeff Hartmann +Date: Tue Apr 4 22:08:14 2000 +0000 + + Merged mga branch with trunk + +commit 7d715d1800031ccbd37db7f88896464c0e838f10 +Author: Jeff Hartmann +Date: Fri Mar 31 00:08:00 2000 +0000 + + file mga_drm.h was initially added on branch mga-0-0-2-branch. + +commit 45b6bd6f19d04e375dede6cd0374031a49e31efd +Author: Jeff Hartmann +Date: Fri Mar 31 00:08:00 2000 +0000 + + file i810_drm.h was initially added on branch mga-0-0-2-branch. + +commit 5bd8014f276d447178a1193d9dea1b976647d6ce +Author: Jeff Hartmann +Date: Thu Mar 16 03:37:30 2000 +0000 + + Merge with 4.0 + +commit adc03d3661117a687b5e1686f11b4b1314922203 +Author: Jeff Hartmann +Date: Wed Mar 15 21:40:23 2000 +0000 + + Import of XFree86 4.0 + +commit d9ff0e3884abd19cdf99426d4d4b1e8f17b4ffd1 +Author: Kevin E Martin +Date: Tue Feb 22 22:10:28 2000 +0000 + + 3.9.18 merge + +commit 7a9b291ab55dd9dcfeb35217f6105ad57c94f433 +Author: Kevin E Martin +Date: Tue Feb 22 15:43:59 2000 +0000 + + Import of XFree86 3.9.18 + +commit 9a1197da5cd84624f5b0741e0a20fee60eb8b4f1 +Author: Keith Whitwell +Date: Sun Feb 13 01:29:40 2000 +0000 + + file i810_clear.c was initially added on branch mga-0-0-1-branch. + +commit 37fa5fd54ae4cedbd5db22a646b37dbef8998656 +Author: Keith Whitwell +Date: Sun Feb 13 01:29:40 2000 +0000 + + file i810_dma.h was initially added on branch mga-0-0-1-branch. + +commit c6e856749badbdeeaa7647f93760f612f370a4ef +Author: Jeff Hartmann +Date: Sat Feb 12 21:48:57 2000 +0000 + + file Makefile.linuxpoll was initially added on branch mga-0-0-1-branch. + +commit baacc589f1add9ca5ff8a471c2c2bcb1b93f227f +Author: Jeff Hartmann +Date: Sat Feb 12 21:48:57 2000 +0000 + + file mga_dmapoll.c was initially added on branch mga-0-0-1-branch. + +commit 5a3acfc628f42ee244468f84e8e811c79f7bf938 +Author: Jeff Hartmann +Date: Sat Feb 12 02:08:58 2000 +0000 + + file i810_drm_public.h was initially added on branch mga-0-0-1-branch. + +commit 9fc0e46b67bd9ffa2b91644680fe21d0d9451314 +Author: Keith Whitwell +Date: Sun Feb 6 18:50:35 2000 +0000 + + file mga_state.h was initially added on branch mga-0-0-1-branch. + +commit d222453c4af94838fc1a669c3222dc0fdd9ee896 +Author: Keith Whitwell +Date: Fri Feb 4 07:32:24 2000 +0000 + + file mga_dma.h was initially added on branch mga-0-0-1-branch. + +commit a0ae1680027e9fc460a82ef70ee83c738d9d1846 +Author: Keith Whitwell +Date: Fri Feb 4 07:32:24 2000 +0000 + + file mga_clear.c was initially added on branch mga-0-0-1-branch. + +commit 9fcbf05c442d0b45d0fa7d7aca28e1f3c67de65a +Author: Jeff Hartmann +Date: Fri Jan 28 02:11:01 2000 +0000 + + Fixed freelist_put bug + +commit 84ad2d4aaea46ca2be005a37bd99dc5be1b2a891 +Author: Jeff Hartmann +Date: Thu Jan 27 23:48:40 2000 +0000 + + file mga_state.c was initially added on branch mga-0-0-1-branch. + +commit d93a3667b2bcab7ed08de79e9eafd7c162d8e674 +Author: Jeff Hartmann +Date: Thu Jan 27 23:48:40 2000 +0000 + + file mga_drm_public.h was initially added on branch mga-0-0-1-branch. + +commit 0d9121a5ec6a5bdd881fbc48f97805b5aed2d0b5 +Author: Jeff Hartmann +Date: Wed Jan 19 13:05:51 2000 +0000 + + file mgareg_flags.h was initially added on branch mga-0-0-1-branch. + +commit d545384a2b719f84a9a27ca7502f05325a49e646 +Author: Rik Faith +Date: Mon Jan 17 10:27:29 2000 +0000 + + Try a more complex (and more correct?) method for finding kernel inlcude + files + +commit fb0ace84a9e1afb0ec49b11d0a10898dbbb61502 +Author: Daryll Strauss +Date: Sat Jan 15 18:25:07 2000 +0000 + + Remove -g from build Fix lost code from tdfx-1-1 merge in tdfx_priv.c Lower + the minimum required fifo size Fix the kernel tree detection in the + Makefile + +commit 9a838857e1a271bd13881c2cd2d058072654dd12 +Author: Rik Faith +Date: Thu Jan 13 15:03:41 2000 +0000 + + Add new code to do SMP/MODVERSIONS detection for more distributions + +commit aa724a52b9e3b5fa6a768629e2d403288432b7a8 +Author: Daryll Strauss +Date: Wed Jan 12 21:47:44 2000 +0000 + + Add a drm_poll function to the tdfx driver. This fixes the problem with + 3.9.17 where the server hangs when the mouse is first moved. + +commit e83ae7576bca0dc248a03c8031b0cce37956aac4 +Author: Jeff Hartmann +Date: Sat Jan 8 00:17:21 2000 +0000 + + file i810_dma.c was initially added on branch mga-0-0-1-branch. + +commit ca64f467f296b26826c4e00e1f310a4301ac1e65 +Author: Jeff Hartmann +Date: Sat Jan 8 00:17:21 2000 +0000 + + file i810_drv.h was initially added on branch mga-0-0-1-branch. + +commit 19f6b7f5ff0e836262bb1478d9aae9a65f733f5d +Author: Jeff Hartmann +Date: Sat Jan 8 00:17:21 2000 +0000 + + file i810_drv.c was initially added on branch mga-0-0-1-branch. + +commit c3622292efbf605b09ce63c5bed27d02c4f6cafe +Author: Jeff Hartmann +Date: Sat Jan 8 00:17:21 2000 +0000 + + file i810_bufs.c was initially added on branch mga-0-0-1-branch. + +commit 138484c670aa570d7ad2e0308ace13ec0bfe9ee0 +Author: Jeff Hartmann +Date: Sat Jan 8 00:17:21 2000 +0000 + + file i810_context.c was initially added on branch mga-0-0-1-branch. + +commit 9243a76e0384f66c6c6799917affffbd9ca38ec6 +Author: Rik Faith +Date: Fri Jan 7 06:54:54 2000 +0000 + + Merge between X_3_9_16 and X_3_9_17 Compiles but may not run. + +commit bf0e55959f6c73731500ed9a0d4decc17c9523cd +Author: Jeff Hartmann +Date: Thu Jan 6 23:44:30 2000 +0000 + + file mga_bufs.c was initially added on branch mga-0-0-1-branch. + +commit cbb5afb3386a074f1b05983ed3880b3b33cb0d26 +Author: Jeff Hartmann +Date: Thu Jan 6 23:44:30 2000 +0000 + + file mga_context.c was initially added on branch mga-0-0-1-branch. + +commit 19da57df105a2a71842cf3a6a18ebb07c86c95fc +Author: Jeff Hartmann +Date: Thu Jan 6 23:44:30 2000 +0000 + + file ctxbitmap.c was initially added on branch mga-0-0-1-branch. + +commit 1c33c6909546e3b51f36c04bba12cc2275149902 +Author: Rik Faith +Date: Thu Jan 6 12:55:00 2000 +0000 + + Import of XFree86 3.9.17 + +commit 0371c290a12f75d36c9c1e7c947bf98fe210908b +Author: Daryll Strauss +Date: Sat Dec 18 18:34:59 1999 +0000 + + Rename the device to be /dev/dri instead of /dev/dri to avoid a conflict. + Rename proc entry from /proc/graphics to /proc/dri to be consistent. + +commit 46e1467a83415f3859ac15b8aa8dfb829c85d1d4 +Author: Rik Faith +Date: Fri Dec 17 17:17:53 1999 +0000 + + file agpsupport.c was initially added on branch ati-4-0-0-branch. + +commit 87fd9a07fc0bd8d052843817703e0032cbe365f6 +Author: Rik Faith +Date: Fri Dec 17 17:15:18 1999 +0000 + + file r128_drv.c was initially added on branch ati-4-0-0-branch. + +commit bf24c3d8819be07d29ee6fdd9bf95b5127c2b018 +Author: Rik Faith +Date: Fri Dec 17 17:15:18 1999 +0000 + + file r128_context.c was initially added on branch ati-4-0-0-branch. + +commit 1606f5b249386c27a0d70a1e7693d1246ada3de5 +Author: Rik Faith +Date: Fri Dec 17 17:15:18 1999 +0000 + + file r128_drv.h was initially added on branch ati-4-0-0-branch. + +commit 32338d3ebb7153b6c9c41bbc1b1f2a627178cb93 +Author: Jeff Hartmann +Date: Wed Dec 15 06:49:15 1999 +0000 + + file mga_drv.c was initially added on branch mga-0-0-1-branch. + +commit 8de9114ea6be1790a8d36cd260e0944f2991d8b8 +Author: Jeff Hartmann +Date: Wed Dec 15 06:49:15 1999 +0000 + + file mga_dma.c was initially added on branch mga-0-0-1-branch. + +commit 1c6999d90c77ae43616f180345dc2257ae65fe3a +Author: Jeff Hartmann +Date: Wed Dec 15 06:49:15 1999 +0000 + + file mga_drv.h was initially added on branch mga-0-0-1-branch. + +commit b03b238dfc4d1992e27878ea6f3cac334f1fd56d +Author: Rik Faith +Date: Wed Dec 8 19:20:20 1999 +0000 + + Sync with Linux 2.3.30 + +commit e1dba5c3a73078dec24f07a6d685435677db94a4 +Author: Daryll Strauss +Date: Tue Dec 7 03:37:16 1999 +0000 + + Move Mesa to xc/extras Update to the latest Mesa 3.2 code Fix the Q3Demo + bugs (white railgun and texture mapping) Simplify driver texture + mapping routines Fix device driver for 2.3 kernels Improve performance + +commit b6a28bfe98f2c89cfb91079bd3c7b63fb0144eb1 +Author: Daryll Strauss +Date: Sun Dec 5 23:10:37 1999 +0000 + + First DRI release of 3dfx driver. + +commit a8ab34ed47c1880b1206812c9b1b8312cd7a3357 +Author: Daryll Strauss +Date: Sun Dec 5 01:19:48 1999 +0000 + + Import XFree 3.9.16 + +commit b3a5766992019fc5f44cc9afd01b2617b76f47a7 +Author: Daryll Strauss +Date: Sun Dec 5 01:19:48 1999 +0000 + + Initial revision diff -Nru libdrm-2.4.52/config.h.in libdrm-2.4.52+really2.4.21/config.h.in --- libdrm-2.4.52/config.h.in 2014-01-20 19:04:46.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/config.h.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,176 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -#undef CRAY_STACKSEG_END - -/* Define to 1 if using `alloca.c'. */ -#undef C_ALLOCA - -/* Define to 1 if you have `alloca', as a function or macro. */ -#undef HAVE_ALLOCA - -/* Define to 1 if you have and it should be used (not on Ultrix). - */ -#undef HAVE_ALLOCA_H - -/* Have Cairo support */ -#undef HAVE_CAIRO - -/* Define to 1 if you have the `clock_gettime' function. */ -#undef HAVE_CLOCK_GETTIME - -/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H - -/* Have EXYNOS support */ -#undef HAVE_EXYNOS - -/* Have freedreno support */ -#undef HAVE_FREEDRENO - -/* Install test programs */ -#undef HAVE_INSTALL_TESTS - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Enable if your compiler supports the Intel __sync_* atomic primitives */ -#undef HAVE_LIBDRM_ATOMIC_PRIMITIVES - -/* Have libudev support */ -#undef HAVE_LIBUDEV - -/* Enable if you have libatomic-ops-dev installed */ -#undef HAVE_LIB_ATOMIC_OPS - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Have nouveau (nvidia) support */ -#undef HAVE_NOUVEAU - -/* Have OMAP support */ -#undef HAVE_OMAP - -/* Define to 1 if you have the `open_memstream' function. */ -#undef HAVE_OPEN_MEMSTREAM - -/* Have radeon support */ -#undef HAVE_RADEON - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Use valgrind intrinsics to suppress false warnings */ -#undef HAVE_VALGRIND - -/* Have vmwgfx kernel headers */ -#undef HAVE_VMWGFX - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#undef LT_OBJDIR - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -#undef STACK_DIRECTION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Have UDEV support */ -#undef UDEV - -/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# undef _TANDEM_SOURCE -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif - - -/* Version number of package */ -#undef VERSION - -/* Enable large inode numbers on Mac OS X 10.5. */ -#ifndef _DARWIN_USE_64_BIT_INODE -# define _DARWIN_USE_64_BIT_INODE 1 -#endif - -/* Number of bits in a file offset, on hosts where this is settable. */ -#undef _FILE_OFFSET_BITS - -/* Define for large files, on AIX-style hosts. */ -#undef _LARGE_FILES - -/* Define to 1 if on MINIX. */ -#undef _MINIX - -/* Define to 2 if the system does not provide POSIX.1 features except with - this defined. */ -#undef _POSIX_1_SOURCE - -/* Define to 1 if you need to in order for `stat' and other things to work. */ -#undef _POSIX_SOURCE - -/* Define to `unsigned int' if does not define. */ -#undef size_t diff -Nru libdrm-2.4.52/configure libdrm-2.4.52+really2.4.21/configure --- libdrm-2.4.52/configure 2014-01-20 19:04:46.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/configure 1970-01-01 00:00:00.000000000 +0000 @@ -1,15686 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libdrm 2.4.52. -# -# Report bugs to . -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1 - - test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ - || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: https://bugs.freedesktop.org/enter_bug.cgi?product=DRI -$0: about your system, including any error possibly output -$0: before this message. Then install a modern shell, or -$0: manually run the script under such a shell if you do -$0: have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - -SHELL=${CONFIG_SHELL-/bin/sh} - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='libdrm' -PACKAGE_TARNAME='libdrm' -PACKAGE_VERSION='2.4.52' -PACKAGE_STRING='libdrm 2.4.52' -PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=DRI' -PACKAGE_URL='' - -ac_unique_file="Makefile.am" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -LIBOBJS -WARN_CFLAGS -kernel_source -HAVE_RADEON_FALSE -HAVE_RADEON_TRUE -HAVE_INTEL_FALSE -HAVE_INTEL_TRUE -VALGRIND_LIBS -VALGRIND_CFLAGS -PCIACCESS_LIBS -PCIACCESS_CFLAGS -HAVE_MANPAGES_STYLESHEET_FALSE -HAVE_MANPAGES_STYLESHEET_TRUE -MANPAGES_STYLESHEET -BUILD_MANPAGES_FALSE -BUILD_MANPAGES_TRUE -XSLTPROC -HAVE_LIBUDEV_FALSE -HAVE_LIBUDEV_TRUE -LIBUDEV_LIBS -LIBUDEV_CFLAGS -HAVE_CAIRO_FALSE -HAVE_CAIRO_TRUE -CAIRO_LIBS -CAIRO_CFLAGS -HAVE_INSTALL_TESTS_FALSE -HAVE_INSTALL_TESTS_TRUE -HAVE_FREEDRENO_FALSE -HAVE_FREEDRENO_TRUE -HAVE_EXYNOS_FALSE -HAVE_EXYNOS_TRUE -HAVE_OMAP_FALSE -HAVE_OMAP_TRUE -HAVE_NOUVEAU_FALSE -HAVE_NOUVEAU_TRUE -HAVE_VMWGFX_FALSE -HAVE_VMWGFX_TRUE -HAVE_LIBKMS_FALSE -HAVE_LIBKMS_TRUE -CLOCK_LIB -pkgconfigdir -PTHREADSTUBS_LIBS -PTHREADSTUBS_CFLAGS -PKG_CONFIG_LIBDIR -PKG_CONFIG_PATH -PKG_CONFIG -OTOOL64 -OTOOL -LIPO -NMEDIT -DSYMUTIL -MANIFEST_TOOL -RANLIB -ac_ct_AR -AR -DLLTOOL -OBJDUMP -LN_S -NM -ac_ct_DUMPBIN -DUMPBIN -LD -FGREP -SED -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -LIBTOOL -ALLOCA -EGREP -GREP -CPP -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_silent_rules -enable_maintainer_mode -enable_dependency_tracking -enable_largefile -enable_static -enable_shared -with_pic -enable_fast_install -with_gnu_ld -with_sysroot -enable_libtool_lock -enable_udev -enable_libkms -enable_intel -enable_radeon -enable_nouveau -enable_vmwgfx -enable_omap_experimental_api -enable_exynos_experimental_api -enable_freedreno_experimental_api -enable_install_test_programs -enable_cairo_tests -enable_manpages -with_kernel_source -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -PKG_CONFIG -PKG_CONFIG_PATH -PKG_CONFIG_LIBDIR -PTHREADSTUBS_CFLAGS -PTHREADSTUBS_LIBS -CAIRO_CFLAGS -CAIRO_LIBS -LIBUDEV_CFLAGS -LIBUDEV_LIBS -PCIACCESS_CFLAGS -PCIACCESS_LIBS -VALGRIND_CFLAGS -VALGRIND_LIBS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures libdrm 2.4.52 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/libdrm] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of libdrm 2.4.52:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --disable-maintainer-mode - disable make rules and dependencies not useful (and - sometimes confusing) to the casual installer - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --disable-largefile omit support for large files - --enable-static[=PKGS] build static libraries [default=no] - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --enable-udev Enable support for using udev instead of mknod - (default: disabled) - --disable-libkms Disable KMS mm abstraction library (default: auto) - --disable-intel Enable support for intel's KMS API (default: auto) - --disable-radeon Enable support for radeon's KMS API (default: auto) - --disable-nouveau Enable support for nouveau's KMS API (default: auto) - --disable-vmwgfx Enable support for vmwgfx's KMS API (default: yes) - --enable-omap-experimental-api - Enable support for OMAP's experimental API (default: - disabled) - --enable-exynos-experimental-api - Enable support for EXYNOS's experimental API - (default: disabled) - --enable-freedreno-experimental-api - Enable support for freedreno's experimental API - (default: disabled) - --enable-install-test-programs - Install test programs (default: no) - --enable-cairo-tests Enable support for Cairo rendering in tests - (default: auto) - --disable-manpages disable manpages [default=enabled] - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-sysroot=DIR Search for dependent libraries within DIR - (or the compiler's sysroot if not specified). - --with-kernel-source specify path to linux kernel source - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - PKG_CONFIG path to pkg-config utility - PKG_CONFIG_PATH - directories to add to pkg-config's search path - PKG_CONFIG_LIBDIR - path overriding pkg-config's built-in search path - PTHREADSTUBS_CFLAGS - C compiler flags for PTHREADSTUBS, overriding pkg-config - PTHREADSTUBS_LIBS - linker flags for PTHREADSTUBS, overriding pkg-config - CAIRO_CFLAGS - C compiler flags for CAIRO, overriding pkg-config - CAIRO_LIBS linker flags for CAIRO, overriding pkg-config - LIBUDEV_CFLAGS - C compiler flags for LIBUDEV, overriding pkg-config - LIBUDEV_LIBS - linker flags for LIBUDEV, overriding pkg-config - PCIACCESS_CFLAGS - C compiler flags for PCIACCESS, overriding pkg-config - PCIACCESS_LIBS - linker flags for PCIACCESS, overriding pkg-config - VALGRIND_CFLAGS - C compiler flags for VALGRIND, overriding pkg-config - VALGRIND_LIBS - linker flags for VALGRIND, overriding pkg-config - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -libdrm configure 2.4.52 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## --------------------------------------------------------------------- ## -## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=DRI ## -## --------------------------------------------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_check_type LINENO TYPE VAR INCLUDES -# ------------------------------------------- -# Tests whether TYPE exists after having included INCLUDES, setting cache -# variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_type - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by libdrm $as_me 2.4.52, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -ac_config_headers="$ac_config_headers config.h" - - - -ac_aux_dir= -for ac_dir in build-aux "$srcdir"/build-aux; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - - -am__api_version='1.13' - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='libdrm' - VERSION='2.4.52' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' - -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - -# Enable quiet compiles on automake 1.11. -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=0;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - - -# Check for programs -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = xyes; then : - MINIX=yes -else - MINIX= -fi - - - if test "$MINIX" = yes; then - -$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h - - -$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h - - -$as_echo "#define _MINIX 1" >>confdefs.h - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 -$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if ${ac_cv_safe_to_define___extensions__+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# define __EXTENSIONS__ 1 - $ac_includes_default -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_safe_to_define___extensions__=yes -else - ac_cv_safe_to_define___extensions__=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 -$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } - test $ac_cv_safe_to_define___extensions__ = yes && - $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h - - $as_echo "#define _ALL_SOURCE 1" >>confdefs.h - - $as_echo "#define _GNU_SOURCE 1" >>confdefs.h - - $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h - - -# Check whether --enable-largefile was given. -if test "${enable_largefile+set}" = set; then : - enableval=$enable_largefile; -fi - -if test "$enable_largefile" != no; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -$as_echo_n "checking for special C compiler options needed for large files... " >&6; } -if ${ac_cv_sys_largefile_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - break -fi -rm -f core conftest.err conftest.$ac_objext - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_largefile_CC=' -n32'; break -fi -rm -f core conftest.err conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -$as_echo "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if ${ac_cv_sys_file_offset_bits+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=64; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -$as_echo "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF -;; -esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if ${ac_cv_sys_large_files+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _LARGE_FILES 1 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=1; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -$as_echo "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF -;; -esac -rm -rf conftest* - fi - - -fi - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned int -_ACEOF - -fi - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 -$as_echo_n "checking for working alloca.h... " >&6; } -if ${ac_cv_working_alloca_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_working_alloca_h=yes -else - ac_cv_working_alloca_h=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 -$as_echo "$ac_cv_working_alloca_h" >&6; } -if test $ac_cv_working_alloca_h = yes; then - -$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 -$as_echo_n "checking for alloca... " >&6; } -if ${ac_cv_func_alloca_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# ifdef HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca (size_t); -# endif -# endif -# endif -# endif -#endif - -int -main () -{ -char *p = (char *) alloca (1); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_alloca_works=yes -else - ac_cv_func_alloca_works=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 -$as_echo "$ac_cv_func_alloca_works" >&6; } - -if test $ac_cv_func_alloca_works = yes; then - -$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h - -else - # The SVR3 libPW and SVR4 libucb both contain incompatible functions -# that cause trouble. Some versions do not even contain alloca or -# contain a buggy version. If you still want to use their alloca, -# use ar to extract alloca.o from them instead of compiling alloca.c. - -ALLOCA=\${LIBOBJDIR}alloca.$ac_objext - -$as_echo "#define C_ALLOCA 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if ${ac_cv_os_cray+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined CRAY && ! defined CRAY2 -webecray -#else -wenotbecray -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then : - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -f conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - -cat >>confdefs.h <<_ACEOF -#define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if ${ac_cv_c_stack_direction+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_c_stack_direction=0 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -find_stack_direction (int *addr, int depth) -{ - int dir, dummy = 0; - if (! addr) - addr = &dummy; - *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; - dir = depth ? find_stack_direction (addr, depth - 1) : 0; - return dir + dummy; -} - -int -main (int argc, char **argv) -{ - return find_stack_direction (0, argc + !argv + 20) < 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_stack_direction=1 -else - ac_cv_c_stack_direction=-1 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 -$as_echo "$ac_cv_c_stack_direction" >&6; } -cat >>confdefs.h <<_ACEOF -#define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - - -# Initialize libtool - -case `pwd` in - *\ * | *\ *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; -esac - - - -macro_version='2.4.2' -macro_revision='1.3337' - - - - - - - - - - - - - -ltmain="$ac_aux_dir/ltmain.sh" - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 -$as_echo_n "checking how to print strings... " >&6; } -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "" -} - -case "$ECHO" in - printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 -$as_echo "printf" >&6; } ;; - print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 -$as_echo "print -r" >&6; } ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 -$as_echo "cat" >&6; } ;; -esac - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_SED" || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed - -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 -$as_echo_n "checking for fgrep... " >&6; } -if ${ac_cv_path_FGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - if test -z "$FGREP"; then - ac_path_FGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_FGREP" || continue -# Check for GNU ac_path_FGREP and select it if it is found. - # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in -*GNU*) - ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" - ac_path_FGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_FGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_FGREP=$FGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" - - -test -z "$GREP" && GREP=grep - - - - - - - - - - - - - - - - - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if ${lt_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${lt_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 -$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if ${lt_cv_path_NM+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - if test -n "$ac_tool_prefix"; then - for ac_prog in dumpbin "link -dump" - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DUMPBIN"; then - ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DUMPBIN=$ac_cv_prog_DUMPBIN -if test -n "$DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 -$as_echo "$DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$DUMPBIN" && break - done -fi -if test -z "$DUMPBIN"; then - ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in dumpbin "link -dump" -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DUMPBIN"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN -if test -n "$ac_ct_DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 -$as_echo "$ac_ct_DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_DUMPBIN" && break -done - - if test "x$ac_ct_DUMPBIN" = x; then - DUMPBIN=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DUMPBIN=$ac_ct_DUMPBIN - fi -fi - - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - DUMPBIN=: - ;; - esac - fi - - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi -fi -test -z "$NM" && NM=nm - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 -$as_echo_n "checking the name lister ($NM) interface... " >&6; } -if ${lt_cv_nm_interface+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -$as_echo "$lt_cv_nm_interface" >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -# find the maximum length of command line arguments -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 -$as_echo_n "checking the maximum length of command line arguments... " >&6; } -if ${lt_cv_sys_max_cmd_len+:} false; then : - $as_echo_n "(cached) " >&6 -else - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - os2*) - # The test takes a long time on OS/2. - lt_cv_sys_max_cmd_len=8192 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } -fi -max_cmd_len=$lt_cv_sys_max_cmd_len - - - - - - -: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -$as_echo "$xsi_shell" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -lt_shell_append=no -( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -$as_echo "$lt_shell_append" >&6; } - - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi - - - - - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -if ${lt_cv_to_host_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac - -fi - -to_host_file_cmd=$lt_cv_to_host_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -$as_echo "$lt_cv_to_host_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -if ${lt_cv_to_tool_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - #assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac - -fi - -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -$as_echo "$lt_cv_to_tool_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 -$as_echo_n "checking for $LD option to reload object files... " >&6; } -if ${lt_cv_ld_reload_flag+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_reload_flag='-r' -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$lt_cv_ld_reload_flag" >&6; } -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - if test "$GCC" != yes; then - reload_cmds=false - fi - ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 -$as_echo_n "checking how to recognize dependent libraries... " >&6; } -if ${lt_cv_deplibs_check_method+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[4-9]*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. - if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - - - - - - - - - - - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - - - - - - - -if test -n "$ac_tool_prefix"; then - for ac_prog in ar - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AR" && break - done -fi -if test -z "$AR"; then - ac_ct_AR=$AR - for ac_prog in ar -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_AR" && break -done - - if test "x$ac_ct_AR" = x; then - AR="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -fi - -: ${AR=ar} -: ${AR_FLAGS=cru} - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -$as_echo_n "checking for archiver @FILE support... " >&6; } -if ${lt_cv_ar_at_file+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ar_at_file=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -$as_echo "$lt_cv_ar_at_file" >&6; } - -if test "x$lt_cv_ar_at_file" = xno; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -test -z "$STRIP" && STRIP=: - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -test -z "$RANLIB" && RANLIB=: - - - - - - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 -$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if ${lt_cv_sys_global_symbol_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[ABCDGISTW]' - ;; -hpux*) - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK '"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -$as_echo_n "checking for sysroot... " >&6; } - -# Check whether --with-sysroot was given. -if test "${with_sysroot+set}" = set; then : - withval=$with_sysroot; -else - with_sysroot=no -fi - - -lt_sysroot= -case ${with_sysroot} in #( - yes) - if test "$GCC" = yes; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 -$as_echo "${with_sysroot}" >&6; } - as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 - ;; -esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -$as_echo "${lt_sysroot:-no}" >&6; } - - - - - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -fi - -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line '$LINENO' "configure"' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 -$as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if ${lt_cv_cc_needs_belf+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_cc_needs_belf=yes -else - lt_cv_cc_needs_belf=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -$as_echo "$lt_cv_cc_needs_belf" >&6; } - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-solaris*) - LD="${LD-ld} -m elf_x86_64" - ;; - sparc*-*-solaris*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - # GNU ld 2.21 introduced _sol2 emulations. Use them if available. - if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD="${LD-ld}_sol2" - fi - ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks="$enable_libtool_lock" - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -set dummy ${ac_tool_prefix}mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MANIFEST_TOOL"; then - ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -if test -n "$MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -$as_echo "$MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_MANIFEST_TOOL"; then - ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL - # Extract the first word of "mt", so it can be a program name with args. -set dummy mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_MANIFEST_TOOL"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -if test -n "$ac_ct_MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_MANIFEST_TOOL" = x; then - MANIFEST_TOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL - fi -else - MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -fi - -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -if ${lt_cv_path_mainfest_tool+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&5 - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -$as_echo "$lt_cv_path_mainfest_tool" >&6; } -if test "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: -fi - - - - - - - case $host_os in - rhapsody* | darwin*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. -set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DSYMUTIL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 -$as_echo "$DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DSYMUTIL"; then - ac_ct_DSYMUTIL=$DSYMUTIL - # Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DSYMUTIL"; then - ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL -if test -n "$ac_ct_DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 -$as_echo "$ac_ct_DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DSYMUTIL" = x; then - DSYMUTIL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DSYMUTIL=$ac_ct_DSYMUTIL - fi -else - DSYMUTIL="$ac_cv_prog_DSYMUTIL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. -set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_NMEDIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NMEDIT"; then - ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -NMEDIT=$ac_cv_prog_NMEDIT -if test -n "$NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 -$as_echo "$NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_NMEDIT"; then - ac_ct_NMEDIT=$NMEDIT - # Extract the first word of "nmedit", so it can be a program name with args. -set dummy nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_NMEDIT"; then - ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_NMEDIT="nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT -if test -n "$ac_ct_NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 -$as_echo "$ac_ct_NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_NMEDIT" = x; then - NMEDIT=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - NMEDIT=$ac_ct_NMEDIT - fi -else - NMEDIT="$ac_cv_prog_NMEDIT" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. -set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_LIPO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$LIPO"; then - ac_cv_prog_LIPO="$LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -LIPO=$ac_cv_prog_LIPO -if test -n "$LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 -$as_echo "$LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_LIPO"; then - ac_ct_LIPO=$LIPO - # Extract the first word of "lipo", so it can be a program name with args. -set dummy lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_LIPO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_LIPO"; then - ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_LIPO="lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO -if test -n "$ac_ct_LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 -$as_echo "$ac_ct_LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_LIPO" = x; then - LIPO=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - LIPO=$ac_ct_LIPO - fi -else - LIPO="$ac_cv_prog_LIPO" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL"; then - ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL=$ac_cv_prog_OTOOL -if test -n "$OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 -$as_echo "$OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL"; then - ac_ct_OTOOL=$OTOOL - # Extract the first word of "otool", so it can be a program name with args. -set dummy otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL"; then - ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OTOOL="otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL -if test -n "$ac_ct_OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 -$as_echo "$ac_ct_OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL" = x; then - OTOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL=$ac_ct_OTOOL - fi -else - OTOOL="$ac_cv_prog_OTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OTOOL64+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL64"; then - ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL64=$ac_cv_prog_OTOOL64 -if test -n "$OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 -$as_echo "$OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL64"; then - ac_ct_OTOOL64=$OTOOL64 - # Extract the first word of "otool64", so it can be a program name with args. -set dummy otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL64"; then - ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OTOOL64="otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 -if test -n "$ac_ct_OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 -$as_echo "$ac_ct_OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL64" = x; then - OTOOL64=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL64=$ac_ct_OTOOL64 - fi -else - OTOOL64="$ac_cv_prog_OTOOL64" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 -$as_echo_n "checking for -single_module linker flag... " >&6; } -if ${lt_cv_apple_cc_single_mod+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - # If there is a non-empty error log, and "single_module" - # appears in it, assume the flag caused a linker warning - if test -s conftest.err && $GREP single_module conftest.err; then - cat conftest.err >&5 - # Otherwise, if the output was created with a 0 exit code from - # the compiler, it worked. - elif test -f libconftest.dylib && test $_lt_result -eq 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&5 - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 -$as_echo "$lt_cv_apple_cc_single_mod" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 -$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } -if ${lt_cv_ld_exported_symbols_list+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_ld_exported_symbols_list=yes -else - lt_cv_ld_exported_symbols_list=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 -$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 -$as_echo_n "checking for -force_load linker flag... " >&6; } -if ${lt_cv_ld_force_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 - echo "$RANLIB libconftest.a" >&5 - $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -s conftest.err && $GREP force_load conftest.err; then - cat conftest.err >&5 - elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&5 - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 -$as_echo "$lt_cv_ld_force_load" >&6; } - case $host_os in - rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[012]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac - -for ac_header in dlfcn.h -do : - ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default -" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - -fi - -done - - - - - -# Set options -# Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_static=no -fi - - - - - - - - - - - enable_dlopen=no - - - enable_win32_dll=no - - - # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_shared=yes -fi - - - - - - - - - - - -# Check whether --with-pic was given. -if test "${with_pic+set}" = set; then : - withval=$with_pic; lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for lt_pkg in $withval; do - IFS="$lt_save_ifs" - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - pic_mode=default -fi - - -test -z "$pic_mode" && pic_mode=default - - - - - - - - # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then : - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_fast_install=yes -fi - - - - - - - - - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -test -z "$LN_S" && LN_S="ln -s" - - - - - - - - - - - - - - -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 -$as_echo_n "checking for objdir... " >&6; } -if ${lt_cv_objdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -$as_echo "$lt_cv_objdir" >&6; } -objdir=$lt_cv_objdir - - - - - -cat >>confdefs.h <<_ACEOF -#define LT_OBJDIR "$lt_cv_objdir/" -_ACEOF - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` - - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 -$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 -$as_echo_n "checking for file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -# Use C for the default configuration in the libtool script - -lt_save_CC="$CC" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - -lt_prog_compiler_no_builtin_flag= - -if test "$GCC" = yes; then - case $cc_basename in - nvcc*) - lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; - *) - lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - - - - - - - lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - lt_prog_compiler_pic='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - lt_prog_compiler_static= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - lt_prog_compiler_wl='-Xlinker ' - if test -n "$lt_prog_compiler_pic"; then - lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" - fi - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; - nagfor*) - # NAG Fortran compiler - lt_prog_compiler_wl='-Wl,-Wl,,' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-qpic' - lt_prog_compiler_static='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' - ;; - *Sun\ F* | *Sun*Fortran*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Qoption ld ' - ;; - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' - ;; - *Intel*\ [CF]*Compiler*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - *Portland\ Group*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - esac - ;; - esac - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -if ${lt_cv_prog_compiler_pic+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -$as_echo "$lt_cv_prog_compiler_pic" >&6; } -lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if ${lt_cv_prog_compiler_pic_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 -$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } - -if test x"$lt_cv_prog_compiler_pic_works" = xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi - - - - - - - - - - - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if ${lt_cv_prog_compiler_static_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works=yes - fi - else - lt_cv_prog_compiler_static_works=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 -$as_echo "$lt_cv_prog_compiler_static_works" >&6; } - -if test x"$lt_cv_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag= - always_export_symbols=no - archive_cmds= - archive_expsym_cmds= - compiler_needs_object=no - enable_shared_with_static_runtimes=no - export_dynamic_flag_spec= - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - hardcode_automatic=no - hardcode_direct=no - hardcode_direct_absolute=no - hardcode_libdir_flag_spec= - hardcode_libdir_separator= - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - inherit_rpath=no - link_all_deplibs=unknown - module_cmds= - module_expsym_cmds= - old_archive_from_new_cmds= - old_archive_from_expsyms_cmds= - thread_safe_flag_spec= - whole_archive_flag_spec= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; - *\ \(GNU\ Binutils\)\ [3-9]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - export_dynamic_flag_spec='${wl}--export-all-symbols' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' - exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - link_all_deplibs=yes - ;; - - interix[3-9]*) - hardcode_direct=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - whole_archive_flag_spec= - tmp_sharedflag='--shared' ;; - xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - compiler_needs_object=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - compiler_needs_object=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - ld_shlibs=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = no; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_direct_absolute=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - file_list_spec='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - export_dynamic_flag_spec='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - if ${lt_cv_aix_libpath_+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - if ${lt_cv_aix_libpath_+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - fi - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl*) - # Native MSVC - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - always_export_symbols=yes - file_list_spec='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, )='true' - enable_shared_with_static_runtimes=yes - exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - old_postinstall_cmds='chmod 644 $oldlib' - postlink_cmds='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - enable_shared_with_static_runtimes=yes - ;; - esac - ;; - - darwin* | rhapsody*) - - - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - - else - whole_archive_flag_spec='' - fi - link_all_deplibs=yes - allow_undefined_flag="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - - else - ld_shlibs=no - fi - - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2.*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 -$as_echo_n "checking if $CC understands -b... " >&6; } -if ${lt_cv_prog_compiler__b+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler__b=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -b" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler__b=yes - fi - else - lt_cv_prog_compiler__b=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 -$as_echo "$lt_cv_prog_compiler__b" >&6; } - -if test x"$lt_cv_prog_compiler__b" = xyes; then - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -fi - - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -if ${lt_cv_irix_exported_symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int foo (void) { return 0; } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_irix_exported_symbol=yes -else - lt_cv_irix_exported_symbol=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -$as_echo "$lt_cv_irix_exported_symbol" >&6; } - if test "$lt_cv_irix_exported_symbol" = yes; then - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - inherit_rpath=yes - link_all_deplibs=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - hardcode_shlibpath_var=no - hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - archive_cmds_need_lc='no' - hardcode_libdir_separator=: - ;; - - solaris*) - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='${wl}' - archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-R,$libdir' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='${wl}-Blargedynsym' - ;; - esac - fi - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no - -with_gnu_ld=$with_gnu_ld - - - - - - - - - - - - - - - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } -if ${lt_cv_archive_cmds_need_lc+:} false; then : - $as_echo_n "(cached) " >&6 -else - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 - (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - then - lt_cv_archive_cmds_need_lc=no - else - lt_cv_archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 -$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } - archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc - ;; - esac - fi - ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } - -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([A-Za-z]:\),\1,g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[4-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec="$LIB" - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[23].*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - # Handle Gentoo/FreeBSD as it was Linux - case $host_vendor in - gentoo) - version_type=linux ;; - *) - version_type=freebsd-$objformat ;; - esac - - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - linux) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - need_lib_prefix=no - need_version=no - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[3-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux # correct to gnu/linux during the next big refactor - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - if ${lt_cv_shlibpath_overrides_runpath+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : - lt_cv_shlibpath_overrides_runpath=yes -fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - -fi - - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || - test -n "$runpath_var" || - test "X$hardcode_automatic" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -$as_echo "$hardcode_action" >&6; } - -if test "$hardcode_action" = relink || - test "$inherit_rpath" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - - - - - - if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if ${ac_cv_lib_dld_shl_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_shl_load=yes -else - ac_cv_lib_dld_shl_load=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -else - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 -$as_echo_n "checking for dlopen in -lsvld... " >&6; } -if ${ac_cv_lib_svld_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_svld_dlopen=yes -else - ac_cv_lib_svld_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 -$as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 -$as_echo_n "checking for dld_link in -ldld... " >&6; } -if ${ac_cv_lib_dld_dld_link+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int -main () -{ -return dld_link (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_dld_link=yes -else - ac_cv_lib_dld_dld_link=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 -$as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = xyes; then : - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 -$as_echo_n "checking whether a program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -$as_echo "$lt_cv_dlopen_self" >&6; } - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 -$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self_static+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$lt_cv_dlopen_self_static" >&6; } - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - - - - - - - - - - - - - - - - -striplib= -old_striplib= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 -$as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -fi - - - - - - - - - - - - - # Report which library types will actually be built - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&6; } - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } - - - - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - - - - - - - - - - - - - - - ac_config_commands="$ac_config_commands libtool" - - - - -# Only expand once: - - - - - - - - - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREADSTUBS" >&5 -$as_echo_n "checking for PTHREADSTUBS... " >&6; } - -if test -n "$PTHREADSTUBS_CFLAGS"; then - pkg_cv_PTHREADSTUBS_CFLAGS="$PTHREADSTUBS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pthread-stubs\""; } >&5 - ($PKG_CONFIG --exists --print-errors "pthread-stubs") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PTHREADSTUBS_CFLAGS=`$PKG_CONFIG --cflags "pthread-stubs" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$PTHREADSTUBS_LIBS"; then - pkg_cv_PTHREADSTUBS_LIBS="$PTHREADSTUBS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pthread-stubs\""; } >&5 - ($PKG_CONFIG --exists --print-errors "pthread-stubs") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PTHREADSTUBS_LIBS=`$PKG_CONFIG --libs "pthread-stubs" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - PTHREADSTUBS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "pthread-stubs" 2>&1` - else - PTHREADSTUBS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "pthread-stubs" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$PTHREADSTUBS_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (pthread-stubs) were not met: - -$PTHREADSTUBS_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables PTHREADSTUBS_CFLAGS -and PTHREADSTUBS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables PTHREADSTUBS_CFLAGS -and PTHREADSTUBS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } -else - PTHREADSTUBS_CFLAGS=$pkg_cv_PTHREADSTUBS_CFLAGS - PTHREADSTUBS_LIBS=$pkg_cv_PTHREADSTUBS_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - - - -pkgconfigdir=${libdir}/pkgconfig - -# Check whether --enable-udev was given. -if test "${enable_udev+set}" = set; then : - enableval=$enable_udev; UDEV=$enableval -else - UDEV=no -fi - - -# Check whether --enable-libkms was given. -if test "${enable_libkms+set}" = set; then : - enableval=$enable_libkms; LIBKMS=$enableval -else - LIBKMS=auto -fi - - -# Check whether --enable-intel was given. -if test "${enable_intel+set}" = set; then : - enableval=$enable_intel; INTEL=$enableval -else - INTEL=auto -fi - - -# Check whether --enable-radeon was given. -if test "${enable_radeon+set}" = set; then : - enableval=$enable_radeon; RADEON=$enableval -else - RADEON=auto -fi - - -# Check whether --enable-nouveau was given. -if test "${enable_nouveau+set}" = set; then : - enableval=$enable_nouveau; NOUVEAU=$enableval -else - NOUVEAU=auto -fi - - -# Check whether --enable-vmwgfx was given. -if test "${enable_vmwgfx+set}" = set; then : - enableval=$enable_vmwgfx; VMWGFX=$enableval -else - VMWGFX=yes -fi - - -# Check whether --enable-omap-experimental-api was given. -if test "${enable_omap_experimental_api+set}" = set; then : - enableval=$enable_omap_experimental_api; OMAP=$enableval -else - OMAP=no -fi - - -# Check whether --enable-exynos-experimental-api was given. -if test "${enable_exynos_experimental_api+set}" = set; then : - enableval=$enable_exynos_experimental_api; EXYNOS=$enableval -else - EXYNOS=no -fi - - -# Check whether --enable-freedreno-experimental-api was given. -if test "${enable_freedreno_experimental_api+set}" = set; then : - enableval=$enable_freedreno_experimental_api; FREEDRENO=$enableval -else - FREEDRENO=no -fi - - -# Check whether --enable-install-test-programs was given. -if test "${enable_install_test_programs+set}" = set; then : - enableval=$enable_install_test_programs; INSTALL_TESTS=$enableval -else - INSTALL_TESTS=no -fi - - - - - -for ac_func in clock_gettime -do : - ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" -if test "x$ac_cv_func_clock_gettime" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_GETTIME 1 -_ACEOF - CLOCK_LIB= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 -$as_echo_n "checking for clock_gettime in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_gettime+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char clock_gettime (); -int -main () -{ -return clock_gettime (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_clock_gettime=yes -else - ac_cv_lib_rt_clock_gettime=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 -$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; } -if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then : - CLOCK_LIB=-lrt -else - as_fn_error $? "Couldn't find clock_gettime" "$LINENO" 5 -fi - -fi -done - - - -for ac_func in open_memstream -do : - ac_fn_c_check_func "$LINENO" "open_memstream" "ac_cv_func_open_memstream" -if test "x$ac_cv_func_open_memstream" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_OPEN_MEMSTREAM 1 -_ACEOF - HAVE_OPEN_MEMSTREAM=yes -fi -done - - - - -MAYBE_WARN="-Wall -Wextra \ --Wsign-compare -Werror-implicit-function-declaration \ --Wpointer-arith -Wwrite-strings -Wstrict-prototypes \ --Wmissing-prototypes -Wmissing-declarations -Wnested-externs \ --Wpacked -Wswitch-enum -Wmissing-format-attribute \ --Wstrict-aliasing=2 -Winit-self \ --Wdeclaration-after-statement -Wold-style-definition \ --Wno-missing-field-initializers -Wno-unused-parameter \ --Wno-attributes -Wno-long-long -Winline" - -# invalidate cached value if MAYBE_WARN has changed -if test "x$libdrm_cv_warn_maybe" != "x$MAYBE_WARN"; then - unset libdrm_cv_warn_cflags -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported warning flags" >&5 -$as_echo_n "checking for supported warning flags... " >&6; } -if ${libdrm_cv_warn_cflags+:} false; then : - $as_echo_n "(cached) " >&6 -else - - echo - WARN_CFLAGS="" - - # Some warning options are not supported by all versions of - # gcc, so test all desired options against the current - # compiler. - # - # Note that there are some order dependencies - # here. Specifically, an option that disables a warning will - # have no net effect if a later option then enables that - # warnings, (perhaps implicitly). So we put some grouped - # options (-Wall and -Wextra) up front and the -Wno options - # last. - - for W in $MAYBE_WARN; do - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $W" >&5 -$as_echo_n "checking whether $CC supports $W... " >&6; } - - libdrm_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $W" - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - libdrm_cc_flag=yes -else - libdrm_cc_flag=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$libdrm_save_CFLAGS" - - if test "x$libdrm_cc_flag" = "xyes"; then - WARN_CFLAGS="$WARN_CFLAGS $W" - else - : - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libdrm_cc_flag" >&5 -$as_echo "$libdrm_cc_flag" >&6; } - - done - - libdrm_cv_warn_cflags=$WARN_CFLAGS - libdrm_cv_warn_maybe=$MAYBE_WARN - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking which warning flags were supported" >&5 -$as_echo_n "checking which warning flags were supported... " >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libdrm_cv_warn_cflags" >&5 -$as_echo "$libdrm_cv_warn_cflags" >&6; } -WARN_CFLAGS="$libdrm_cv_warn_cflags" - -if test "x$UDEV" = xyes; then - -$as_echo "#define UDEV 1" >>confdefs.h - -fi - - -if test "x$LIBKMS" = xauto ; then - case $host_os in - linux*) LIBKMS="yes" ;; - *) LIBKMS="no" ;; - esac -fi - - if test "x$LIBKMS" = xyes; then - HAVE_LIBKMS_TRUE= - HAVE_LIBKMS_FALSE='#' -else - HAVE_LIBKMS_TRUE='#' - HAVE_LIBKMS_FALSE= -fi - - - if test "x$VMWGFX" = xyes; then - HAVE_VMWGFX_TRUE= - HAVE_VMWGFX_FALSE='#' -else - HAVE_VMWGFX_TRUE='#' - HAVE_VMWGFX_FALSE= -fi - -if test "x$VMWGFX" = xyes; then - -$as_echo "#define HAVE_VMWGFX 1" >>confdefs.h - -fi - - if test "x$NOUVEAU" = xyes; then - HAVE_NOUVEAU_TRUE= - HAVE_NOUVEAU_FALSE='#' -else - HAVE_NOUVEAU_TRUE='#' - HAVE_NOUVEAU_FALSE= -fi - -if test "x$NOUVEAU" = xyes; then - -$as_echo "#define HAVE_NOUVEAU 1" >>confdefs.h - -fi - - if test "x$OMAP" = xyes; then - HAVE_OMAP_TRUE= - HAVE_OMAP_FALSE='#' -else - HAVE_OMAP_TRUE='#' - HAVE_OMAP_FALSE= -fi - -if test "x$OMAP" = xyes; then - -$as_echo "#define HAVE_OMAP 1" >>confdefs.h - -fi - - if test "x$EXYNOS" = xyes; then - HAVE_EXYNOS_TRUE= - HAVE_EXYNOS_FALSE='#' -else - HAVE_EXYNOS_TRUE='#' - HAVE_EXYNOS_FALSE= -fi - -if test "x$EXYNOS" = xyes; then - -$as_echo "#define HAVE_EXYNOS 1" >>confdefs.h - -fi - - if test "x$FREEDRENO" = xyes; then - HAVE_FREEDRENO_TRUE= - HAVE_FREEDRENO_FALSE='#' -else - HAVE_FREEDRENO_TRUE='#' - HAVE_FREEDRENO_FALSE= -fi - -if test "x$FREEDRENO" = xyes; then - -$as_echo "#define HAVE_FREEDRENO 1" >>confdefs.h - -fi - - if test "x$INSTALL_TESTS" = xyes; then - HAVE_INSTALL_TESTS_TRUE= - HAVE_INSTALL_TESTS_FALSE='#' -else - HAVE_INSTALL_TESTS_TRUE='#' - HAVE_INSTALL_TESTS_FALSE= -fi - -if test "x$INSTALL_TESTS" = xyes; then - -$as_echo "#define HAVE_INSTALL_TESTS 1" >>confdefs.h - -fi - -# Check whether --enable-cairo-tests was given. -if test "${enable_cairo_tests+set}" = set; then : - enableval=$enable_cairo_tests; CAIRO=$enableval -else - CAIRO=auto -fi - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAIRO" >&5 -$as_echo_n "checking for CAIRO... " >&6; } - -if test -n "$CAIRO_CFLAGS"; then - pkg_cv_CAIRO_CFLAGS="$CAIRO_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cairo") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CAIRO_CFLAGS=`$PKG_CONFIG --cflags "cairo" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CAIRO_LIBS"; then - pkg_cv_CAIRO_LIBS="$CAIRO_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cairo") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CAIRO_LIBS=`$PKG_CONFIG --libs "cairo" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CAIRO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cairo" 2>&1` - else - CAIRO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cairo" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CAIRO_PKG_ERRORS" >&5 - - HAVE_CAIRO=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - HAVE_CAIRO=no -else - CAIRO_CFLAGS=$pkg_cv_CAIRO_CFLAGS - CAIRO_LIBS=$pkg_cv_CAIRO_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_CAIRO=yes -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Cairo tests" >&5 -$as_echo_n "checking whether to enable Cairo tests... " >&6; } -if test "x$CAIRO" = xauto; then - CAIRO="$HAVE_CAIRO" -fi -if test "x$CAIRO" = xyes; then - if ! test "x$HAVE_CAIRO" = xyes; then - as_fn_error $? "Cairo support required but not present" "$LINENO" 5 - fi - -$as_echo "#define HAVE_CAIRO 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CAIRO" >&5 -$as_echo "$CAIRO" >&6; } - if test "x$CAIRO" = xyes; then - HAVE_CAIRO_TRUE= - HAVE_CAIRO_FALSE='#' -else - HAVE_CAIRO_TRUE='#' - HAVE_CAIRO_FALSE= -fi - - -# For enumerating devices in test case - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBUDEV" >&5 -$as_echo_n "checking for LIBUDEV... " >&6; } - -if test -n "$LIBUDEV_CFLAGS"; then - pkg_cv_LIBUDEV_CFLAGS="$LIBUDEV_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libudev\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libudev") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBUDEV_CFLAGS=`$PKG_CONFIG --cflags "libudev" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$LIBUDEV_LIBS"; then - pkg_cv_LIBUDEV_LIBS="$LIBUDEV_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libudev\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libudev") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBUDEV_LIBS=`$PKG_CONFIG --libs "libudev" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - LIBUDEV_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libudev" 2>&1` - else - LIBUDEV_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libudev" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBUDEV_PKG_ERRORS" >&5 - - HAVE_LIBUDEV=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - HAVE_LIBUDEV=no -else - LIBUDEV_CFLAGS=$pkg_cv_LIBUDEV_CFLAGS - LIBUDEV_LIBS=$pkg_cv_LIBUDEV_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_LIBUDEV=yes -fi -if test "x$HAVE_LIBUDEV" = xyes; then - -$as_echo "#define HAVE_LIBUDEV 1" >>confdefs.h - -fi - if test "x$HAVE_LIBUDEV" = xyes; then - HAVE_LIBUDEV_TRUE= - HAVE_LIBUDEV_FALSE='#' -else - HAVE_LIBUDEV_TRUE='#' - HAVE_LIBUDEV_FALSE= -fi - - -# xsltproc for docbook manpages -# Check whether --enable-manpages was given. -if test "${enable_manpages+set}" = set; then : - enableval=$enable_manpages; MANS=$enableval -else - MANS=auto -fi - -# Extract the first word of "xsltproc", so it can be a program name with args. -set dummy xsltproc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XSLTPROC+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $XSLTPROC in - [\\/]* | ?:[\\/]*) - ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -XSLTPROC=$ac_cv_path_XSLTPROC -if test -n "$XSLTPROC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5 -$as_echo "$XSLTPROC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"; then - BUILD_MANPAGES_TRUE= - BUILD_MANPAGES_FALSE='#' -else - BUILD_MANPAGES_TRUE='#' - BUILD_MANPAGES_FALSE= -fi - - -# check for offline man-pages stylesheet -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for docbook manpages stylesheet" >&5 -$as_echo_n "checking for docbook manpages stylesheet... " >&6; } -MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" -if test -z "$XSLTPROC_TMP"; then - ac_path_XSLTPROC_TMP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in xsltproc; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_XSLTPROC_TMP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_XSLTPROC_TMP" || continue -if `"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`; then : - HAVE_MANPAGES_STYLESHEET=yes -fi - $ac_path_XSLTPROC_TMP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_XSLTPROC_TMP"; then - : - fi -else - ac_cv_path_XSLTPROC_TMP=$XSLTPROC_TMP -fi - -if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then - HAVE_MANPAGES_STYLESHEET_TRUE= - HAVE_MANPAGES_STYLESHEET_FALSE='#' -else - HAVE_MANPAGES_STYLESHEET_TRUE='#' - HAVE_MANPAGES_STYLESHEET_FALSE= -fi - - -if test "x$INTEL" != "xno" -o "x$RADEON" != "xno" -o "x$NOUVEAU" != "xno" -o "x$OMAP" != "xno" -o "x$FREEDRENO" != "xno"; then - # Check for atomic intrinsics - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for native atomic primitives" >&5 -$as_echo_n "checking for native atomic primitives... " >&6; } -if ${drm_cv_atomic_primitives+:} false; then : - $as_echo_n "(cached) " >&6 -else - - drm_cv_atomic_primitives="none" - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int atomic_add(int i) { return __sync_fetch_and_add (&i, 1); } - int atomic_cmpxchg(int i, int j, int k) { return __sync_val_compare_and_swap (&i, j, k); } - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - drm_cv_atomic_primitives="Intel" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - if test "x$drm_cv_atomic_primitives" = "xnone"; then - ac_fn_c_check_header_mongrel "$LINENO" "atomic_ops.h" "ac_cv_header_atomic_ops_h" "$ac_includes_default" -if test "x$ac_cv_header_atomic_ops_h" = xyes; then : - drm_cv_atomic_primitives="libatomic-ops" -fi - - - fi - - # atomic functions defined in & libc on Solaris - if test "x$drm_cv_atomic_primitives" = "xnone"; then - ac_fn_c_check_func "$LINENO" "atomic_cas_uint" "ac_cv_func_atomic_cas_uint" -if test "x$ac_cv_func_atomic_cas_uint" = xyes; then : - drm_cv_atomic_primitives="Solaris" -fi - - fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $drm_cv_atomic_primitives" >&5 -$as_echo "$drm_cv_atomic_primitives" >&6; } - if test "x$drm_cv_atomic_primitives" = xIntel; then - -$as_echo "#define HAVE_LIBDRM_ATOMIC_PRIMITIVES 1" >>confdefs.h - - fi - if test "x$drm_cv_atomic_primitives" = "xlibatomic-ops"; then - -$as_echo "#define HAVE_LIB_ATOMIC_OPS 1" >>confdefs.h - - fi - - if test "x$drm_cv_atomic_primitives" = "xnone"; then - if test "x$INTEL" != "xauto"; then - if test "x$INTEL" != "xno"; then - as_fn_error $? "libdrm_intel depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package, or, failing both of those, disable support for Intel GPUs by passing --disable-intel to ./configure" "$LINENO" 5 - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling libdrm_intel. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package." >&5 -$as_echo "$as_me: WARNING: Disabling libdrm_intel. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package." >&2;} - INTEL=no - fi - if test "x$RADEON" != "xauto"; then - if test "x$RADEON" != "xno"; then - as_fn_error $? "libdrm_radeon depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package, or, failing both of those, disable support for Radeon support by passing --disable-radeon to ./configure" "$LINENO" 5 - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling libdrm_radeon. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package." >&5 -$as_echo "$as_me: WARNING: Disabling libdrm_radeon. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package." >&2;} - RADEON=no - fi - if test "x$NOUVEAU" != "xauto"; then - if test "x$NOUVEAU" != "xno"; then - as_fn_error $? "libdrm_nouveau depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package, or, failing both of those, disable support for NVIDIA GPUs by passing --disable-nouveau to ./configure" "$LINENO" 5 - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling libdrm_nouveau. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package." >&5 -$as_echo "$as_me: WARNING: Disabling libdrm_nouveau. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package." >&2;} - NOUVEAU=no - fi - else - if test "x$INTEL" != "xno"; then - case $host_cpu in - i?86|x86_64) INTEL=yes ;; - *) INTEL=no ;; - esac - fi - if test "x$RADEON" != "xno"; then - RADEON=yes - fi - if test "x$NOUVEAU" != "xno"; then - NOUVEAU=yes - fi - fi -fi - -if test "x$INTEL" != "xno"; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PCIACCESS" >&5 -$as_echo_n "checking for PCIACCESS... " >&6; } - -if test -n "$PCIACCESS_CFLAGS"; then - pkg_cv_PCIACCESS_CFLAGS="$PCIACCESS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pciaccess >= 0.10\""; } >&5 - ($PKG_CONFIG --exists --print-errors "pciaccess >= 0.10") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PCIACCESS_CFLAGS=`$PKG_CONFIG --cflags "pciaccess >= 0.10" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$PCIACCESS_LIBS"; then - pkg_cv_PCIACCESS_LIBS="$PCIACCESS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pciaccess >= 0.10\""; } >&5 - ($PKG_CONFIG --exists --print-errors "pciaccess >= 0.10") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PCIACCESS_LIBS=`$PKG_CONFIG --libs "pciaccess >= 0.10" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - PCIACCESS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "pciaccess >= 0.10" 2>&1` - else - PCIACCESS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "pciaccess >= 0.10" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$PCIACCESS_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (pciaccess >= 0.10) were not met: - -$PCIACCESS_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables PCIACCESS_CFLAGS -and PCIACCESS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables PCIACCESS_CFLAGS -and PCIACCESS_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } -else - PCIACCESS_CFLAGS=$pkg_cv_PCIACCESS_CFLAGS - PCIACCESS_LIBS=$pkg_cv_PCIACCESS_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi -fi - - - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5 -$as_echo_n "checking for VALGRIND... " >&6; } - -if test -n "$VALGRIND_CFLAGS"; then - pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind\""; } >&5 - ($PKG_CONFIG --exists --print-errors "valgrind") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_VALGRIND_CFLAGS=`$PKG_CONFIG --cflags "valgrind" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$VALGRIND_LIBS"; then - pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind\""; } >&5 - ($PKG_CONFIG --exists --print-errors "valgrind") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_VALGRIND_LIBS=`$PKG_CONFIG --libs "valgrind" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "valgrind" 2>&1` - else - VALGRIND_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "valgrind" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$VALGRIND_PKG_ERRORS" >&5 - - have_valgrind=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - have_valgrind=no -else - VALGRIND_CFLAGS=$pkg_cv_VALGRIND_CFLAGS - VALGRIND_LIBS=$pkg_cv_VALGRIND_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_valgrind=yes -fi -if test "x$have_valgrind" = "xyes"; then - -$as_echo "#define HAVE_VALGRIND 1" >>confdefs.h - -fi - - if test "x$INTEL" != "xno"; then - HAVE_INTEL_TRUE= - HAVE_INTEL_FALSE='#' -else - HAVE_INTEL_TRUE='#' - HAVE_INTEL_FALSE= -fi - - if test "x$RADEON" != "xno"; then - HAVE_RADEON_TRUE= - HAVE_RADEON_FALSE='#' -else - HAVE_RADEON_TRUE='#' - HAVE_RADEON_FALSE= -fi - - if test "x$NOUVEAU" != "xno"; then - HAVE_NOUVEAU_TRUE= - HAVE_NOUVEAU_FALSE='#' -else - HAVE_NOUVEAU_TRUE='#' - HAVE_NOUVEAU_FALSE= -fi - -if test "x$RADEON" = xyes; then - -$as_echo "#define HAVE_RADEON 1" >>confdefs.h - -fi - - -# Check whether --with-kernel-source was given. -if test "${with_kernel_source+set}" = set; then : - withval=$with_kernel_source; kernel_source="$with_kernel_source" -fi - - - - -ac_config_files="$ac_config_files Makefile libkms/Makefile libkms/libkms.pc intel/Makefile intel/libdrm_intel.pc radeon/Makefile radeon/libdrm_radeon.pc nouveau/Makefile nouveau/libdrm_nouveau.pc omap/Makefile omap/libdrm_omap.pc exynos/Makefile exynos/libdrm_exynos.pc freedreno/Makefile freedreno/libdrm_freedreno.pc tests/Makefile tests/modeprint/Makefile tests/modetest/Makefile tests/kmstest/Makefile tests/radeon/Makefile tests/vbltest/Makefile tests/exynos/Makefile include/Makefile include/drm/Makefile man/Makefile libdrm.pc" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_LIBKMS_TRUE}" && test -z "${HAVE_LIBKMS_FALSE}"; then - as_fn_error $? "conditional \"HAVE_LIBKMS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_VMWGFX_TRUE}" && test -z "${HAVE_VMWGFX_FALSE}"; then - as_fn_error $? "conditional \"HAVE_VMWGFX\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_NOUVEAU_TRUE}" && test -z "${HAVE_NOUVEAU_FALSE}"; then - as_fn_error $? "conditional \"HAVE_NOUVEAU\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_OMAP_TRUE}" && test -z "${HAVE_OMAP_FALSE}"; then - as_fn_error $? "conditional \"HAVE_OMAP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_EXYNOS_TRUE}" && test -z "${HAVE_EXYNOS_FALSE}"; then - as_fn_error $? "conditional \"HAVE_EXYNOS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_FREEDRENO_TRUE}" && test -z "${HAVE_FREEDRENO_FALSE}"; then - as_fn_error $? "conditional \"HAVE_FREEDRENO\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_INSTALL_TESTS_TRUE}" && test -z "${HAVE_INSTALL_TESTS_FALSE}"; then - as_fn_error $? "conditional \"HAVE_INSTALL_TESTS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_CAIRO_TRUE}" && test -z "${HAVE_CAIRO_FALSE}"; then - as_fn_error $? "conditional \"HAVE_CAIRO\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_LIBUDEV_TRUE}" && test -z "${HAVE_LIBUDEV_FALSE}"; then - as_fn_error $? "conditional \"HAVE_LIBUDEV\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${BUILD_MANPAGES_TRUE}" && test -z "${BUILD_MANPAGES_FALSE}"; then - as_fn_error $? "conditional \"BUILD_MANPAGES\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_MANPAGES_STYLESHEET_TRUE}" && test -z "${HAVE_MANPAGES_STYLESHEET_FALSE}"; then - as_fn_error $? "conditional \"HAVE_MANPAGES_STYLESHEET\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_INTEL_TRUE}" && test -z "${HAVE_INTEL_FALSE}"; then - as_fn_error $? "conditional \"HAVE_INTEL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_RADEON_TRUE}" && test -z "${HAVE_RADEON_FALSE}"; then - as_fn_error $? "conditional \"HAVE_RADEON\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_NOUVEAU_TRUE}" && test -z "${HAVE_NOUVEAU_FALSE}"; then - as_fn_error $? "conditional \"HAVE_NOUVEAU\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by libdrm $as_me 2.4.52, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -libdrm config.status 2.4.52 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' -macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' -enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' -enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' -pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' -SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' -ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' -PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' -host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' -host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' -host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' -build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' -build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' -build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' -SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' -Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' -GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' -EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' -FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' -LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' -NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' -LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' -ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' -exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' -lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' -reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' -AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' -STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' -RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' -lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' -CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' -compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' -GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' -objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' -need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' -LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' -libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' -module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' -version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' -runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' -libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' -soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' -install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' -finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' -old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' -striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' - -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in SHELL \ -ECHO \ -PATH_SEPARATOR \ -SED \ -GREP \ -EGREP \ -FGREP \ -LD \ -NM \ -LN_S \ -lt_SP2NL \ -lt_NL2SP \ -reload_flag \ -OBJDUMP \ -deplibs_check_method \ -file_magic_cmd \ -file_magic_glob \ -want_nocaseglob \ -DLLTOOL \ -sharedlib_from_linklib_cmd \ -AR \ -AR_FLAGS \ -archiver_list_spec \ -STRIP \ -RANLIB \ -CC \ -CFLAGS \ -compiler \ -lt_cv_sys_global_symbol_pipe \ -lt_cv_sys_global_symbol_to_cdecl \ -lt_cv_sys_global_symbol_to_c_name_address \ -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -nm_file_list_spec \ -lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_pic \ -lt_prog_compiler_wl \ -lt_prog_compiler_static \ -lt_cv_prog_compiler_c_o \ -need_locks \ -MANIFEST_TOOL \ -DSYMUTIL \ -NMEDIT \ -LIPO \ -OTOOL \ -OTOOL64 \ -shrext_cmds \ -export_dynamic_flag_spec \ -whole_archive_flag_spec \ -compiler_needs_object \ -with_gnu_ld \ -allow_undefined_flag \ -no_undefined_flag \ -hardcode_libdir_flag_spec \ -hardcode_libdir_separator \ -exclude_expsyms \ -include_expsyms \ -file_list_spec \ -variables_saved_for_relink \ -libname_spec \ -library_names_spec \ -soname_spec \ -install_override_mode \ -finish_eval \ -old_striplib \ -striplib; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in reload_cmds \ -old_postinstall_cmds \ -old_postuninstall_cmds \ -old_archive_cmds \ -extract_expsyms_cmds \ -old_archive_from_new_cmds \ -old_archive_from_expsyms_cmds \ -archive_cmds \ -archive_expsym_cmds \ -module_cmds \ -module_expsym_cmds \ -export_symbols_cmds \ -prelink_cmds \ -postlink_cmds \ -postinstall_cmds \ -postuninstall_cmds \ -finish_cmds \ -sys_lib_search_path_spec \ -sys_lib_dlsearch_path_spec; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -ac_aux_dir='$ac_aux_dir' -xsi_shell='$xsi_shell' -lt_shell_append='$lt_shell_append' - -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - - - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile' - - - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "libkms/Makefile") CONFIG_FILES="$CONFIG_FILES libkms/Makefile" ;; - "libkms/libkms.pc") CONFIG_FILES="$CONFIG_FILES libkms/libkms.pc" ;; - "intel/Makefile") CONFIG_FILES="$CONFIG_FILES intel/Makefile" ;; - "intel/libdrm_intel.pc") CONFIG_FILES="$CONFIG_FILES intel/libdrm_intel.pc" ;; - "radeon/Makefile") CONFIG_FILES="$CONFIG_FILES radeon/Makefile" ;; - "radeon/libdrm_radeon.pc") CONFIG_FILES="$CONFIG_FILES radeon/libdrm_radeon.pc" ;; - "nouveau/Makefile") CONFIG_FILES="$CONFIG_FILES nouveau/Makefile" ;; - "nouveau/libdrm_nouveau.pc") CONFIG_FILES="$CONFIG_FILES nouveau/libdrm_nouveau.pc" ;; - "omap/Makefile") CONFIG_FILES="$CONFIG_FILES omap/Makefile" ;; - "omap/libdrm_omap.pc") CONFIG_FILES="$CONFIG_FILES omap/libdrm_omap.pc" ;; - "exynos/Makefile") CONFIG_FILES="$CONFIG_FILES exynos/Makefile" ;; - "exynos/libdrm_exynos.pc") CONFIG_FILES="$CONFIG_FILES exynos/libdrm_exynos.pc" ;; - "freedreno/Makefile") CONFIG_FILES="$CONFIG_FILES freedreno/Makefile" ;; - "freedreno/libdrm_freedreno.pc") CONFIG_FILES="$CONFIG_FILES freedreno/libdrm_freedreno.pc" ;; - "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; - "tests/modeprint/Makefile") CONFIG_FILES="$CONFIG_FILES tests/modeprint/Makefile" ;; - "tests/modetest/Makefile") CONFIG_FILES="$CONFIG_FILES tests/modetest/Makefile" ;; - "tests/kmstest/Makefile") CONFIG_FILES="$CONFIG_FILES tests/kmstest/Makefile" ;; - "tests/radeon/Makefile") CONFIG_FILES="$CONFIG_FILES tests/radeon/Makefile" ;; - "tests/vbltest/Makefile") CONFIG_FILES="$CONFIG_FILES tests/vbltest/Makefile" ;; - "tests/exynos/Makefile") CONFIG_FILES="$CONFIG_FILES tests/exynos/Makefile" ;; - "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; - "include/drm/Makefile") CONFIG_FILES="$CONFIG_FILES include/drm/Makefile" ;; - "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; - "libdrm.pc") CONFIG_FILES="$CONFIG_FILES libdrm.pc" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_arg="$ac_file" -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} - ;; - "libtool":C) - - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - -# The names of the tagged configurations supported by this script. -available_tags="" - -# ### BEGIN LIBTOOL CONFIG - -# Which release of libtool.m4 was used? -macro_version=$macro_version -macro_revision=$macro_revision - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# What type of objects to build. -pic_mode=$pic_mode - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# An echo program that protects backslashes. -ECHO=$lt_ECHO - -# The PATH separator for the build system. -PATH_SEPARATOR=$lt_PATH_SEPARATOR - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="\$SED -e 1s/^X//" - -# A grep program that handles long lines. -GREP=$lt_GREP - -# An ERE matcher. -EGREP=$lt_EGREP - -# A literal string matcher. -FGREP=$lt_FGREP - -# A BSD- or MS-compatible name lister. -NM=$lt_NM - -# Whether we need soft or hard links. -LN_S=$lt_LN_S - -# What is the maximum length of a command? -max_cmd_len=$max_cmd_len - -# Object file suffix (normally "o"). -objext=$ac_objext - -# Executable file suffix (normally ""). -exeext=$exeext - -# whether the shell understands "unset". -lt_unset=$lt_unset - -# turn spaces into newlines. -SP2NL=$lt_lt_SP2NL - -# turn newlines into spaces. -NL2SP=$lt_lt_NL2SP - -# convert \$build file names to \$host format. -to_host_file_cmd=$lt_cv_to_host_file_cmd - -# convert \$build files to toolchain format. -to_tool_file_cmd=$lt_cv_to_tool_file_cmd - -# An object symbol dumper. -OBJDUMP=$lt_OBJDUMP - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method = "file_magic". -file_magic_cmd=$lt_file_magic_cmd - -# How to find potential files when deplibs_check_method = "file_magic". -file_magic_glob=$lt_file_magic_glob - -# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -want_nocaseglob=$lt_want_nocaseglob - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Command to associate shared and link libraries. -sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd - -# The archiver. -AR=$lt_AR - -# Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS - -# How to feed a file listing to the archiver. -archiver_list_spec=$lt_archiver_list_spec - -# A symbol stripping program. -STRIP=$lt_STRIP - -# Commands used to install an old-style archive. -RANLIB=$lt_RANLIB -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Whether to use a lock for old archive extraction. -lock_old_archive_extraction=$lock_old_archive_extraction - -# A C compiler. -LTCC=$lt_CC - -# LTCC compiler flags. -LTCFLAGS=$lt_CFLAGS - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration. -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair. -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# Transform the output of nm in a C name address pair when lib prefix is needed. -global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -# Specify filename containing input files for \$NM. -nm_file_list_spec=$lt_nm_file_list_spec - -# The root where to search for dependent libraries,and in which our libraries should be installed. -lt_sysroot=$lt_sysroot - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# Used to examine libraries when file_magic_cmd begins with "file". -MAGIC_CMD=$MAGIC_CMD - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Manifest tool. -MANIFEST_TOOL=$lt_MANIFEST_TOOL - -# Tool to manipulate archived DWARF debug symbol files on Mac OS X. -DSYMUTIL=$lt_DSYMUTIL - -# Tool to change global to local symbols on Mac OS X. -NMEDIT=$lt_NMEDIT - -# Tool to manipulate fat objects and archives on Mac OS X. -LIPO=$lt_LIPO - -# ldd/readelf like tool for Mach-O binaries on Mac OS X. -OTOOL=$lt_OTOOL - -# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. -OTOOL64=$lt_OTOOL64 - -# Old archive suffix (normally "a"). -libext=$libext - -# Shared library suffix (normally ".so"). -shrext_cmds=$lt_shrext_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at link time. -variables_saved_for_relink=$lt_variables_saved_for_relink - -# Do we need the "lib" prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Library versioning type. -version_type=$version_type - -# Shared library runtime path variable. -runpath_var=$runpath_var - -# Shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Permission mode override for installation of shared libraries. -install_override_mode=$lt_install_override_mode - -# Command to use after installation of a shared archive. -postinstall_cmds=$lt_postinstall_cmds - -# Command to use after uninstallation of a shared archive. -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# As "finish_cmds", except a single script fragment to be evaled but -# not shown. -finish_eval=$lt_finish_eval - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Compile-time system search path for libraries. -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - - -# The linker used to build libraries. -LD=$lt_LD - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# Commands used to build an old-style archive. -old_archive_cmds=$lt_old_archive_cmds - -# A language specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU compiler? -with_gcc=$GCC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static. -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Whether the compiler copes with passing no objects directly. -compiler_needs_object=$lt_compiler_needs_object - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds - -# Commands used to build a loadable module if different from building -# a shared archive. -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Whether we are building with GNU ld or not. -with_gnu_ld=$lt_with_gnu_ld - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that enforces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# Whether we need a single "-rpath" flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -# DIR into the resulting binary. -hardcode_direct=$hardcode_direct - -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -# DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \${shlibpath_var} if the -# library is relocated. -hardcode_direct_absolute=$hardcode_direct_absolute - -# Set to "yes" if using the -LDIR flag during linking hardcodes DIR -# into the resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR -# into the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to "yes" if building a shared library automatically hardcodes DIR -# into the library and all subsequent libraries and executables linked -# against it. -hardcode_automatic=$hardcode_automatic - -# Set to yes if linker adds runtime paths of dependent libraries -# to runtime path list. -inherit_rpath=$inherit_rpath - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Set to "yes" if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# Commands necessary for linking programs (against libraries) with templates. -prelink_cmds=$lt_prelink_cmds - -# Commands necessary for finishing linking programs. -postlink_cmds=$lt_postlink_cmds - -# Specify filename containing input files. -file_list_spec=$lt_file_list_spec - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# ### END LIBTOOL CONFIG - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - -ltmain="$ac_aux_dir/ltmain.sh" - - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - if test x"$xsi_shell" = xyes; then - sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -func_dirname ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_basename ()$/,/^} # func_basename /c\ -func_basename ()\ -{\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -func_dirname_and_basename ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -func_stripname ()\ -{\ -\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -\ # positional parameters, so assign one to ordinary parameter first.\ -\ func_stripname_result=${3}\ -\ func_stripname_result=${func_stripname_result#"${1}"}\ -\ func_stripname_result=${func_stripname_result%"${2}"}\ -} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -func_split_long_opt ()\ -{\ -\ func_split_long_opt_name=${1%%=*}\ -\ func_split_long_opt_arg=${1#*=}\ -} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -func_split_short_opt ()\ -{\ -\ func_split_short_opt_arg=${1#??}\ -\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -func_lo2o ()\ -{\ -\ case ${1} in\ -\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -\ *) func_lo2o_result=${1} ;;\ -\ esac\ -} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_xform ()$/,/^} # func_xform /c\ -func_xform ()\ -{\ - func_xform_result=${1%.*}.lo\ -} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_arith ()$/,/^} # func_arith /c\ -func_arith ()\ -{\ - func_arith_result=$(( $* ))\ -} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_len ()$/,/^} # func_len /c\ -func_len ()\ -{\ - func_len_result=${#1}\ -} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - -fi - -if test x"$lt_shell_append" = xyes; then - sed -e '/^func_append ()$/,/^} # func_append /c\ -func_append ()\ -{\ - eval "${1}+=\\${2}"\ -} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -func_append_quoted ()\ -{\ -\ func_quote_for_eval "${2}"\ -\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -fi - - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - - -echo "" -echo "$PACKAGE_STRING will be compiled with:" -echo "" -echo " libkms $LIBKMS" -echo " Intel API $INTEL" -echo " vmwgfx API $VMWGFX" -echo " Radeon API $RADEON" -echo " Nouveau API $NOUVEAU" -echo " OMAP API $OMAP" -echo " EXYNOS API $EXYNOS" -echo " Freedreno API $FREEDRENO" -echo "" diff -Nru libdrm-2.4.52/configure.ac libdrm-2.4.52+really2.4.21/configure.ac --- libdrm-2.4.52/configure.ac 2014-01-20 18:58:15.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/configure.ac 2010-06-10 16:03:51.000000000 +0000 @@ -18,34 +18,24 @@ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -AC_PREREQ([2.63]) -AC_INIT([libdrm], - [2.4.52], - [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI], - [libdrm]) - -AC_CONFIG_HEADERS([config.h]) +AC_PREREQ(2.60) +AC_INIT([libdrm], 2.4.21, [dri-devel@lists.sourceforge.net], libdrm) +AC_USE_SYSTEM_EXTENSIONS AC_CONFIG_SRCDIR([Makefile.am]) -AC_CONFIG_MACRO_DIR([m4]) -AC_CONFIG_AUX_DIR([build-aux]) +AM_INIT_AUTOMAKE([dist-bzip2]) -AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2]) -AM_MAINTAINER_MODE([enable]) - -# Enable quiet compiles on automake 1.11. -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +AM_CONFIG_HEADER([config.h]) -# Check for programs +AC_DISABLE_STATIC +AC_PROG_LIBTOOL AC_PROG_CC -AC_USE_SYSTEM_EXTENSIONS +AC_HEADER_STDC AC_SYS_LARGEFILE AC_FUNC_ALLOCA -# Initialize libtool -LT_PREREQ([2.2]) -LT_INIT([disable-static]) - +# Enable quiet compiles on automake 1.11. +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs) AC_SUBST(PTHREADSTUBS_CFLAGS) @@ -53,10 +43,9 @@ pkgconfigdir=${libdir}/pkgconfig AC_SUBST(pkgconfigdir) -AC_ARG_ENABLE([udev], - [AS_HELP_STRING([--enable-udev], - [Enable support for using udev instead of mknod (default: disabled)])], - [UDEV=$enableval], [UDEV=no]) +AC_ARG_ENABLE(udev, AS_HELP_STRING([--enable-udev], + [Enable support for using udev instead of mknod (default: disabled)]), + [UDEV=$enableval], [UDEV=no]) AC_ARG_ENABLE(libkms, AS_HELP_STRING([--disable-libkms], @@ -73,35 +62,16 @@ [Enable support for radeon's KMS API (default: auto)]), [RADEON=$enableval], [RADEON=auto]) -AC_ARG_ENABLE(nouveau, - AS_HELP_STRING([--disable-nouveau], - [Enable support for nouveau's KMS API (default: auto)]), - [NOUVEAU=$enableval], [NOUVEAU=auto]) - -AC_ARG_ENABLE(vmwgfx, - AS_HELP_STRING([--disable-vmwgfx], - [Enable support for vmwgfx's KMS API (default: yes)]), - [VMWGFX=$enableval], [VMWGFX=yes]) - -AC_ARG_ENABLE(omap-experimental-api, - AS_HELP_STRING([--enable-omap-experimental-api], - [Enable support for OMAP's experimental API (default: disabled)]), - [OMAP=$enableval], [OMAP=no]) - -AC_ARG_ENABLE(exynos-experimental-api, - AS_HELP_STRING([--enable-exynos-experimental-api], - [Enable support for EXYNOS's experimental API (default: disabled)]), - [EXYNOS=$enableval], [EXYNOS=no]) - -AC_ARG_ENABLE(freedreno-experimental-api, - AS_HELP_STRING([--enable-freedreno-experimental-api], - [Enable support for freedreno's experimental API (default: disabled)]), - [FREEDRENO=$enableval], [FREEDRENO=no]) - -AC_ARG_ENABLE(install-test-programs, - AS_HELP_STRING([--enable-install-test-programs], - [Install test programs (default: no)]), - [INSTALL_TESTS=$enableval], [INSTALL_TESTS=no]) +AC_ARG_ENABLE(vmwgfx-experimental-api, + AS_HELP_STRING([--enable-vmwgfx-experimental-api], + [Install vmwgfx's experimental kernel API header (default: disabled)]), + [VMWGFX=$enableval], [VMWGFX=no]) + +AC_ARG_ENABLE(nouveau-experimental-api, + AS_HELP_STRING([--enable-nouveau-experimental-api], + [Enable support for nouveau's experimental API (default: disabled)]), + [NOUVEAU=$enableval], [NOUVEAU=no]) + dnl =========================================================================== dnl check compiler flags @@ -111,7 +81,7 @@ libdrm_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $1" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ])], [libdrm_cc_flag=yes], [libdrm_cc_flag=no]) + AC_COMPILE_IFELSE([ ], [libdrm_cc_flag=yes], [libdrm_cc_flag=no]) CFLAGS="$libdrm_save_CFLAGS" if test "x$libdrm_cc_flag" = "xyes"; then @@ -129,8 +99,6 @@ [AC_MSG_ERROR([Couldn't find clock_gettime])])]) AC_SUBST([CLOCK_LIB]) -AC_CHECK_FUNCS([open_memstream], [HAVE_OPEN_MEMSTREAM=yes]) - dnl Use lots of warning flags with with gcc and compatible compilers dnl Note: if you change the following variable, the cache is automatically @@ -143,7 +111,7 @@ -Wpointer-arith -Wwrite-strings -Wstrict-prototypes \ -Wmissing-prototypes -Wmissing-declarations -Wnested-externs \ -Wpacked -Wswitch-enum -Wmissing-format-attribute \ --Wstrict-aliasing=2 -Winit-self \ +-Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations \ -Wdeclaration-after-statement -Wold-style-definition \ -Wno-missing-field-initializers -Wno-unused-parameter \ -Wno-attributes -Wno-long-long -Winline" @@ -201,43 +169,11 @@ AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau (nvidia) support]) fi -AM_CONDITIONAL(HAVE_OMAP, [test "x$OMAP" = xyes]) -if test "x$OMAP" = xyes; then - AC_DEFINE(HAVE_OMAP, 1, [Have OMAP support]) -fi - -AM_CONDITIONAL(HAVE_EXYNOS, [test "x$EXYNOS" = xyes]) -if test "x$EXYNOS" = xyes; then - AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support]) -fi - -AM_CONDITIONAL(HAVE_FREEDRENO, [test "x$FREEDRENO" = xyes]) -if test "x$FREEDRENO" = xyes; then - AC_DEFINE(HAVE_FREEDRENO, 1, [Have freedreno support]) -fi - -AM_CONDITIONAL(HAVE_INSTALL_TESTS, [test "x$INSTALL_TESTS" = xyes]) -if test "x$INSTALL_TESTS" = xyes; then - AC_DEFINE(HAVE_INSTALL_TESTS, 1, [Install test programs]) -fi - -AC_ARG_ENABLE([cairo-tests], - [AS_HELP_STRING([--enable-cairo-tests], - [Enable support for Cairo rendering in tests (default: auto)])], - [CAIRO=$enableval], [CAIRO=auto]) PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no]) -AC_MSG_CHECKING([whether to enable Cairo tests]) -if test "x$CAIRO" = xauto; then - CAIRO="$HAVE_CAIRO" -fi -if test "x$CAIRO" = xyes; then - if ! test "x$HAVE_CAIRO" = xyes; then - AC_MSG_ERROR([Cairo support required but not present]) - fi - AC_DEFINE(HAVE_CAIRO, 1, [Have Cairo support]) +if test "x$HAVE_CAIRO" = xyes; then + AC_DEFINE(HAVE_CAIRO, 1, [Have cairo support]) fi -AC_MSG_RESULT([$CAIRO]) -AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes]) +AM_CONDITIONAL(HAVE_CAIRO, [test "x$HAVE_CAIRO" = xyes]) # For enumerating devices in test case PKG_CHECK_MODULES(LIBUDEV, libudev, [HAVE_LIBUDEV=yes], [HAVE_LIBUDEV=no]) @@ -246,38 +182,18 @@ fi AM_CONDITIONAL(HAVE_LIBUDEV, [test "x$HAVE_LIBUDEV" = xyes]) -# xsltproc for docbook manpages -AC_ARG_ENABLE([manpages], - AS_HELP_STRING([--disable-manpages], [disable manpages @<:@default=enabled@:>@]), - [MANS=$enableval], [MANS=auto]) -AC_PATH_PROG(XSLTPROC, xsltproc) -AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"]) - -# check for offline man-pages stylesheet -AC_MSG_CHECKING([for docbook manpages stylesheet]) -MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" -AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc], - AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`], - [HAVE_MANPAGES_STYLESHEET=yes])) -if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then - AC_SUBST(MANPAGES_STYLESHEET) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi -AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"]) - -if test "x$INTEL" != "xno" -o "x$RADEON" != "xno" -o "x$NOUVEAU" != "xno" -o "x$OMAP" != "xno" -o "x$FREEDRENO" != "xno"; then +if test "x$INTEL" != "xno" -o "x$RADEON" != "xno"; then # Check for atomic intrinsics AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives, [ drm_cv_atomic_primitives="none" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + AC_TRY_LINK([ int atomic_add(int i) { return __sync_fetch_and_add (&i, 1); } int atomic_cmpxchg(int i, int j, int k) { return __sync_val_compare_and_swap (&i, j, k); } - ]],[[]])], - [drm_cv_atomic_primitives="Intel"],[]) + ], [], + drm_cv_atomic_primitives="Intel" + ) if test "x$drm_cv_atomic_primitives" = "xnone"; then AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops") @@ -315,47 +231,19 @@ AC_MSG_WARN([Disabling libdrm_radeon. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package.]) RADEON=no fi - if test "x$NOUVEAU" != "xauto"; then - if test "x$NOUVEAU" != "xno"; then - AC_MSG_ERROR([libdrm_nouveau depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package, or, failing both of those, disable support for NVIDIA GPUs by passing --disable-nouveau to ./configure]) - fi - else - AC_MSG_WARN([Disabling libdrm_nouveau. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package.]) - NOUVEAU=no - fi + else if test "x$INTEL" != "xno"; then - case $host_cpu in - i?86|x86_64) INTEL=yes ;; - *) INTEL=no ;; - esac + INTEL=yes fi if test "x$RADEON" != "xno"; then RADEON=yes fi - if test "x$NOUVEAU" != "xno"; then - NOUVEAU=yes - fi fi fi -if test "x$INTEL" != "xno"; then - PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) -fi -AC_SUBST(PCIACCESS_CFLAGS) -AC_SUBST(PCIACCESS_LIBS) - -PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no]) -if test "x$have_valgrind" = "xyes"; then - AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings]) -fi - AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" != "xno"]) AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" != "xno"]) -AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" != "xno"]) -if test "x$RADEON" = xyes; then - AC_DEFINE(HAVE_RADEON, 1, [Have radeon support]) -fi AC_ARG_WITH([kernel-source], [AS_HELP_STRING([--with-kernel-source], @@ -364,7 +252,7 @@ AC_SUBST(kernel_source) AC_SUBST(WARN_CFLAGS) -AC_CONFIG_FILES([ +AC_OUTPUT([ Makefile libkms/Makefile libkms/libkms.pc @@ -374,24 +262,14 @@ radeon/libdrm_radeon.pc nouveau/Makefile nouveau/libdrm_nouveau.pc - omap/Makefile - omap/libdrm_omap.pc - exynos/Makefile - exynos/libdrm_exynos.pc - freedreno/Makefile - freedreno/libdrm_freedreno.pc tests/Makefile tests/modeprint/Makefile tests/modetest/Makefile tests/kmstest/Makefile - tests/radeon/Makefile tests/vbltest/Makefile - tests/exynos/Makefile include/Makefile include/drm/Makefile - man/Makefile libdrm.pc]) -AC_OUTPUT echo "" echo "$PACKAGE_STRING will be compiled with:" @@ -401,7 +279,4 @@ echo " vmwgfx API $VMWGFX" echo " Radeon API $RADEON" echo " Nouveau API $NOUVEAU" -echo " OMAP API $OMAP" -echo " EXYNOS API $EXYNOS" -echo " Freedreno API $FREEDRENO" echo "" diff -Nru libdrm-2.4.52/debian/changelog libdrm-2.4.52+really2.4.21/debian/changelog --- libdrm-2.4.52/debian/changelog 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/changelog 2014-05-11 23:33:58.000000000 +0000 @@ -1,329 +1,33 @@ -libdrm (2.4.52-1) unstable; urgency=medium +libdrm (2.4.52+really2.4.21-1ubuntu2.2~ppa1) trusty; urgency=medium - [ Julien Cristau ] - * Remove Cyril Brulebois from Uploaders. - - [ Maarten Lankhorst ] - * New upstream release. - - -- Maarten Lankhorst Fri, 24 Jan 2014 13:41:57 +0100 - -libdrm (2.4.51-1) unstable; urgency=medium - - * New upstream release. - - -- Julien Cristau Mon, 20 Jan 2014 13:45:50 +0100 - -libdrm (2.4.50-1) unstable; urgency=low - - * New upstream release. - - -- Maarten Lankhorst Thu, 19 Dec 2013 10:49:57 +0100 - -libdrm (2.4.49-2) unstable; urgency=low - - * Cherry-pick a commit from upstream to fix a radeonsi regression. - - c8a437f4c76: radeon: Update unaligned offset for 2D->1D tiling - transition on SI - - -- Maarten Lankhorst Tue, 26 Nov 2013 15:25:45 +0100 - -libdrm (2.4.49-1) unstable; urgency=low - - * New upstream release. - - -- Maarten Lankhorst Mon, 25 Nov 2013 11:36:32 +0100 - -libdrm (2.4.46-4) unstable; urgency=low - - [ Colin Watson ] - * Declare libdrm-dev Multi-Arch: same. - - [ Maarten Lankhorst ] - * Cherry-pick upstream patch to fix relocations for all cards Thu, 07 Nov 2013 14:11:38 +0100 - -libdrm (2.4.46-3) unstable; urgency=low - - * Make drmCheckModesettingSupported work on FreeBSD. Thanks, Christoph - Egger! - * Stop building libkms. - - -- Julien Cristau Thu, 19 Sep 2013 21:24:52 +0200 - -libdrm (2.4.46-2) unstable; urgency=low - - * Build libdrm-radeon1 on kfreebsd (closes: #684593). - - -- Julien Cristau Wed, 21 Aug 2013 21:05:44 +0200 - -libdrm (2.4.46-1) unstable; urgency=low - - [ Sven Joachim ] - * New upstream release. - * Bump libdrm2's and libdrm-intel1's symbols and shlibs. - * Build libdrm-intel1 on x32 (Closes: #712515). - * Disable silent rules. - - -- Maarten Lankhorst Mon, 05 Aug 2013 13:44:46 +0200 - -libdrm (2.4.45-3) unstable; urgency=low - - * Team upload. - - * debian/patches/03_build_against_librt.diff: - + Removed, no longer needed with our current glibc version. - Thanks to Julien Cristau for pointing it out. - * Upload to unstable. - - -- Emilio Pozuelo Monfort Thu, 06 Jun 2013 23:13:12 +0200 - -libdrm (2.4.45-2) experimental; urgency=low - - [ Sven Joachim ] - * Only build-depend on valgrind on architectures where - valgrind is actually available. - - -- Julien Cristau Thu, 30 May 2013 10:03:37 +0200 - -libdrm (2.4.45-1) experimental; urgency=low - - * Team upload. - - [ Julien Cristau ] - * Bump libdrm2 shlibs to 2.4.38. - - [ Maarten Lankhorst ] - * New upstream release. - * Build-depend on xsltproc and docbook-xsl. - * Add valgrind to build-depends. - - [ Timo Aaltonen ] - * control: Bump policy to 3.9.4, no changes. - - [ Emilio Pozuelo Monfort ] - * Upload to experimental. - - -- Emilio Pozuelo Monfort Thu, 16 May 2013 00:09:59 +0200 - -libdrm (2.4.40-1) experimental; urgency=low - - [ Maarten Lankhorst ] - * New upstream release. - - Nouveau ABI change, replace libdrm-nouveau1a with libdrm-nouveau2. - - [ Timo Aaltonen ] - * Bump libdrm-intel1's and libdrm-nouveau2's shlibs due to new symbols. - * Hardcode the version for libdrm-omap1's shlibs. - - [ Christopher James Halse Rogers ] - * Add libdrm2-udeb; Xserver 1.13 wants libdrm for hotplug config, so - will be needed for the 1.13 xserver-xorg-core-udeb. - - [ Sven Joachim ] - * Bump libdrm-radeon1's symbols and shlibs. - * Mark some internal libdrm-nouveau2 symbols as private. - * Drop patch 02_build_libkms_against_in_tree_drm.diff, applied upstream. - - -- Julien Cristau Sat, 17 Nov 2012 18:50:33 +0100 - -libdrm (2.4.33-3) unstable; urgency=low - - * Add missing dependency on libdrm-omap1 to libdrm-dev (thanks, Robert - Hooker!). Make some arm matching a bit simpler. - - -- Julien Cristau Thu, 21 Jun 2012 23:22:22 +0200 - -libdrm (2.4.33-2) unstable; urgency=low - - [ Sebastian Reichel ] - * Build libdrm_omap (closes: #667572). - - -- Julien Cristau Thu, 21 Jun 2012 22:39:22 +0200 - -libdrm (2.4.33-1) unstable; urgency=low - - * New upstream release. - - -- Cyril Brulebois Mon, 02 Apr 2012 01:28:22 +0000 - -libdrm (2.4.32-1) unstable; urgency=low - - [ Robert Hooker ] - * New upstream release (2.4.31). - * Bump libdrm2 and libdrm-radeon1 symbols and shlibs to account for - recent changes. - - [ Cyril Brulebois ] - * New upstream release (2.4.32). - * Bump libdrm-intel1's symbols and shlibs accordingly. - - -- Cyril Brulebois Mon, 19 Mar 2012 19:56:12 +0000 - -libdrm (2.4.30-1) unstable; urgency=low - - * New upstream release. - * Bump libdrm2's and libdrm-intel1's symbols and shlibs accordingly. - * Document the symlink dance when building from git in README.source. - - -- Cyril Brulebois Fri, 06 Jan 2012 20:04:37 +0100 - -libdrm (2.4.29-1) unstable; urgency=low - - * New upstream release: - - assert()s are now gone (Closes: #651316). - * Update libdrm-intel1's symbols and shlibs accordingly. - - -- Cyril Brulebois Tue, 13 Dec 2011 13:16:22 +0100 - -libdrm (2.4.28-1) unstable; urgency=low - - * New upstream release. - - -- Cyril Brulebois Tue, 06 Dec 2011 15:17:50 +0100 - -libdrm (2.4.27-1) unstable; urgency=low - - * New upstream release: - - Push the new Intel API for use by mesa. - - Usual bug fixes. - * Update libdrm-intel1's symbols and shlibs accordingly. - - -- Cyril Brulebois Tue, 01 Nov 2011 19:30:54 +0100 - -libdrm (2.4.26-1) unstable; urgency=low - - * New upstream release: - - Fix two important intel bugs. - * Add libpciaccess-dev build-dep. - * Update libdrm-intel1.symbols and shlibs for new aperture-related symbol. - - -- Cyril Brulebois Fri, 24 Jun 2011 17:07:04 +0200 - -libdrm (2.4.25-3) unstable; urgency=low - - * Team upload. - - [ Steve Langasek ] - * Build for multiarch. - - [ Julien Cristau ] - * Add lintian overrides for symbols-declares-dependency-on-other-package (we - use that for private symbols). - * Bump Standards-Version to 3.9.2. - - -- Julien Cristau Thu, 09 Jun 2011 20:05:53 +0200 - -libdrm (2.4.25-2) unstable; urgency=low - - * Upload to unstable. - - -- Cyril Brulebois Mon, 16 May 2011 19:14:49 +0200 - -libdrm (2.4.25-1) experimental; urgency=low - - * New upstream release. - * Update libdrm2.symbols and shlibs. - * Update libkms1.symbols, marking dumb_create@Base as private. - * Switch to dh: - - Bump compat/build-dep to 8. - - Use dh-autoreconf. - - Tidy old build-deps. - - Testsuite now automatically gets run. - * Accordingly, add a build-dep to fix FTBFS during make check: - - 03_build_against_librt.diff - * Add libudev-dev build-dep on Linux so that detection works. - * Since the testsuite just got enabled, let's not bail out if it fails. - * Remove xsfbs as it's no longer needed. - * Bump Standards-Version (no changes needed). - - -- Cyril Brulebois Tue, 19 Apr 2011 02:57:29 +0200 - -libdrm (2.4.24-2) unstable; urgency=low - - * Upload to unstable. - - -- Cyril Brulebois Sun, 10 Apr 2011 22:57:02 +0200 + * fake version number -libdrm (2.4.24-1) experimental; urgency=low + -- Jools Wills Mon, 12 May 2014 00:32:32 +0100 - [ Christopher James Halse Rogers ] - * New upstream release. - * Add new internal radeon symbols to libkms1.symbols +libdrm (2.4.21-1ubuntu2.1) maverick-proposed; urgency=low - [ Cyril Brulebois ] - * Just as a reminder, not adding a lintian override for the following - warning, since patches were sent upstream to stop exporting private - symbols: symbols-declares-dependency-on-other-package - - -- Cyril Brulebois Sat, 05 Mar 2011 20:27:23 +0100 - -libdrm (2.4.23-3) unstable; urgency=low - - * Cherry-pick from upstream: - - intel: Fallback to old exec if no mrb_exec is available - - intel: Set the public handle after opening by name - - intel: Remember named bo - * The first of those fixes should fix some failures to submit batch - buffer (Closes: #612766). - * Bump dependency to 2.4.23-3 for the drm_intel_bo_mrb_exec symbol in - libdrm-intel1's symbols file. While the former version is alright - from a shared object point of view, runtime doesn't seem to agree - (Closes: #609299). - * Bump the libdrm-intel1 shlibs version for consistency. + * Add 03_intel_limit_tiled_pitches.patch: Fixes a problem where framebuffers + with a width greater than 2048 pixels could not be allocated on pre-i965 + generation intel GPUs, which is common for multi-monitor setups. Backport + of upstream commit 726210f87. (LP: #619663) - -- Cyril Brulebois Wed, 16 Feb 2011 11:44:44 +0100 + -- Robert Hooker Fri, 08 Oct 2010 12:08:09 -0400 -libdrm (2.4.23-2) unstable; urgency=low - - * Upload to unstable. - * Update Uploaders list. Thanks, David & Brice! +libdrm (2.4.21-1ubuntu2) maverick; urgency=low - -- Cyril Brulebois Sat, 05 Feb 2011 11:26:44 +0100 + * debian/rules: Don't install upstream changelog. This saves > 1 MB of CD + space. -libdrm (2.4.23-1) experimental; urgency=low + -- Martin Pitt Sun, 01 Aug 2010 20:46:42 +0200 - [ Sven Joachim ] - * New upstream release. - * Rename the libdrm-nouveau1 package to libdrm-nouveau1a, since upstream - broke the ABI without changing the soname. - - Make libdrm-nouveau1a{,-dbg} conflict with libdrm-nouveau1{,-dbg} and - remove the Breaks against xserver-xorg-video-nouveau. - - Adjust the lintian override. - - Bump libdrm-nouveau shlibs and symbols versions to 2.4.23. - * Use dh_prep instead of the deprecated dh_clean -k in debian/rules. - - -- Julien Cristau Thu, 23 Dec 2010 17:56:54 +0100 - -libdrm (2.4.22-2) experimental; urgency=low - - * Cherry-pick some commits from upstream to make the intel video driver - 2.13.901 buildable: - - 057fab33: intel: Prepare for BLT ring split - - 36245771: intel: enable relaxed fence allocation for i915 - - 49447a9b: intel: initialize bufmgr.bo_mrb_exec unconditionally +libdrm (2.4.21-1ubuntu1) maverick; urgency=low - -- Cyril Brulebois Sun, 07 Nov 2010 22:51:12 +0100 + * Merge from debian experimental. Remaining Ubuntu changes: + - Enable libdrm-intel for ports architectures until plymouth is fixed to + not need it unconditionally. + - Move runtime libraries to /lib for plymouth. -libdrm (2.4.22-1) experimental; urgency=low - - [ Sven Joachim ] - * New upstream release. - - -- Cyril Brulebois Sat, 02 Oct 2010 00:41:05 +0200 - -libdrm (2.4.21-2) experimental; urgency=low - - [ Sven Joachim ] - * Bump libdrm-nouveau shlibs and symbols versions to 2.4.21-1 to ensure - that packages built against this version are not used with squeeze's - libdrm-nouveau1. - * Add a lintian override for the symbols-file-contains-debian-revision - warning. Bump debhelper compatibility level to 6 for dh_lintian. - - -- Julien Cristau Wed, 25 Aug 2010 23:14:40 +0200 + -- Robert Hooker Thu, 10 Jun 2010 18:52:09 -0400 libdrm (2.4.21-1) experimental; urgency=low @@ -367,6 +71,17 @@ -- Julien Cristau Wed, 26 May 2010 10:33:22 +0200 +libdrm (2.4.20-2ubuntu1) maverick; urgency=low + + * Merge from debian experimental, remaining changes: + - Dropped patches: + 02_fix_kms_detection_with_linux_backport_modules.diff - Obsolete + 03_revert_abi_change.diff - Obsolete + 04_git_nouveau_fix_sigsegv_in_nouveau_bo_new_tile.patch - Upstream + * Refresh libdrm-nouveau1 symbols + + -- Robert Hooker Fri, 14 May 2010 13:47:41 -0400 + libdrm (2.4.20-2) experimental; urgency=low * Upload again, faking a new upstream version, since a screw-up on @@ -417,12 +132,99 @@ -- Cyril Brulebois Mon, 22 Feb 2010 15:31:47 +0100 +libdrm (2.4.18-1ubuntu3) lucid; urgency=low + + * debian/patches/04_git_nouveau_fix_sigsegv_in_nouveau_bo_new_tile.patch: + + Cherry pick from upstream git. Fixes a segfault in libdrm_nouveau on + X start for some cards (LP: #547124) + + -- Christopher James Halse Rogers Mon, 12 Apr 2010 11:14:11 +1000 + +libdrm (2.4.18-1ubuntu2) lucid; urgency=low + + * libdrm-nouveau1.symbols: Add a missing symbol introduced in 2.4.18. + + -- Timo Aaltonen Fri, 19 Feb 2010 14:34:02 +0200 + +libdrm (2.4.18-1ubuntu1) lucid; urgency=low + + * Merge from Debian unstable. + * Remove the nouveau patches, since they are included in this version. + * Add 03_revert_abi_change.diff to revert the nouveau ABI change. + We need the old ABI until the kernel has been updated. + + -- Timo Aaltonen Fri, 19 Feb 2010 14:19:08 +0200 + libdrm (2.4.18-1) unstable; urgency=low * New upstream release. -- Brice Goglin Thu, 18 Feb 2010 08:06:14 +0100 +libdrm (2.4.17-1ubuntu3) lucid; urgency=low + + * Unapply patches in debian/patches from the source package. + + -- Steve Langasek Thu, 18 Feb 2010 06:48:37 -0800 + +libdrm (2.4.17-1ubuntu2) lucid; urgency=low + + * Move runtime libraries to /lib (needed by plymouth) + + -- Steve Langasek Thu, 18 Feb 2010 06:11:08 -0800 + +libdrm (2.4.17-1ubuntu1) lucid; urgency=low + + * Merge from Debian unstable. Previous merge was from the unreleased + 2.4.17-1 in pkg-xorg git. This merge picks up the finalised changelog + and few extra changes. Remaining Ubuntu changes: + + rules, control, libdrm-nouveau1.symbols, libdrm-nouveau1.install: + Enable libdrm_nouveau + * debian/control: + + libdrm-dev: Only Depend on libdrm-nouveau1 on linux-any. + * debian/copyright: + + Remove copyright section for no-longer-shipped add_libdrm-nouveau.patch. + * debian/patches/02_fix_kms_detection_with_linux_backport_modules.diff: + + Add /sys/.../lbm-drm/ to search path for controlD* file, as well as + /sys/.../drm/. linux-backport-modules-nouveau has the drm module renamed + to lbm_drm to avoid conflicts with other modules' drm. This fixes + drmCheckModesettingAvailable when using linux-backports-modules-nouveau. + * debian/patches/03_update_nouveau_defines_1.diff: + * debian/patches/04_update_nouveau_defines_2.diff: + * debian/patches/05_update_nouveau_defines_3.diff: + + Patches taken from git. Update #defines in nouveau headers to make allow + recent DDXs to build. + * debian/patches/06_nouveau_free_objects_on_channel_close.diff: + * debian/patches/07_nouveau_fix_mem_leak_on_channel_free.diff: + + Patches taken from git. Fix a couple of memory leaks when freeing + channels + * debian/libdrm-nouveau1.symbols: + + Add new symbol added in 06_nouveau_free_objects_on_channel_close. + * debian/patches/08_nouveau_no_flush_notify_on_channel_free.diff: + + Patch taken from git. Avoid calling flush_notify when part of the + channel's context might be freed. + * debian/patchs/09_add_BEGIN_RING_NI.diff: + + Patch taken from git. Add BEGIN_RING_NI inline to nouveau_pushbuf.h. + Used in nv50 accel code. + + -- Christopher James Halse Rogers Mon, 01 Feb 2010 15:55:14 +1100 + +libdrm (2.4.17-0ubuntu2) lucid; urgency=low + + * Enable libdrm-intel for ports architectures (LP: #507765) + * Adjust libdrm-dev dependencies to reflect nouveau being linux-any + + -- Emmet Hikory Fri, 15 Jan 2010 12:31:40 +0900 + +libdrm (2.4.17-0ubuntu1) lucid; urgency=low + + * Merge with Debian unstable, remaining changes: + + control, rules, libdrm-nouveau1.symbols: Enable libdrm_nouveau. + * Update libdrm-nouveau1.symbols and shlibs. + * Drop 02_silent_master.diff, applied upstream. + + -- Timo Aaltonen Sat, 09 Jan 2010 00:00:29 +0200 + libdrm (2.4.17-1) unstable; urgency=low [ Julien Cristau ] @@ -458,6 +260,22 @@ -- Julien Cristau Mon, 23 Nov 2009 17:00:57 +0100 +libdrm (2.4.14-1ubuntu2) lucid; urgency=low + + * debian/patches/02_silent_master.diff: + - The library noisily writes to stderr every time the drm master + is set or dropped; this can have the side-effect that the kernel + repaints all of the console messages over top of whatever you + left on the screen. That's fugly. + + -- Scott James Remnant Fri, 11 Dec 2009 04:24:50 +0000 + +libdrm (2.4.14-1ubuntu1) karmic; urgency=low + + * Merge from Debian unstable. (LP: #446080) + + -- Timo Aaltonen Thu, 08 Oct 2009 16:35:53 +0300 + libdrm (2.4.14-1) unstable; urgency=low * Parse space-separated DEB_BUILD_OPTIONS, and handle parallel=N. @@ -466,6 +284,34 @@ -- Julien Cristau Thu, 24 Sep 2009 21:53:09 +0200 +libdrm (2.4.13-1ubuntu1) karmic; urgency=low + + * Merge with Debian. (LP: #420803) + + Included fixes: + - radeon: fix GTT writing space check + (LP: #411115) + + Remaining Ubuntu changes: + - control: + + libdrm-intel1 Replaces libdrm2 (<= 2.4.1-0ubuntu5) + + libdrm-dev depends on newer linux-libc-dev on !lpia + + libdrm-dev depends on libdrm-{radeon1,nouveau1} + + add libdrm-{radeon1,nouveau1}{,-dbg} source packages + - rules: + + Add libdrm-nouveau1 and libdrm-nouveau1-dbg package + + Enable radeon and nouveau experimental apis + - copyright: + + Update to include new files from add_libdrm-nouveau.patch + - libdrm-dev.install: Also install r300_reg.h, via_3d_reg.h, + xgi_drm.h, the nouveau headers, and other headers not provided by + the kernel. + - libdrm-{radeon1,nouveau1}.{install,symbols}: Add nouveau and + radeon + * control: + + Increase linux-libc-dev version dependency to 2.6.30-2.4 for !lpia + + Drop Replaces on linux-libc-dev + + -- Bryce Harrington Tue, 08 Sep 2009 15:18:34 -0700 + libdrm (2.4.13-1) unstable; urgency=low [ Christopher James Halse Rogers ] @@ -479,12 +325,37 @@ -- Julien Cristau Sat, 05 Sep 2009 13:15:36 +0200 +libdrm (2.4.12-1ubuntu1) karmic; urgency=low + + * Merge from Debian unstable. + * Drop 101_update_libdrm-nouveau_interface.patch, included upstream. + + -- Timo Aaltonen Tue, 28 Jul 2009 14:13:58 +0300 + libdrm (2.4.12-1) unstable; urgency=low * New upstream release. -- Brice Goglin Tue, 21 Jul 2009 15:29:03 +0200 +libdrm (2.4.11-1ubuntu1) karmic; urgency=low + + [ Timo Aaltonen ] + * Merge from Debian unstable. + + [ Christopher James Halse Rogers ] + * Add 101_update_libdrm-nouveau_interface.patch. Backport several + libdrm-nouveau commits from upstream which are needed to interface with + the new 0.0.14 nouveau kernel interface provided by recent nouveau.ko + (LP: #395700) + * debian/libdrm-nouveau1.symbols: Add new symbols introduced in + 101_update_libdrm-nouveau_interface + * debian/libdrm-dev.install: + + Remove drm_mode.h from libdrm-dev again; this is shipped in + linux-libc-dev. + + -- Timo Aaltonen Wed, 08 Jul 2009 14:52:50 +0300 + libdrm (2.4.11-1) unstable; urgency=low * New upstream release. @@ -497,6 +368,42 @@ -- Julien Cristau Mon, 08 Jun 2009 16:22:04 +0200 +libdrm (2.4.11-0ubuntu1) karmic; urgency=low + + * New upstream release + * Add 100_bo_cache_up_to_64mb.patch. Cherrypick from upstream. + This avoids making objects significantly bigger than they would be + otherwise, which would result in some failing at binding to the GTT. + Fixes issue with hangs viewing large images. + (LP: #330460) + * libdrm-intel1.symbols: Add drm_intel_bo_disable_reuse and + drm_intel_get_pipe_from_crtc_id + * Don't try to install ChangeLog since not included in upstream release. + + -- Bryce Harrington Tue, 02 Jun 2009 17:31:34 -0700 + +libdrm (2.4.9-2ubuntu1) karmic; urgency=low + + * Merge from debian unstable, remaining changes: + - control: + + libdrm-intel1 Replaces libdrm2 (<= 2.4.1-0ubuntu5) + + libdrm-dev depends on linux-libc-dev => 2.6.28-5.15 on + [amd64 armel i386] only, and >= 2.6.28-2.4 on lpia + + Remove scary 'built from DRM snapshot' warning from long description of + libdrm-intel1{,-dbg} + + libdrm-dev depends on libdrm-nouveau1 + + add libdrm-nouveau1{,-dbg} source packages + - rules: + + Add libdrm-nouveau1 and libdrm-nouveau1-dbg package + + Enable nouveau experimental api + - copyright: + + Update to include new files from add_libdrm-nouveau.patch + - libdrm-dev.install: Also install r300_reg.h, via_3d_reg.h, + xgi_drm.h, the nouveau headers, and other headers not provided by + the kernel. + + -- Bryce Harrington Mon, 11 May 2009 18:56:10 -0700 + libdrm (2.4.9-2) unstable; urgency=low * Ship all drm headers on kfreebsd, again. @@ -523,11 +430,84 @@ -- Julien Cristau Wed, 25 Mar 2009 10:56:53 +0100 +libdrm (2.4.5-0ubuntu5) jaunty; urgency=low + + * debian/patches/02_libdrm_nouveau_update.patch: + - Pull in upstream changes to libdrm-nouveau. + + Fixes a memory leak in fence handling. + + Fixes an error the DDX reports in accessing the frontbuffer. + + Should be reverted for the next upstream version of libdrm. + + -- Christopher James Halse Rogers Sat, 04 Apr 2009 17:54:51 +1100 + +libdrm (2.4.5-0ubuntu4) jaunty; urgency=low + + * debian/libdrm-nouveau1.symbols: + - Fix thinko copied over from libdrm-intel1.symbols. The file should + specify libdrm-nouveau1 as the corresponding package, not libdrm2. + Fixes xserver-xorg-video-nouveau failing to depend on libdrm-nouveau1 + (LP: #350925) + * debian/control: + - There's no good reason to restrict the dependency of libdrm-dev on + libdrm-nouveau1 to x86 architectures. + + -- Christopher James Halse Rogers Sun, 29 Mar 2009 17:32:31 +1100 + +libdrm (2.4.5-0ubuntu3) jaunty; urgency=low + + * debian/control: libdrm-dev should also depend on libdrm-nouveau1 + Fixes xserver-xorg-video-nouveau FTBFS on amd64. + (LP: #346556) + + -- Christopher James Halse Rogers Sat, 21 Mar 2009 11:17:59 +1100 + +libdrm (2.4.5-0ubuntu2) jaunty; urgency=low + + * debian/control: nouveau package description should refer to it, not + intel. (LP: #341294) + * debian/libdrm-dev.install: Also install r300_reg.h, via_3d_reg.h, and + xgi_drm.h. + * debian/rules: Enforce --fail-missing again + + -- Bryce Harrington Wed, 18 Mar 2009 18:50:31 -0700 + +libdrm (2.4.5-0ubuntu1) jaunty; urgency=low + + [Bryce Harrington] + * Merge from debian-unstable (unreleased git). Remaining changes: + - debian/control: libdrm-intel1 Replaces libdrm2 (<= 2.4.1-0ubuntu5) + - debian/control: libdrm-dev Depends on linux-libc-dev only + on [amd64 armel i386] until the other archs have caught up. + - debian/control: libdrm-dev Replace linux-libc-dev (<= 2.6.28-3.4), + since it includes the drm headers. We will drop them from libdrm-dev + when the drivers support the new headers. + - debian/control: Split the linux-libc-dev dep on lpia and depend + on >= 2.6.28-2.4 on lpia + - debian/control: libdrm-dev Depends on linux-libc-dev (>= 2.6.28-5.15). + * debian/rules: enable nouveau experimental api + + [Christopher James Halse Rogers] + * debian/rules, debian/control, debian/libdrm-nouveau1.install: + + Add libdrm-nouveau1 and libdrm-nouveau1-dbg package + * debian/libdrm-nouveau1.symbols: + + Add initial symbols file. + * debian/control: + + Remove scary 'built from DRM snapshot' warning from long description of + libdrm-intel1{,-dbg} + * debian/libdrm-dev.install: + + Also install the libdrm-nouveau headers; these aren't going to be shipped + by the kernel any time soon. + * debian/copyright: + + Update to include new files from add_libdrm-nouveau.patch + + -- Bryce Harrington Mon, 09 Mar 2009 16:43:00 -0700 + libdrm (2.4.5-1) unstable; urgency=low * New upstream release. (closes: #505740) [ Timo Aaltonen ] + * New upstream release. (closes: #505740) * debian/rules: -Run autoreconf at build time, build-depend on automake and libtool. (closes: #482727) @@ -541,13 +521,127 @@ * Don't mention *.la in libdrm-dev.install. * Make libdrm-dev depend on libdrm-intel1 on x86. * On Linux, let udev create the device files. - * Let linux-libc-dev provide some drm headers, drop them from libdrm-dev. - Add dependency on linux-libc-dev >= 2.6.28. - * Set libdrm2 shlibs to 2.4.3, libdrm-intel1 shlibs to 2.4.5. Update - symbols files. -- Julien Cristau Tue, 24 Mar 2009 22:20:50 +0100 +libdrm (2.4.4-0ubuntu6) jaunty; urgency=low + + * Bump dep on linux-libc-dev dep to >= 2.6.28-1.4 on lpia as this version of + the headers now include a compatibility #define which mesa requires. + + -- Loic Minier Tue, 03 Feb 2009 23:20:27 +0100 + +libdrm (2.4.4-0ubuntu5) jaunty; urgency=low + + * Revert XS-Original-Vcs-* to Vcs-*, this *is* maintained in Git, sorry. + * Split the linux-libc-dev dep on lpia and depend on >= 2.6.28-1.1 on lpia + -- the version differs because it's built from linux-lpia instead of + linux; this is not going to be fixable anytime soon, so we should be + careful to use arch-specific versions for linux-libc-dev deps/bdeps. + + -- Loic Minier Sun, 01 Feb 2009 16:25:46 +0100 + +libdrm (2.4.4-0ubuntu4) jaunty; urgency=low + + * Also depend on linux-libc-dev on [lpia] as linux-libc-dev_2.6.28-1.2_lpia + has the drm headers; the avoidance of this dep on other arches just helps + installability, but because the headers are missing you're unlikely to do + anything with the lib anyway. The solution is a linux-ports upload. + * Rename Vcs-* to XS-Original-Vcs-*. + + -- Loic Minier Sat, 31 Jan 2009 23:50:33 +0100 + +libdrm (2.4.4-0ubuntu3) jaunty; urgency=low + + * libdrm-dev Depends on linux-libc-dev only on [amd64 armel i386] + until the other archs have caught up. + + -- Timo Aaltonen Sat, 31 Jan 2009 12:37:12 +0200 + +libdrm (2.4.4-0ubuntu2) jaunty; urgency=low + + * debian/control: Add a missing comma to libdrm-dev's Depends. + + -- Timo Aaltonen Fri, 23 Jan 2009 13:45:58 +0200 + +libdrm (2.4.4-0ubuntu1) jaunty; urgency=low + + * Merge with Debian experimental, remaining changes: + - libdrm-intel1 Replaces libdrm2 (<= 2.4.1-0ubuntu5) + - libdrm-dev: Replace linux-libc-dev (<= 2.6.28-3.4), since it + includes the drm headers. We will drop them from libdrm-dev + after jaunty alpha2 when the drivers support the new headers. + - debian/libdrm-dev.install: Don't install the drm headers anymore, + the drivers should build against the ones provided by the kernel. + * debian/libdrm-dev.install: Include a couple of headers not found + in the 2.6.28 kernel (mach64, nouveau). (LP: #314771) + * debian/control: libdrm-dev Depends on linux-libc-dev (>= 2.6.28-5.15). + + -- Timo Aaltonen Fri, 23 Jan 2009 10:19:06 +0200 + +libdrm (2.4.1-0ubuntu9) jaunty; urgency=low + + * debian/libdrm-dev.install: Don't install the drm headers anymore, + the drivers should build against the ones provided by the kernel. + (LP: #308387) + + -- Timo Aaltonen Fri, 02 Jan 2009 12:48:40 +0200 + +libdrm (2.4.1-0ubuntu8) jaunty; urgency=low + + * libdrm-dev: Replace linux-libc-dev (<= 2.6.28-3.4), since it + includes the drm headers. We will drop them from libdrm-dev + after jaunty alpha2 when the drivers support the new headers. + (LP: #308387) + + -- Timo Aaltonen Tue, 16 Dec 2008 23:29:38 +0200 + +libdrm (2.4.1-0ubuntu7) jaunty; urgency=low + + * Merge with debian-experimental git, remaining changes: + - libdrm-intel1 Replaces libdrm2 (<= 2.4.1-0ubuntu5) + + -- Timo Aaltonen Wed, 03 Dec 2008 09:24:35 +0200 + +libdrm (2.4.1-0ubuntu6) jaunty; urgency=low + + * libdrm-intel1 Replaces libdrm2 (<= 2.4.1-0ubuntu5) + + -- Timo Aaltonen Thu, 27 Nov 2008 10:25:29 +0200 + +libdrm (2.4.1-0ubuntu5) jaunty; urgency=low + + * Split the symbols file (libdrm2, libdrm-intel1), remove shlibs and + use dh_makeshlibs properly instead. + + -- Timo Aaltonen Thu, 27 Nov 2008 09:42:59 +0200 + +libdrm (2.4.1-0ubuntu4) jaunty; urgency=low + + * debian/libdrm2.install: Careful with those wildmarks. + libdrm2 got libdrm_intel.so too, don't do that. + + -- Timo Aaltonen Thu, 27 Nov 2008 08:58:47 +0200 + +libdrm (2.4.1-0ubuntu3) jaunty; urgency=low + + * Actually build the new libdrm-intel1 package. + + -- Timo Aaltonen Wed, 26 Nov 2008 14:41:08 +0200 + +libdrm (2.4.1-0ubuntu2) jaunty; urgency=low + + * Build-depend on libpthread-stubs0-dev and pkg-config (FTBFS). + * Make libdrm-dev depend on libdrm-intel1. + + -- Timo Aaltonen Wed, 26 Nov 2008 01:15:07 +0200 + +libdrm (2.4.1-0ubuntu1) jaunty; urgency=low + + * New upstream release. + + -- Timo Aaltonen Wed, 26 Nov 2008 00:38:11 +0200 + libdrm (2.3.1-2) unstable; urgency=high * Remove from the source package a bunch of files that are only used by the diff -Nru libdrm-2.4.52/debian/compat libdrm-2.4.52+really2.4.21/debian/compat --- libdrm-2.4.52/debian/compat 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/compat 2014-05-11 23:32:00.000000000 +0000 @@ -1 +1 @@ -9 +5 diff -Nru libdrm-2.4.52/debian/control libdrm-2.4.52+really2.4.21/debian/control --- libdrm-2.4.52/debian/control 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/control 2014-05-11 23:32:00.000000000 +0000 @@ -1,20 +1,18 @@ Source: libdrm Priority: optional -Maintainer: Debian X Strike Force +Maintainer: Ubuntu X-SWAT +XSBC-Original-Maintainer: Debian X Strike Force +Uploaders: David Nusinow , Brice Goglin , Cyril Brulebois Build-Depends: - debhelper (>= 9), - dh-autoreconf, - quilt, - xsltproc, - docbook-xsl, + debhelper (>= 7.2.7), libx11-dev, + dpkg-dev (>= 1.13.19), + quilt (>= 0.40), + automake, + libtool, pkg-config, libpthread-stubs0-dev, - libudev-dev [linux-any], - libpciaccess-dev, - valgrind [amd64 armhf i386 mips mipsel powerpc s390x], - libbsd-dev [kfreebsd-any], -Standards-Version: 3.9.4 +Standards-Version: 3.8.4 Section: libs Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/libdrm Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/libdrm.git @@ -24,12 +22,11 @@ Architecture: any Depends: libdrm2 (= ${binary:Version}), - libdrm-intel1 (= ${binary:Version}) [amd64 i386 kfreebsd-amd64 kfreebsd-i386 x32], - libdrm-radeon1 (= ${binary:Version}), - libdrm-nouveau2 (= ${binary:Version}) [linux-any], - libdrm-omap1 (= ${binary:Version}) [any-arm], + libdrm-intel1 (= ${binary:Version}) [linux-any kfreebsd-any], + libdrm-radeon1 (= ${binary:Version}) [linux-any], + libdrm-nouveau1 (= ${binary:Version}) [linux-any], + libkms1 (= ${binary:Version}) [linux-any], ${misc:Depends}, -Multi-Arch: same Replaces: linux-libc-dev (<< 2.6.32-10) Description: Userspace interface to kernel DRM services -- development files @@ -47,8 +44,6 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, -Multi-Arch: same -Pre-Depends: ${misc:Pre-Depends} Description: Userspace interface to kernel DRM services -- runtime This library implements the userspace interface to the kernel DRM services. DRM stands for "Direct Rendering Manager", which is the @@ -58,16 +53,6 @@ . This package provides the runtime environment for libdrm. -Package: libdrm2-udeb -Package-Type: udeb -Section: debian-installer -Architecture: any -Depends: - ${shlibs:Depends}, - ${misc:Depends}, -Description: Userspace interface to kernel DRM services -- runtime - This is a udeb, or a microdeb, for the debian-installer. - Package: libdrm2-dbg Section: debug Priority: extra @@ -75,7 +60,6 @@ Depends: libdrm2 (= ${binary:Version}), ${misc:Depends}, -Multi-Arch: same Description: Userspace interface to kernel DRM services -- debugging symbols This library implements the userspace interface to the kernel DRM services. DRM stands for "Direct Rendering Manager", which is the @@ -87,12 +71,8 @@ Package: libdrm-intel1 Section: libs -Architecture: amd64 i386 kfreebsd-amd64 kfreebsd-i386 x32 -Depends: - ${shlibs:Depends}, - ${misc:Depends}, -Pre-Depends: ${misc:Pre-Depends} -Multi-Arch: same +Architecture: linux-any kfreebsd-any +Depends: ${shlibs:Depends}, ${misc:Depends} Description: Userspace interface to intel-specific kernel DRM services -- runtime This library implements the userspace interface to the intel-specific kernel DRM services. DRM stands for "Direct Rendering Manager", which is the @@ -102,11 +82,8 @@ Package: libdrm-intel1-dbg Section: debug Priority: extra -Architecture: amd64 i386 kfreebsd-amd64 kfreebsd-i386 x32 -Depends: - libdrm-intel1 (= ${binary:Version}), - ${misc:Depends}, -Multi-Arch: same +Architecture: linux-any kfreebsd-any +Depends: libdrm-intel1 (= ${binary:Version}), ${misc:Depends} Description: Userspace interface to intel-specific kernel DRM services -- debugging symbols This library implements the userspace interface to the kernel DRM services. DRM stands for "Direct Rendering Manager", which is the kernelspace portion @@ -115,42 +92,38 @@ . This package provides the debugging symbols for the libdrm-intel1 package. -Package: libdrm-nouveau2 +Package: libdrm-nouveau1 Section: libs Architecture: linux-any Depends: ${shlibs:Depends}, ${misc:Depends}, -Pre-Depends: ${misc:Pre-Depends} -Multi-Arch: same +Breaks: xserver-xorg-video-nouveau (<< 1:0.0.16) Description: Userspace interface to nouveau-specific kernel DRM services -- runtime This library implements the userspace interface to the nouveau-specific kernel DRM services. DRM stands for "Direct Rendering Manager", which is the kernelspace portion of the "Direct Rendering Infrastructure" (DRI). The DRI is currently used on Linux to provide hardware-accelerated OpenGL drivers. -Package: libdrm-nouveau2-dbg +Package: libdrm-nouveau1-dbg Section: debug Priority: extra Architecture: linux-any -Depends: libdrm-nouveau2 (= ${binary:Version}), +Depends: libdrm-nouveau1 (= ${binary:Version}), ${misc:Depends}, -Multi-Arch: same Description: Userspace interface to nouveau-specific kernel DRM -- debugging symbols This library implements the userspace interface to the kernel DRM services. DRM stands for "Direct Rendering Manager", which is the kernelspace portion of the "Direct Rendering Infrastructure" (DRI). The DRI is currently used on Linux to provide hardware-accelerated OpenGL drivers. . - This package provides the debugging symbols for the libdrm-nouveau2 package. + This package provides the debugging symbols for the libdrm-nouveau1 package. Package: libdrm-radeon1 Section: libs -Architecture: any +Architecture: linux-any Depends: ${shlibs:Depends}, ${misc:Depends}, -Pre-Depends: ${misc:Pre-Depends} -Multi-Arch: same Description: Userspace interface to radeon-specific kernel DRM services -- runtime This library implements the userspace interface to the radeon-specific kernel DRM services. DRM stands for "Direct Rendering Manager", which is the @@ -160,11 +133,10 @@ Package: libdrm-radeon1-dbg Section: debug Priority: extra -Architecture: any +Architecture: linux-any Depends: libdrm-radeon1 (= ${binary:Version}), ${misc:Depends}, -Multi-Arch: same Description: Userspace interface to radeon-specific kernel DRM services -- debugging symbols This library implements the userspace interface to the kernel DRM services. DRM stands for "Direct Rendering Manager", which is the kernelspace portion @@ -173,32 +145,21 @@ . This package provides the debugging symbols for the libdrm-radeon1 package. -Package: libdrm-omap1 +Package: libkms1 Section: libs -Architecture: any-arm -Depends: - ${shlibs:Depends}, - ${misc:Depends}, -Pre-Depends: ${misc:Pre-Depends} -Multi-Arch: same -Description: Userspace interface to omap-specific kernel DRM services -- runtime - This library implements the userspace interface to the omap-specific kernel - DRM services. DRM stands for "Direct Rendering Manager", which is the - kernelspace portion of the "Direct Rendering Infrastructure" (DRI). The DRI is - currently used on Linux to provide hardware-accelerated OpenGL drivers. +Architecture: linux-any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Userspace interface to kernel DRM buffer management + This library implements a unified userspace interface to the different buffer + management interfaces of the kernel DRM hardware drivers. -Package: libdrm-omap1-dbg +Package: libkms1-dbg Section: debug Priority: extra -Architecture: any-arm -Depends: - libdrm-omap1 (= ${binary:Version}), - ${misc:Depends}, -Multi-Arch: same -Description: Userspace interface to omap-specific kernel DRM services -- debugging symbols - This library implements the userspace interface to the kernel DRM services. - DRM stands for "Direct Rendering Manager", which is the kernelspace portion - of the "Direct Rendering Infrastructure" (DRI). The DRI is currently used on - Linux to provide hardware-accelerated OpenGL drivers. +Architecture: linux-any +Depends: libkms1 (= ${binary:Version}), ${misc:Depends} +Description: Userspace interface to kernel DRM buffer management -- debugging symbols + This library implements a unified userspace interface to the different buffer + management interfaces of the kernel DRM hardware drivers. . - This package provides the debugging symbols for the libdrm-omap1 package. + This package provides the debugging symbols for the libkms1 package. diff -Nru libdrm-2.4.52/debian/libdrm2.install libdrm-2.4.52+really2.4.21/debian/libdrm2.install --- libdrm-2.4.52/debian/libdrm2.install 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm2.install 2014-05-11 23:32:00.000000000 +0000 @@ -1 +1 @@ -usr/lib/*/libdrm.so.2* +usr/lib/libdrm.so.2* /lib diff -Nru libdrm-2.4.52/debian/libdrm2.symbols libdrm-2.4.52+really2.4.21/debian/libdrm2.symbols --- libdrm-2.4.52/debian/libdrm2.symbols 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm2.symbols 2014-05-11 23:32:00.000000000 +0000 @@ -47,7 +47,6 @@ drmFreeVersion@Base 2.3.1 drmGetBufInfo@Base 2.3.1 drmGetBusid@Base 2.3.1 - drmGetCap@Base 2.4.25 drmGetClient@Base 2.3.1 drmGetContextFlags@Base 2.3.1 drmGetContextPrivateMapping@Base 2.3.1 @@ -76,7 +75,6 @@ drmMap@Base 2.3.1 drmMapBufs@Base 2.3.1 drmMarkBufs@Base 2.3.1 - drmModeAddFB2@Base 2.4.30 drmModeAddFB@Base 2.4.3 drmModeAttachMode@Base 2.4.3 drmModeConnectorSetProperty@Base 2.4.3 @@ -89,9 +87,6 @@ drmModeFreeEncoder@Base 2.4.3 drmModeFreeFB@Base 2.4.3 drmModeFreeModeInfo@Base 2.4.3 - drmModeFreeObjectProperties@Base 2.4.36 - drmModeFreePlane@Base 2.4.30 - drmModeFreePlaneResources@Base 2.4.31 drmModeFreeProperty@Base 2.4.3 drmModeFreePropertyBlob@Base 2.4.3 drmModeFreeResources@Base 2.4.3 @@ -99,26 +94,18 @@ drmModeGetCrtc@Base 2.4.3 drmModeGetEncoder@Base 2.4.3 drmModeGetFB@Base 2.4.3 - drmModeGetPlane@Base 2.4.30 - drmModeGetPlaneResources@Base 2.4.30 drmModeGetProperty@Base 2.4.3 drmModeGetPropertyBlob@Base 2.4.3 drmModeGetResources@Base 2.4.3 drmModeMoveCursor@Base 2.4.3 - drmModeObjectGetProperties@Base 2.4.36 - drmModeObjectSetProperty@Base 2.4.36 drmModePageFlip@Base 2.4.17 drmModeRmFB@Base 2.4.3 drmModeSetCrtc@Base 2.4.3 - drmModeSetCursor2@Base 2.4.46 drmModeSetCursor@Base 2.4.3 - drmModeSetPlane@Base 2.4.30 drmMsg@Base 2.4.1 drmOpen@Base 2.3.1 drmOpenControl@Base 2.4.3 drmOpenOnce@Base 2.3.1 - drmPrimeFDToHandle@Base 2.4.38 - drmPrimeHandleToFD@Base 2.4.38 drmRandom@Base 2.3.1 drmRandomCreate@Base 2.3.1 drmRandomDestroy@Base 2.3.1 @@ -136,7 +123,6 @@ drmScatterGatherAlloc@Base 2.3.1 drmScatterGatherFree@Base 2.3.1 drmSetBusid@Base 2.3.1 - drmSetClientCap@Base 2.4.47 drmSetContextFlags@Base 2.3.1 drmSetDebugMsgFunction@Base 2.3.1 drmSetInterfaceVersion@Base 2.3.1 diff -Nru libdrm-2.4.52/debian/libdrm2-udeb.install libdrm-2.4.52+really2.4.21/debian/libdrm2-udeb.install --- libdrm-2.4.52/debian/libdrm2-udeb.install 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm2-udeb.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libdrm.so.2* diff -Nru libdrm-2.4.52/debian/libdrm-dev.install libdrm-2.4.52+really2.4.21/debian/libdrm-dev.install --- libdrm-2.4.52/debian/libdrm-dev.install 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-dev.install 2014-05-11 23:32:00.000000000 +0000 @@ -1,6 +1,4 @@ usr/include/* -usr/lib/*/lib*.a -usr/lib/*/lib*.so -usr/lib/*/pkgconfig/* -usr/share/man/man3/* -usr/share/man/man7/* +usr/lib/lib*.a +usr/lib/lib*.so +usr/lib/pkgconfig/* diff -Nru libdrm-2.4.52/debian/libdrm-dev.links libdrm-2.4.52+really2.4.21/debian/libdrm-dev.links --- libdrm-2.4.52/debian/libdrm-dev.links 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-dev.links 2014-05-11 23:32:00.000000000 +0000 @@ -0,0 +1,5 @@ +/lib/libdrm.so.2 /usr/lib/libdrm.so +/lib/libdrm_intel.so.1 /usr/lib/libdrm_intel.so +/lib/libdrm_nouveau.so.1 /usr/lib/libdrm_nouveau.so +/lib/libdrm_radeon.so.1 /usr/lib/libdrm_radeon.so +/lib/libkms.so.1 /usr/lib/libkms.so diff -Nru libdrm-2.4.52/debian/libdrm-intel1.install libdrm-2.4.52+really2.4.21/debian/libdrm-intel1.install --- libdrm-2.4.52/debian/libdrm-intel1.install 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-intel1.install 2014-05-11 23:32:00.000000000 +0000 @@ -1 +1 @@ -usr/lib/*/libdrm_intel.so.1* +usr/lib/libdrm_intel.so.1* /lib diff -Nru libdrm-2.4.52/debian/libdrm-intel1.symbols libdrm-2.4.52+really2.4.21/debian/libdrm-intel1.symbols --- libdrm-2.4.52/debian/libdrm-intel1.symbols 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-intel1.symbols 2014-05-11 23:32:00.000000000 +0000 @@ -11,14 +11,12 @@ drm_intel_bo_fake_disable_backing_store@Base 2.4.1 drm_intel_bo_flink@Base 2.4.1 drm_intel_bo_gem_create_from_name@Base 2.4.1 - drm_intel_bo_gem_create_from_prime@Base 2.4.38 - drm_intel_bo_gem_export_to_prime@Base 2.4.38 drm_intel_bo_get_subdata@Base 2.4.1 drm_intel_bo_get_tiling@Base 2.4.1 drm_intel_bo_is_reusable@Base 2.4.21 drm_intel_bo_madvise@Base 2.4.16 drm_intel_bo_map@Base 2.4.1 - drm_intel_bo_mrb_exec@Base 2.4.23-3~ + drm_intel_bo_mrb_exec@Base 2.4.21 drm_intel_bo_pin@Base 2.4.1 drm_intel_bo_reference@Base 2.4.1 drm_intel_bo_references@Base 2.4.15 @@ -38,35 +36,12 @@ drm_intel_bufmgr_fake_set_last_dispatch@Base 2.4.1 drm_intel_bufmgr_gem_enable_fenced_relocs@Base 2.4.20 drm_intel_bufmgr_gem_enable_reuse@Base 2.4.1 - drm_intel_bufmgr_gem_get_devid@Base 2.4.32 drm_intel_bufmgr_gem_init@Base 2.4.1 - drm_intel_bufmgr_gem_set_aub_dump@Base 2.4.32 - drm_intel_bufmgr_gem_set_aub_filename@Base 2.4.46 - drm_intel_bufmgr_gem_set_aub_annotations@Base 2.4.34 - drm_intel_bufmgr_gem_set_vma_cache_size@Base 2.4.29 drm_intel_bufmgr_set_debug@Base 2.4.1 - drm_intel_decode@Base 2.4.30 - drm_intel_decode_context_alloc@Base 2.4.30 - drm_intel_decode_context_free@Base 2.4.30 - drm_intel_decode_set_batch_pointer@Base 2.4.30 - drm_intel_decode_set_dump_past_end@Base 2.4.30 - drm_intel_decode_set_head_tail@Base 2.4.30 - drm_intel_decode_set_output_file@Base 2.4.30 - drm_intel_gem_bo_aub_dump_bmp@Base 2.4.32 - drm_intel_gem_bo_clear_relocs@Base 2.4.27 - drm_intel_gem_bo_context_exec@Base 2.4.36 - drm_intel_gem_bo_get_reloc_count@Base 2.4.27 drm_intel_gem_bo_map_gtt@Base 2.4.3 - drm_intel_gem_bo_map_unsynchronized@Base 2.4.32 drm_intel_gem_bo_start_gtt_access@Base 2.4.3 drm_intel_gem_bo_unmap_gtt@Base 2.4.9 - drm_intel_gem_bo_wait@Base 2.4.36 - drm_intel_gem_context_create@Base 2.4.37 - drm_intel_gem_context_destroy@Base 2.4.37 - drm_intel_get_aperture_sizes@Base 2.4.26 drm_intel_get_pipe_from_crtc_id@Base 2.4.11 - drm_intel_get_reset_stats@Base 2.4.48 - drm_intel_reg_read@Base 2.4.38 drm_mmAllocMem@Base 2.4.1 drm_mmDestroy@Base 2.4.1 drm_mmDumpMemInfo@Base 2.4.1 diff -Nru libdrm-2.4.52/debian/libdrm-nouveau1.install libdrm-2.4.52+really2.4.21/debian/libdrm-nouveau1.install --- libdrm-2.4.52/debian/libdrm-nouveau1.install 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-nouveau1.install 2014-05-11 23:32:00.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/libdrm_nouveau.so.1* /lib diff -Nru libdrm-2.4.52/debian/libdrm-nouveau1.symbols libdrm-2.4.52+really2.4.21/debian/libdrm-nouveau1.symbols --- libdrm-2.4.52/debian/libdrm-nouveau1.symbols 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-nouveau1.symbols 2014-05-11 23:32:00.000000000 +0000 @@ -0,0 +1,46 @@ +libdrm_nouveau.so.1 libdrm-nouveau1 #MINVER# + nouveau_bo_busy@Base 2.4.20-3~ + nouveau_bo_emit_buffer@Base 2.4.20-3~ + nouveau_bo_handle_get@Base 2.4.20-3~ + nouveau_bo_handle_ref@Base 2.4.20-3~ + nouveau_bo_init@Base 2.4.20-3~ + nouveau_bo_map@Base 2.4.20-3~ + nouveau_bo_map_flush@Base 2.4.20-3~ + nouveau_bo_map_range@Base 2.4.20-3~ + nouveau_bo_new@Base 2.4.20-3~ + nouveau_bo_new_tile@Base 2.4.20-3~ + nouveau_bo_pending@Base 2.4.20-3~ + nouveau_bo_ref@Base 2.4.20-3~ + nouveau_bo_takedown@Base 2.4.20-3~ + nouveau_bo_unmap@Base 2.4.20-3~ + nouveau_bo_user@Base 2.4.20-3~ + nouveau_bo_wrap@Base 2.4.20-3~ + nouveau_channel_alloc@Base 2.4.20-3~ + nouveau_channel_free@Base 2.4.20-3~ + nouveau_device_close@Base 2.4.20-3~ + nouveau_device_get_param@Base 2.4.20-3~ + nouveau_device_open@Base 2.4.20-3~ + nouveau_device_open_existing@Base 2.4.20-3~ + nouveau_device_set_param@Base 2.4.20-3~ + nouveau_grobj_alloc@Base 2.4.20-3~ + nouveau_grobj_autobind@Base 2.4.20-3~ + nouveau_grobj_free@Base 2.4.20-3~ + nouveau_grobj_ref@Base 2.4.20-3~ + nouveau_notifier_alloc@Base 2.4.20-3~ + nouveau_notifier_free@Base 2.4.20-3~ + nouveau_notifier_reset@Base 2.4.20-3~ + nouveau_notifier_return_val@Base 2.4.20-3~ + nouveau_notifier_status@Base 2.4.20-3~ + nouveau_notifier_wait_status@Base 2.4.20-3~ + nouveau_pushbuf_emit_reloc@Base 2.4.20-3~ + nouveau_pushbuf_fini@Base 2.4.20-3~ + nouveau_pushbuf_flush@Base 2.4.20-3~ + nouveau_pushbuf_init@Base 2.4.20-3~ + nouveau_pushbuf_marker_emit@Base 2.4.20-3~ + nouveau_pushbuf_marker_undo@Base 2.4.20-3~ + nouveau_pushbuf_submit@Base 2.4.20-3~ + nouveau_reloc_emit@Base 2.4.20-3~ + nouveau_resource_alloc@Base 2.4.20-3~ + nouveau_resource_destroy@Base 2.4.20-3~ + nouveau_resource_free@Base 2.4.20-3~ + nouveau_resource_init@Base 2.4.20-3~ diff -Nru libdrm-2.4.52/debian/libdrm-nouveau2.install libdrm-2.4.52+really2.4.21/debian/libdrm-nouveau2.install --- libdrm-2.4.52/debian/libdrm-nouveau2.install 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-nouveau2.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libdrm_nouveau.so.2* diff -Nru libdrm-2.4.52/debian/libdrm-nouveau2.lintian-overrides libdrm-2.4.52+really2.4.21/debian/libdrm-nouveau2.lintian-overrides --- libdrm-2.4.52/debian/libdrm-nouveau2.lintian-overrides 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-nouveau2.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -libdrm-nouveau2: symbols-declares-dependency-on-other-package libdrm-nouveau-private diff -Nru libdrm-2.4.52/debian/libdrm-nouveau2.symbols libdrm-2.4.52+really2.4.21/debian/libdrm-nouveau2.symbols --- libdrm-2.4.52/debian/libdrm-nouveau2.symbols 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-nouveau2.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -libdrm_nouveau.so.2 libdrm-nouveau2 #MINVER# -| libdrm-nouveau-private - abi16_bo_info@Base 0 1 - abi16_bo_init@Base 0 1 - abi16_chan_nv04@Base 0 1 - abi16_chan_nvc0@Base 0 1 - abi16_chan_nve0@Base 0 1 - abi16_engobj@Base 0 1 - abi16_ntfy@Base 0 1 - nouveau_bo_map@Base 2.4.34 - nouveau_bo_name_get@Base 2.4.34 - nouveau_bo_name_ref@Base 2.4.34 - nouveau_bo_new@Base 2.4.34 - nouveau_bo_prime_handle_ref@Base 2.4.38 - nouveau_bo_ref@Base 2.4.34 - nouveau_bo_set_prime@Base 2.4.38 - nouveau_bo_wait@Base 2.4.34 - nouveau_bo_wrap@Base 2.4.34 - nouveau_bufctx_del@Base 2.4.34 - nouveau_bufctx_mthd@Base 2.4.34 - nouveau_bufctx_new@Base 2.4.34 - nouveau_bufctx_refn@Base 2.4.34 - nouveau_bufctx_reset@Base 2.4.34 - nouveau_client_del@Base 2.4.34 - nouveau_client_new@Base 2.4.34 - nouveau_debug@Base 2.4.34 - nouveau_device_del@Base 2.4.34 - nouveau_device_open@Base 2.4.34 - nouveau_device_open_existing@Base 0 1 - nouveau_device_wrap@Base 2.4.34 - nouveau_getparam@Base 2.4.34 - nouveau_object_del@Base 2.4.34 - nouveau_object_find@Base 2.4.34 - nouveau_object_new@Base 2.4.34 - nouveau_pushbuf_bufctx@Base 2.4.34 - nouveau_pushbuf_data@Base 2.4.34 - nouveau_pushbuf_del@Base 2.4.34 - nouveau_pushbuf_kick@Base 2.4.34 - nouveau_pushbuf_new@Base 2.4.34 - nouveau_pushbuf_refd@Base 2.4.34 - nouveau_pushbuf_refn@Base 2.4.34 - nouveau_pushbuf_reloc@Base 2.4.34 - nouveau_pushbuf_space@Base 2.4.34 - nouveau_pushbuf_validate@Base 2.4.34 - nouveau_setparam@Base 2.4.34 diff -Nru libdrm-2.4.52/debian/libdrm-omap1.install libdrm-2.4.52+really2.4.21/debian/libdrm-omap1.install --- libdrm-2.4.52/debian/libdrm-omap1.install 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-omap1.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libdrm_omap.so.1* diff -Nru libdrm-2.4.52/debian/libdrm-omap1.symbols libdrm-2.4.52+really2.4.21/debian/libdrm-omap1.symbols --- libdrm-2.4.52/debian/libdrm-omap1.symbols 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-omap1.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -libdrm_omap.so.1 libdrm-omap1 #MINVER# - omap_bo_cpu_fini@Base 2.4.33 - omap_bo_cpu_prep@Base 2.4.33 - omap_bo_del@Base 2.4.33 - omap_bo_dmabuf@Base 2.4.34 - omap_bo_from_dmabuf@Base 2.4.38 - omap_bo_from_name@Base 2.4.33 - omap_bo_get_name@Base 2.4.33 - omap_bo_handle@Base 2.4.33 - omap_bo_map@Base 2.4.33 - omap_bo_new@Base 2.4.33 - omap_bo_new_tiled@Base 2.4.33 - omap_bo_ref@Base 2.4.38 - omap_bo_size@Base 2.4.33 - omap_device_del@Base 2.4.33 - omap_device_new@Base 2.4.33 - omap_device_ref@Base 2.4.38 - omap_get_param@Base 2.4.33 - omap_set_param@Base 2.4.33 diff -Nru libdrm-2.4.52/debian/libdrm-radeon1.install libdrm-2.4.52+really2.4.21/debian/libdrm-radeon1.install --- libdrm-2.4.52/debian/libdrm-radeon1.install 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-radeon1.install 2014-05-11 23:32:00.000000000 +0000 @@ -1 +1 @@ -usr/lib/*/libdrm_radeon.so.1* +usr/lib/libdrm_radeon.so.1* /lib diff -Nru libdrm-2.4.52/debian/libdrm-radeon1.lintian-overrides libdrm-2.4.52+really2.4.21/debian/libdrm-radeon1.lintian-overrides --- libdrm-2.4.52/debian/libdrm-radeon1.lintian-overrides 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-radeon1.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -libdrm-radeon1: symbols-declares-dependency-on-other-package libdrm-radeon-private diff -Nru libdrm-2.4.52/debian/libdrm-radeon1.symbols libdrm-2.4.52+really2.4.21/debian/libdrm-radeon1.symbols --- libdrm-2.4.52/debian/libdrm-radeon1.symbols 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libdrm-radeon1.symbols 2014-05-11 23:32:00.000000000 +0000 @@ -52,13 +52,7 @@ radeon_cs_space_reset_bos@Base 2.4.17 radeon_cs_space_set_flush@Base 2.4.17 radeon_cs_write_reloc@Base 2.4.17 - radeon_gem_bo_open_prime@Base 2.4.39 radeon_gem_get_kernel_name@Base 2.4.17 radeon_gem_get_reloc_in_cs@Base 2.4.20 radeon_gem_name_bo@Base 2.4.17 - radeon_gem_prime_share_bo@Base 2.4.39 radeon_gem_set_domain@Base 2.4.17 - radeon_surface_best@Base 2.4.31 - radeon_surface_init@Base 2.4.31 - radeon_surface_manager_free@Base 2.4.31 - radeon_surface_manager_new@Base 2.4.31 diff -Nru libdrm-2.4.52/debian/libkms1.install libdrm-2.4.52+really2.4.21/debian/libkms1.install --- libdrm-2.4.52/debian/libkms1.install 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libkms1.install 2014-05-11 23:32:00.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/libkms.so.1* /lib diff -Nru libdrm-2.4.52/debian/libkms1.symbols libdrm-2.4.52+really2.4.21/debian/libkms1.symbols --- libdrm-2.4.52/debian/libkms1.symbols 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/libkms1.symbols 2014-05-11 23:32:00.000000000 +0000 @@ -0,0 +1,14 @@ +libkms.so.1 libkms1 #MINVER# +| libkms-private + intel_create@Base 0 1 + kms_bo_create@Base 0 + kms_bo_destroy@Base 0 + kms_bo_get_prop@Base 0 + kms_bo_map@Base 0 + kms_bo_unmap@Base 0 + kms_create@Base 0 + kms_destroy@Base 0 + kms_get_prop@Base 0 + linux_create@Base 0 1 + nouveau_create@Base 0 1 + vmwgfx_create@Base 0 1 diff -Nru libdrm-2.4.52/debian/patches/02_build_libkms_against_in_tree_drm.diff libdrm-2.4.52+really2.4.21/debian/patches/02_build_libkms_against_in_tree_drm.diff --- libdrm-2.4.52/debian/patches/02_build_libkms_against_in_tree_drm.diff 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/patches/02_build_libkms_against_in_tree_drm.diff 2014-05-11 23:32:00.000000000 +0000 @@ -0,0 +1,17 @@ +Description: Add libdrm to LIBADD as libkms uses symbols from libdrm +Author: Christopher Halse Rogers +Bug: https://bugs.freedesktop.org/show_bug.cgi?id=26852 + +Index: libdrm/libkms/Makefile.am +=================================================================== +--- libdrm.orig/libkms/Makefile.am ++++ libdrm/libkms/Makefile.am +@@ -6,7 +6,7 @@ AM_CFLAGS = \ + libkms_la_LTLIBRARIES = libkms.la + libkms_ladir = $(libdir) + libkms_la_LDFLAGS = -version-number 1:0:0 -no-undefined +-libkms_la_LIBADD = ++libkms_la_LIBADD = ../libdrm.la + + #if HAVE_LIBUDEV + #libkms_la_LIBADD += $(LIBUDEV_LIBS) diff -Nru libdrm-2.4.52/debian/patches/02_kbsd_modeset.diff libdrm-2.4.52+really2.4.21/debian/patches/02_kbsd_modeset.diff --- libdrm-2.4.52/debian/patches/02_kbsd_modeset.diff 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/patches/02_kbsd_modeset.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -From: kostikbel -Date: Thu, 21 Feb 2013 20:02:00 +0000 -Subject: Make drmCheckModesettingSupported work on FreeBSD - -Patch from http://people.freebsd.org/~kib/drm/libdrm.2.patch - -Index: libdrm-bisect/xf86drmMode.c -=================================================================== ---- libdrm-bisect.orig/xf86drmMode.c 2013-09-19 13:28:24.000000000 +0200 -+++ libdrm-bisect/xf86drmMode.c 2013-09-19 13:32:43.085063015 +0200 -@@ -704,7 +704,7 @@ - */ - int drmCheckModesettingSupported(const char *busid) - { --#ifdef __linux__ -+#if defined (__linux__) - char pci_dev_dir[1024]; - int domain, bus, dev, func; - DIR *sysdir; -@@ -754,6 +754,37 @@ - closedir(sysdir); - if (found) - return 0; -+#elif defined (__FreeBSD__) || defined(__FreeBSD_kernel__) -+ char kbusid[1024], sbusid[1024]; -+ char oid[128]; -+ int domain, bus, dev, func; -+ int i, modesetting, ret; -+ size_t len; -+ -+ ret = sscanf(busid, "pci:%04x:%02x:%02x.%d", &domain, &bus, &dev, &func); -+ if (ret != 4) -+ return -EINVAL; -+ snprintf(kbusid, sizeof(kbusid), "pci:%04x:%02x:%02x.%d", domain, bus, dev, func); -+ -+ /* How many GPUs do we expect in the machine? */ -+ for (i = 0; i < 16; i++) { -+ snprintf(oid, sizeof(oid), "hw.dri.%d.busid", i); -+ len = sizeof(sbusid); -+ ret = sysctlbyname(oid, sbusid, &len, NULL, 0); -+ if (ret == -1) { -+ if (errno == ENOENT) -+ continue; -+ return -EINVAL; -+ } -+ if (strcmp(sbusid, kbusid) != 0) -+ continue; -+ snprintf(oid, sizeof(oid), "hw.dri.%d.modesetting", i); -+ len = sizeof(modesetting); -+ ret = sysctlbyname(oid, &modesetting, &len, NULL, 0); -+ if (ret == -1 || len != sizeof(modesetting)) -+ return -EINVAL; -+ return (modesetting ? 0 : -ENOSYS); -+ } - #endif - return -ENOSYS; - diff -Nru libdrm-2.4.52/debian/patches/03_intel_limit_tiled_pitches.patch libdrm-2.4.52+really2.4.21/debian/patches/03_intel_limit_tiled_pitches.patch --- libdrm-2.4.52/debian/patches/03_intel_limit_tiled_pitches.patch 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/patches/03_intel_limit_tiled_pitches.patch 2014-05-11 23:32:00.000000000 +0000 @@ -0,0 +1,64 @@ +From 726210f87d558d558022f35bc8c839e798a19f0c Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Thu, 24 Jun 2010 10:38:00 +0000 +Subject: intel: Limit tiled pitches to 8192 on pre-i965. + +Fixes: + + Bug 28515 - Failed to allocate framebuffer when exceed 2048 width + https://bugs.freedesktop.org/show_bug.cgi?id=28515 + +Signed-off-by: Chris Wilson +--- +diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c +index a1a0806..26dc334 100644 +--- a/intel/intel_bufmgr_gem.c ++++ b/intel/intel_bufmgr_gem.c +@@ -254,7 +254,7 @@ drm_intel_gem_bo_tile_size(drm_intel_bufmgr_gem *bufmgr_gem, unsigned long size, + */ + static unsigned long + drm_intel_gem_bo_tile_pitch(drm_intel_bufmgr_gem *bufmgr_gem, +- unsigned long pitch, uint32_t tiling_mode) ++ unsigned long pitch, uint32_t *tiling_mode) + { + unsigned long tile_width; + unsigned long i; +@@ -262,10 +262,10 @@ drm_intel_gem_bo_tile_pitch(drm_intel_bufmgr_gem *bufmgr_gem, + /* If untiled, then just align it so that we can do rendering + * to it with the 3D engine. + */ +- if (tiling_mode == I915_TILING_NONE) ++ if (*tiling_mode == I915_TILING_NONE) + return ALIGN(pitch, 64); + +- if (tiling_mode == I915_TILING_X) ++ if (*tiling_mode == I915_TILING_X) + tile_width = 512; + else + tile_width = 128; +@@ -274,6 +274,14 @@ drm_intel_gem_bo_tile_pitch(drm_intel_bufmgr_gem *bufmgr_gem, + if (bufmgr_gem->gen >= 4) + return ROUND_UP_TO(pitch, tile_width); + ++ /* The older hardware has a maximum pitch of 8192 with tiled ++ * surfaces, so fallback to untiled if it's too large. ++ */ ++ if (pitch > 8192) { ++ *tiling_mode = I915_TILING_NONE; ++ return ALIGN(pitch, 64); ++ } ++ + /* Pre-965 needs power of two tile width */ + for (i = tile_width; i < pitch; i <<= 1) + ; +@@ -738,7 +746,7 @@ drm_intel_gem_bo_alloc_tiled(drm_intel_bufmgr *bufmgr, const char *name, + aligned_y = ALIGN(y, 32); + + stride = x * cpp; +- stride = drm_intel_gem_bo_tile_pitch(bufmgr_gem, stride, tiling); ++ stride = drm_intel_gem_bo_tile_pitch(bufmgr_gem, stride, tiling_mode); + size = stride * aligned_y; + size = drm_intel_gem_bo_tile_size(bufmgr_gem, size, tiling_mode); + } while (*tiling_mode != tiling); +-- +cgit v0.8.3-6-g21f6 diff -Nru libdrm-2.4.52/debian/patches/series libdrm-2.4.52+really2.4.21/debian/patches/series --- libdrm-2.4.52/debian/patches/series 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/patches/series 2014-05-11 23:32:00.000000000 +0000 @@ -1,2 +1,3 @@ 01_default_perms.diff -02_kbsd_modeset.diff +02_build_libkms_against_in_tree_drm.diff +03_intel_limit_tiled_pitches.patch diff -Nru libdrm-2.4.52/debian/README.source libdrm-2.4.52+really2.4.21/debian/README.source --- libdrm-2.4.52/debian/README.source 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/README.source 2014-05-11 23:32:00.000000000 +0000 @@ -14,12 +14,6 @@ Alternatively, instead of using quilt directly, you can drop the patch in to debian/patches and add the name of the patch to debian/patches/series. -While building from git, dpkg-source can complain about symlinks vs. -normal files mismatches. To work around this issue, before uploading, -and without committing: - - find -type l | while read dest; do src=$(readlink -f $dest); rm $dest; cp $src $dest; done - ------------------------------------ Guide To The X Strike Force Packages ------------------------------------ @@ -53,3 +47,27 @@ case, it appears directly in the .diff.gz. * Otherwise, the patch is added to debian/patches/ which is managed with quilt as documented in /usr/share/doc/quilt/README.source. + +quilt is actually invoked by the Debian X packaging through a larger +set of scripts called XSFBS. XSFBS brings some other X specific +features such as managing dependencies and conflicts due to the video +and input driver ABIs. +XSFBS itself is maintained in a separate repository at + git://git.debian.org/pkg-xorg/xsfbs.git +and it is pulled inside the other Debian X repositories when needed. + +The XSFBS patching system requires a build dependency on quilt. Also +a dependency on $(STAMP_DIR)/patch has to be added to debian/rules +so that the XSFBS patching occurs before the actual build. So the +very first target of the build (likely the one running autoreconf) +should depend on $(STAMP_DIR)/patch. It should also not depend on +anything so that parallel builds are correctly supported (nothing +should probably run while patching is being done). And finally, the +clean target should depend on the xsfclean target so that patches +are unapplied on clean. + +When the upstream sources contain some DFSG-nonfree files, they are +listed in text files in debian/prune/ in the "debian-*" branch of +the Debian repository. XSFBS' scripts then take care of removing +these listed files during the build so as to generate a modified +DFSG-free .orig.tar.gz tarball. diff -Nru libdrm-2.4.52/debian/rules libdrm-2.4.52+really2.4.21/debian/rules --- libdrm-2.4.52/debian/rules 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/rules 2014-05-11 23:32:00.000000000 +0000 @@ -1,98 +1,162 @@ #!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +include debian/xsfbs/xsfbs.mk + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) -### -### Configuration, decide what to build -### - -# Some variables: -DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) -DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU) - -confflags = \ - --enable-radeon \ - --disable-libkms \ - $() - -# Linux vs. the rest: +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + confflags += --build=$(DEB_HOST_GNU_TYPE) +else + confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) +endif ifeq (linux, $(DEB_HOST_ARCH_OS)) confflags += --enable-udev - confflags += --enable-vmwgfx - confflags += --enable-nouveau + confflags += --enable-libkms + LIBKMS = yes + confflags += --enable-vmwgfx-experimental-api + confflags += --enable-nouveau-experimental-api NOUVEAU = yes + confflags += --enable-radeon + RADEON = yes else confflags += --disable-udev - confflags += --disable-vmwgfx - confflags += --disable-nouveau + confflags += --disable-libkms + LIBKMS=no + confflags += --disable-nouveau-experimental-api NOUVEAU = no - # kfreebsd mangles freebsd's sys/types.h - confflags += CFLAGS="$(shell pkg-config --cflags libbsd-overlay)" + confflags += --disable-radeon + RADEON = no endif -# Intel is only on x86: -ifneq (,$(filter amd64 i386,$(DEB_HOST_ARCH_CPU))) ifneq (,$(filter linux kfreebsd,$(DEB_HOST_ARCH_OS))) INTEL = yes endif -endif + ifeq ($(INTEL), yes) confflags += --enable-intel else confflags += --disable-intel endif -# Omap is only on arm -ifneq (,$(filter arm,$(DEB_HOST_ARCH_CPU))) - OMAP = yes -endif -ifeq ($(OMAP), yes) - confflags += --enable-omap-experimental-api +CFLAGS = -Wall -g + +ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 else - confflags += --disable-omap-experimental-api + CFLAGS += -O2 endif - -### -### Actual build -### - -override_dh_auto_configure: - dh_auto_configure -- --disable-silent-rules --enable-static=yes $(confflags) - -override_dh_auto_test: - dh_auto_test || echo "Test suite failure, but keeping on anyway" - -override_dh_auto_install: - dh_auto_install --destdir=debian/tmp - -override_dh_install: - find debian/tmp -name '*.la' -delete - dh_install --fail-missing - -override_dh_strip: +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + MAKEFLAGS += -j$(NUMJOBS) +endif + +configure: $(STAMP_DIR)/patch + dh_testdir + autoreconf -vfi + +build/config.status: configure + dh_testdir + test -d build || mkdir build + cd build && \ + ../configure \ + --prefix=/usr \ + --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info \ + --enable-static=yes \ + $(confflags) \ + CFLAGS="$(CFLAGS)" + +build: build-stamp +build-stamp: build/config.status + dh_testdir + cd build && $(MAKE) + >$@ + +clean: xsfclean + dh_testdir + dh_testroot + rm -f build-stamp + + rm -f config.cache config.log config.status + rm -f */config.cache */config.log */config.status + rm -f conftest* */conftest* + rm -rf autom4te.cache */autom4te.cache + rm -rf build + rm -f $$(find -name Makefile.in) + rm -f compile config.guess config.sub configure depcomp install-sh + rm -f ltmain.sh missing INSTALL aclocal.m4 config.h.in mkinstalldirs + rm -f libdrm.pc libdrm/config.h.in + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + cd build && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir -s + dh_testroot -s + dh_installchangelogs + dh_installdocs -s + dh_installexamples -s + dh_install -s --sourcedir=debian/tmp -X.la --fail-missing + dh_link -s dh_strip -plibdrm2 --dbg-package=libdrm2-dbg ifeq ($(INTEL), yes) dh_strip -plibdrm-intel1 --dbg-package=libdrm-intel1-dbg endif ifeq ($(NOUVEAU), yes) - dh_strip -plibdrm-nouveau2 --dbg-package=libdrm-nouveau2-dbg + dh_strip -plibdrm-nouveau1 --dbg-package=libdrm-nouveau1-dbg endif +ifeq ($(RADEON), yes) dh_strip -plibdrm-radeon1 --dbg-package=libdrm-radeon1-dbg -ifeq ($(OMAP), yes) - dh_strip -plibdrm-omap1 --dbg-package=libdrm-omap1-dbg +endif +ifeq ($(LIBKMS), yes) + dh_strip -p libkms1 --dbg-package=libkms1-dbg endif dh_strip -s --remaining-packages - -override_dh_makeshlibs: - dh_makeshlibs -plibdrm2 -V'libdrm2 (>= 2.4.46)' --add-udeb=libdrm2-udeb -- -c4 + dh_compress -s + dh_fixperms -s + dh_makeshlibs -plibdrm2 -V'libdrm2 (>= 2.4.17)' -- -c4 ifeq ($(INTEL), yes) - dh_makeshlibs -plibdrm-intel1 -V'libdrm-intel1 (>= 2.4.46)' -- -c4 + dh_makeshlibs -plibdrm-intel1 -V'libdrm-intel1 (>= 2.4.21)' -- -c4 endif ifeq ($(NOUVEAU), yes) - dh_makeshlibs -plibdrm-nouveau2 -V'libdrm-nouveau2 (>= 2.4.38)' -- -c4 + dh_makeshlibs -plibdrm-nouveau1 -V'libdrm-nouveau1 (>= 2.4.20-3~)' -- -c4 +endif +ifeq ($(RADEON), yes) + dh_makeshlibs -plibdrm-radeon1 -V'libdrm-radeon1 (>= 2.4.20)' -- -c4 endif - dh_makeshlibs -plibdrm-radeon1 -V'libdrm-radeon1 (>= 2.4.39)' -- -c4 -ifeq ($(OMAP), yes) - dh_makeshlibs -plibdrm-omap1 -V'libdrm-omap1 (>= 2.4.38)' -- -c4 +ifeq ($(LIBKMS), yes) + dh_makeshlibs -plibkms1 -V'libkms1' -- -c4 endif + dh_installdeb -s + dh_shlibdeps -s + dh_gencontrol -s + dh_md5sums -s + dh_builddeb -s -%: - dh $@ --with quilt,autoreconf --builddirectory=build/ +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff -Nru libdrm-2.4.52/debian/watch libdrm-2.4.52+really2.4.21/debian/watch --- libdrm-2.4.52/debian/watch 2014-05-11 23:36:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/watch 2014-05-11 23:32:00.000000000 +0000 @@ -1,3 +1,3 @@ -#git=git://anongit.freedesktop.org/mesa/drm version=3 + http://dri.freedesktop.org/libdrm/libdrm-(.*)\.tar\.gz diff -Nru libdrm-2.4.52/debian/xsfbs/repack.sh libdrm-2.4.52+really2.4.21/debian/xsfbs/repack.sh --- libdrm-2.4.52/debian/xsfbs/repack.sh 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/xsfbs/repack.sh 2014-05-11 23:32:00.000000000 +0000 @@ -0,0 +1,32 @@ +#!/bin/sh + +set -e + +if ! [ -d debian/prune ]; then + exit 0 +fi + +if [ "x$1" != x--upstream-version ]; then + exit 1 +fi + +version="$2" +filename="$3" + +if [ -z "$version" ] || ! [ -f "$filename" ]; then + exit 1 +fi + +dir="$(pwd)" +tempdir="$(mktemp -d)" + +cd "$tempdir" +tar xf "$dir/$filename" +cat "$dir"/debian/prune/* | while read file; do rm -f */$file; done + +tar czf "$dir/$filename" * +cd "$dir" +rm -rf "$tempdir" +echo "Done pruning upstream tarball" + +exit 0 diff -Nru libdrm-2.4.52/debian/xsfbs/xsfbs.mk libdrm-2.4.52+really2.4.21/debian/xsfbs/xsfbs.mk --- libdrm-2.4.52/debian/xsfbs/xsfbs.mk 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/xsfbs/xsfbs.mk 2014-05-11 23:32:00.000000000 +0000 @@ -0,0 +1,285 @@ +#!/usr/bin/make -f + +# Debian X Strike Force Build System (XSFBS): Make portion + +# Copyright 1996 Stephen Early +# Copyright 1997 Mark Eichin +# Copyright 1998-2005, 2007 Branden Robinson +# Copyright 2005 David Nusinow +# +# Licensed under the GNU General Public License, version 2. See the file +# /usr/share/common-licenses/GPL or . + +# Originally by Stephen Early +# Modified by Mark W. Eichin +# Modified by Adam Heath +# Modified by Branden Robinson +# Modified by Fabio Massimo Di Nitto +# Modified by David Nusinow +# Acknowledgements to Manoj Srivastava. + +# Pass $(DH_OPTIONS) into the environment for debhelper's benefit. +export DH_OPTIONS + +# force quilt to not use ~/.quiltrc and to use debian/patches +QUILT = QUILT_PATCHES=debian/patches quilt --quiltrc /dev/null + +# Set up parameters for the upstream build environment. + +# Determine (source) package name from Debian changelog. +SOURCE_NAME:=$(shell dpkg-parsechangelog -ldebian/changelog \ + | grep '^Source:' | awk '{print $$2}') + +# Determine package version from Debian changelog. +SOURCE_VERSION:=$(shell dpkg-parsechangelog -ldebian/changelog \ + | grep '^Version:' | awk '{print $$2}') + +# Determine upstream version number. +UPSTREAM_VERSION:=$(shell echo $(SOURCE_VERSION) | sed 's/-.*//') + +# Determine the source version without the epoch for make-orig-tar-gz +NO_EPOCH_VER:=$(shell echo $(UPSTREAM_VERSION) | sed 's/^.://') + +# Figure out who's building this package. +BUILDER:=$(shell echo $${DEBEMAIL:-$${EMAIL:-$$(echo $$LOGNAME@$$(cat /etc/mailname 2>/dev/null))}}) + +# Find out if this is an official build; an official build has nothing but +# digits, dots, and/or the codename of a release in the Debian part of the +# version number. Anything else indicates an unofficial build. +OFFICIAL_BUILD:=$(shell VERSION=$(SOURCE_VERSION); if ! expr "$$(echo $${VERSION\#\#*-} | sed 's/\(woody\|sarge\|etch\|lenny\)//g')" : ".*[^0-9.].*" >/dev/null 2>&1; then echo yes; fi) + +# Set up parameters for the Debian build environment. + +# Determine our architecture. +BUILD_ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH) +# Work around some old-time dpkg braindamage. +BUILD_ARCH:=$(subst i486,i386,$(BUILD_ARCH)) +# The DEB_HOST_ARCH variable may be set per the Debian cross-compilation policy. +ifdef DEB_HOST_ARCH + ARCH:=$(DEB_HOST_ARCH) +else + # dpkg-cross sets the ARCH environment variable; if set, use it. + ifdef ARCH + ARCH:=$(ARCH) + else + ARCH:=$(BUILD_ARCH) + endif +endif + +# $(STAMP_DIR) houses stamp files for complex targets. +STAMP_DIR:=stampdir + +# $(DEBTREEDIR) is where all install rules are told (via $(DESTDIR)) to place +# their files. +DEBTREEDIR:=$(CURDIR)/debian/tmp + +# All "important" targets have four lines: +# 1) A target name that is invoked by a package-building tool or the user. +# This consists of a dependency on a "$(STAMP_DIR)/"-prefixed counterpart. +# 2) A line delcaring 1) as a phony target (".PHONY:"). +# 3) A "$(STAMP_DIR)/"-prefixed target which does the actual work, and may +# depend on other targets. +# 4) A line declaring 3) as a member of the $(stampdir_targets) variable; the +# "$(STAMP_DIR)/" prefix is omitted. +# +# This indirection is needed so that the "stamp" files that signify when a rule +# is done can be located in a separate "stampdir". Recall that make has no way +# to know when a goal has been met for a phony target (like "build" or +# "install"). +# +# At the end of each "$(STAMP_DIR)/" target, be sure to run the command ">$@" +# so that the target will not be run again. Removing the file will make Make +# run the target over. + +# All phony targets should be declared as dependencies of .PHONY, even if they +# do not have "($STAMP_DIR)/"-prefixed counterparts. + +# Define a harmless default rule to keep things from going nuts by accident. +.PHONY: default +default: + +# Set up the $(STAMP_DIR) directory. +.PHONY: stampdir +stampdir_targets+=stampdir +stampdir: $(STAMP_DIR)/stampdir +$(STAMP_DIR)/stampdir: + mkdir $(STAMP_DIR) + >$@ + +# Set up the package build directory as quilt expects to find it. +.PHONY: prepare +stampdir_targets+=prepare +prepare: $(STAMP_DIR)/prepare +$(STAMP_DIR)/prepare: $(STAMP_DIR)/logdir $(STAMP_DIR)/genscripts + >$@ + +.PHONY: logdir +stampdir_targets+=logdir +logdir: $(STAMP_DIR)/logdir +$(STAMP_DIR)/logdir: $(STAMP_DIR)/stampdir + mkdir -p $(STAMP_DIR)/log + >$@ + +# Apply all patches to the upstream source. +.PHONY: patch +stampdir_targets+=patch +patch: $(STAMP_DIR)/patch +$(STAMP_DIR)/patch: $(STAMP_DIR)/prepare + if ! [ `which quilt` ]; then \ + echo "Couldn't find quilt. Please install it or add it to the build-depends for this package."; \ + exit 1; \ + fi; \ + if $(QUILT) next >/dev/null 2>&1; then \ + echo -n "Applying patches..."; \ + if $(QUILT) push -a -v >$(STAMP_DIR)/log/patch 2>&1; then \ + cat $(STAMP_DIR)/log/patch; \ + echo "successful."; \ + else \ + cat $(STAMP_DIR)/log/patch; \ + echo "failed! (check $(STAMP_DIR)/log/patch for details)"; \ + exit 1; \ + fi; \ + else \ + echo "No patches to apply"; \ + fi; \ + >$@ + +# Revert all patches to the upstream source. +.PHONY: unpatch +unpatch: $(STAMP_DIR)/logdir + rm -f $(STAMP_DIR)/patch + @echo -n "Unapplying patches..."; \ + if $(QUILT) applied >/dev/null 2>/dev/null; then \ + if $(QUILT) pop -a -v >$(STAMP_DIR)/log/unpatch 2>&1; then \ + cat $(STAMP_DIR)/log/unpatch; \ + echo "successful."; \ + else \ + cat $(STAMP_DIR)/log/unpatch; \ + echo "failed! (check $(STAMP_DIR)/log/unpatch for details)"; \ + exit 1; \ + fi; \ + else \ + echo "nothing to do."; \ + fi + +# Clean the generated maintainer scripts. +.PHONY: cleanscripts +cleanscripts: + rm -f $(STAMP_DIR)/genscripts + rm -f debian/*.config \ + debian/*.postinst \ + debian/*.postrm \ + debian/*.preinst \ + debian/*.prerm + +# Clean the package build tree. +.PHONY: xsfclean +xsfclean: cleanscripts unpatch + dh_testdir + rm -rf .pc + rm -rf $(STAMP_DIR) + dh_clean + +# Remove files from the upstream source tree that we don't need, or which have +# licensing problems. It must be run before creating the .orig.tar.gz. +# +# Note: This rule is for Debian package maintainers' convenience, and is not +# needed for conventional build scenarios. +.PHONY: prune-upstream-tree +prune-upstream-tree: + # Ensure we're in the correct directory. + dh_testdir + grep -rvh '^#' debian/prune/ | xargs --no-run-if-empty rm -rf + +# Verify that there are no offsets or fuzz in the patches we apply. +# +# Note: This rule is for Debian package maintainers' convenience, and is not +# needed for conventional build scenarios. +.PHONY: patch-audit +patch-audit: prepare unpatch + @echo -n "Auditing patches..."; \ + >$(STAMP_DIR)/log/patch; \ + FUZZY=; \ + while [ -n "$$($(QUILT) next)" ]; do \ + RESULT=$$($(QUILT) push -v | tee -a $(STAMP_DIR)/log/patch | grep ^Hunk | sed 's/^Hunk.*\(succeeded\|FAILED\).*/\1/');\ + case "$$RESULT" in \ + succeeded) \ + echo "fuzzy patch: $$($(QUILT) top)" \ + | tee -a $(STAMP_DIR)/log/$$($(QUILT) top); \ + FUZZY=yes; \ + ;; \ + FAILED) \ + echo "broken patch: $$($(QUILT) next)" \ + | tee -a $(STAMP_DIR)/log/$$($(QUILT) next); \ + exit 1; \ + ;; \ + esac; \ + done; \ + if [ -n "$$FUZZY" ]; then \ + echo "there were fuzzy patches; please fix."; \ + exit 1; \ + else \ + echo "done."; \ + fi + +# Generate the maintainer scripts. +.PHONY: genscripts +stampdir_targets+=genscripts +genscripts: $(STAMP_DIR)/genscripts +$(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir + for FILE in debian/*.config.in \ + debian/*.postinst.in \ + debian/*.postrm.in \ + debian/*.preinst.in \ + debian/*.prerm.in; do \ + if [ -e "$$FILE" ]; then \ + MAINTSCRIPT=$$(echo $$FILE | sed 's/.in$$//'); \ + sed -n '1,/^#INCLUDE_SHELL_LIB#$$/p' <$$FILE \ + | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >$$MAINTSCRIPT.tmp; \ + cat debian/xsfbs/xsfbs.sh >>$$MAINTSCRIPT.tmp; \ + sed -n '/^#INCLUDE_SHELL_LIB#$$/,$$p' <$$FILE \ + | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >>$$MAINTSCRIPT.tmp; \ + sed -e 's/@SOURCE_VERSION@/$(SOURCE_VERSION)/' \ + -e 's/@OFFICIAL_BUILD@/$(OFFICIAL_BUILD)/' \ + <$$MAINTSCRIPT.tmp >$$MAINTSCRIPT; \ + rm $$MAINTSCRIPT.tmp; \ + fi; \ + done + # Validate syntax of generated shell scripts. + #sh debian/scripts/validate-posix-sh debian/*.config \ + # debian/*.postinst \ + # debian/*.postrm \ + # debian/*.preinst \ + # debian/*.prerm + >$@ + +# Compute dependencies for drivers +# +VIDEODEP = $(shell cat /usr/share/xserver-xorg/videodrvdep 2>/dev/null) +INPUTDEP = $(shell cat /usr/share/xserver-xorg/xinputdep 2>/dev/null) + +# these two can be removed post-squeeze +VIDEOABI = $(shell cat /usr/share/xserver-xorg/videoabiver 2>/dev/null) +INPUTABI = $(shell cat /usr/share/xserver-xorg/inputabiver 2>/dev/null) +VIDDRIVER_PROVIDES = xserver-xorg-video-$(VIDEOABI), xorg-driver-video +INPDRIVER_PROVIDES = xserver-xorg-input-$(INPUTABI), xorg-driver-input + +ifeq ($(PACKAGE),) +PACKAGE=$(shell awk '/^Package:/ { print $$2; exit }' < debian/control) +endif + +.PHONY: serverabi +serverabi: install +ifeq ($(VIDEODEP),) + @echo 'error: xserver-xorg-dev >= 1.7.6.901 needs to be installed' + @exit 1 +else + echo "xviddriver:Depends=$(VIDEODEP)" >> debian/$(PACKAGE).substvars + echo "xinpdriver:Depends=$(INPUTDEP)" >> debian/$(PACKAGE).substvars + # the following is there for compatibility... + echo "xviddriver:Provides=$(VIDDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars + echo "xinpdriver:Provides=$(INPDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars + echo "xserver:Depends=$(VIDEODEP), $(INPUTDEP)" >> debian/$(PACKAGE).substvars +endif + +# vim:set noet ai sts=8 sw=8 tw=0: diff -Nru libdrm-2.4.52/debian/xsfbs/xsfbs.sh libdrm-2.4.52+really2.4.21/debian/xsfbs/xsfbs.sh --- libdrm-2.4.52/debian/xsfbs/xsfbs.sh 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/debian/xsfbs/xsfbs.sh 2014-05-11 23:32:00.000000000 +0000 @@ -0,0 +1,622 @@ +# This is the X Strike Force shell library for X Window System package +# maintainer scripts. It serves to define shell functions commonly used by +# such packages, and performs some error checking necessary for proper operation +# of those functions. By itself, it does not "do" much; the maintainer scripts +# invoke the functions defined here to accomplish package installation and +# removal tasks. + +# If you are reading this within a Debian package maintainer script (e.g., +# /var/lib/dpkg/info/PACKAGE.{config,preinst,postinst,prerm,postrm}), you can +# skip past this library by scanning forward in this file to the string +# "GOBSTOPPER". + +SOURCE_VERSION=@SOURCE_VERSION@ +OFFICIAL_BUILD=@OFFICIAL_BUILD@ + +# Use special abnormal exit codes so that problems with this library are more +# easily tracked down. +SHELL_LIB_INTERNAL_ERROR=86 +SHELL_LIB_THROWN_ERROR=74 +SHELL_LIB_USAGE_ERROR=99 + +# old -> new variable names +if [ -z "$DEBUG_XORG_PACKAGE" ] && [ -n "$DEBUG_XFREE86_PACKAGE" ]; then + DEBUG_XORG_PACKAGE="$DEBUG_XFREE86_PACKAGE" +fi +if [ -z "$DEBUG_XORG_DEBCONF" ] && [ -n "$DEBUG_XFREE86_DEBCONF" ]; then + DEBUG_XORG_DEBCONF="$DEBUG_XFREE86_DEBCONF" +fi + +# initial sanity checks +if [ -z "$THIS_PACKAGE" ]; then + cat >&2 < on the World Wide Web for +instructions, read the file /usr/share/doc/debian/bug-reporting.txt from the +"doc-debian" package, or install the "reportbug" package and use the command of +the same name to file a report against version $SOURCE_VERSION of this package. +EOF + exit $SHELL_LIB_USAGE_ERROR +fi + +if [ -z "$THIS_SCRIPT" ]; then + cat >&2 < on the World Wide Web for +instructions, read the file /usr/share/doc/debian/bug-reporting.txt from the +"doc-debian" package, or install the "reportbug" package and use the command of +the same name to file a report against version $SOURCE_VERSION of the +"$THIS_PACKAGE" package. +EOF + exit $SHELL_LIB_USAGE_ERROR +fi + +if [ "$1" = "reconfigure" ] || [ -n "$DEBCONF_RECONFIGURE" ]; then + RECONFIGURE="true" +else + RECONFIGURE= +fi + +if ([ "$1" = "install" ] || [ "$1" = "configure" ]) && [ -z "$2" ]; then + FIRSTINST="yes" +fi + +if [ -z "$RECONFIGURE" ] && [ -z "$FIRSTINST" ]; then + UPGRADE="yes" +fi + +trap "message;\ + message \"Received signal. Aborting $THIS_PACKAGE package $THIS_SCRIPT script.\";\ + message;\ + exit 1" HUP INT QUIT TERM + +reject_nondigits () { + # syntax: reject_nondigits [ operand ... ] + # + # scan operands (typically shell variables whose values cannot be trusted) for + # characters other than decimal digits and barf if any are found + while [ -n "$1" ]; do + # does the operand contain anything but digits? + if ! expr "$1" : "[[:digit:]]\+$" > /dev/null 2>&1; then + # can't use die(), because it wraps message() which wraps this function + echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_nondigits() encountered" \ + "possibly malicious garbage \"$1\"" >&2 + exit $SHELL_LIB_THROWN_ERROR + fi + shift + done +} + +reject_unlikely_path_chars () { + # syntax: reject_unlikely_path_chars [ operand ... ] + # + # scan operands (typically shell variables whose values cannot be trusted) for + # characters unlikely to be seen in a path and which the shell might + # interpret and barf if any are found + while [ -n "$1" ]; do + # does the operand contain any funny characters? + if expr "$1" : '.*[!$&()*;<>?|].*' > /dev/null 2>&1; then + # can't use die(), because I want to avoid forward references + echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_unlikely_path_chars()" \ + "encountered possibly malicious garbage \"$1\"" >&2 + exit $SHELL_LIB_THROWN_ERROR + fi + shift + done +} + +# Query the terminal to establish a default number of columns to use for +# displaying messages to the user. This is used only as a fallback in the +# event the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while +# the script is running, and this cannot, only being calculated once.) +DEFCOLUMNS=$(stty size 2> /dev/null | awk '{print $2}') || true +if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" > /dev/null 2>&1; then + DEFCOLUMNS=80 +fi + +message () { + # pretty-print messages of arbitrary length + reject_nondigits "$COLUMNS" + echo "$*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS} >&2 +} + +observe () { + # syntax: observe message ... + # + # issue observational message suitable for logging someday when support for + # it exists in dpkg + if [ -n "$DEBUG_XORG_PACKAGE" ]; then + message "$THIS_PACKAGE $THIS_SCRIPT note: $*" + fi +} + +warn () { + # syntax: warn message ... + # + # issue warning message suitable for logging someday when support for + # it exists in dpkg; also send to standard error + message "$THIS_PACKAGE $THIS_SCRIPT warning: $*" +} + +die () { + # syntax: die message ... + # + # exit script with error message + message "$THIS_PACKAGE $THIS_SCRIPT error: $*" + exit $SHELL_LIB_THROWN_ERROR +} + +internal_error () { + # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message + message "internal error: $*" + if [ -n "$OFFICIAL_BUILD" ]; then + message "Please report a bug in the $THIS_SCRIPT script of the" \ + "$THIS_PACKAGE package, version $SOURCE_VERSION to the Debian Bug" \ + "Tracking System. Include all messages above that mention the" \ + "$THIS_PACKAGE package. Visit " \ + " on the World Wide Web for" \ + "instructions, read the file" \ + "/usr/share/doc/debian/bug-reporting.txt from the doc-debian" \ + "package, or install the reportbug package and use the command of" \ + "the same name to file a report." + fi + exit $SHELL_LIB_INTERNAL_ERROR +} + +usage_error () { + message "usage error: $*" + message "Please report a bug in the $THIS_SCRIPT script of the" \ + "$THIS_PACKAGE package, version $SOURCE_VERSION to the Debian Bug" \ + "Tracking System. Include all messages above that mention the" \ + "$THIS_PACKAGE package. Visit " \ + " on the World Wide Web for" \ + "instructions, read the file" \ + "/usr/share/doc/debian/bug-reporting.txt from the doc-debian" \ + "package, or install the reportbug package and use the command of" \ + "the same name to file a report." + exit $SHELL_LIB_USAGE_ERROR +} + +font_update () { + # run $UPDATECMDS in $FONTDIRS + + local dir cmd shortcmd x_font_dir_prefix + + x_font_dir_prefix="/usr/share/fonts/X11" + + if [ -z "$UPDATECMDS" ]; then + usage_error "font_update() called but \$UPDATECMDS not set" + fi + if [ -z "$FONTDIRS" ]; then + usage_error "font_update() called but \$FONTDIRS not set" + fi + + reject_unlikely_path_chars "$UPDATECMDS" + reject_unlikely_path_chars "$FONTDIRS" + + for dir in $FONTDIRS; do + if [ -d "$x_font_dir_prefix/$dir" ]; then + for cmd in $UPDATECMDS; do + if which "$cmd" > /dev/null 2>&1; then + shortcmd=${cmd##*/} + observe "running $shortcmd in $dir font directory" + cmd_opts= + if [ "$shortcmd" = "update-fonts-alias" ]; then + cmd_opts=--x11r7-layout + fi + if [ "$shortcmd" = "update-fonts-dir" ]; then + cmd_opts=--x11r7-layout + fi + if [ "$shortcmd" = "update-fonts-scale" ]; then + cmd_opts=--x11r7-layout + fi + $cmd $cmd_opts $dir || warn "$cmd $cmd_opts $dir" \ + "failed; font directory data may not" \ + "be up to date" + else + warn "$cmd not found; not updating corresponding $dir font" \ + "directory data" + fi + done + else + warn "$dir is not a directory; not updating font directory data" + fi + done +} + +remove_conffile_prepare () { + # syntax: remove_conffile_prepare filename official_md5sum ... + # + # Check a conffile "filename" against a list of canonical MD5 checksums. + # If the file's current MD5 checksum matches one of the "official_md5sum" + # operands provided, then prepare the conffile for removal from the system. + # We defer actual deletion until the package is configured so that we can + # roll this operation back if package installation fails. + # + # Call this function from a preinst script in the event $1 is "upgrade" or + # "install" and verify $2 to ensure the package is being upgraded from a + # version (or installed over a version removed-but-not-purged) prior to the + # one in which the conffile was obsoleted. + + local conffile current_checksum + + # validate arguments + if [ $# -lt 2 ]; then + usage_error "remove_conffile_prepare() called with wrong number of" \ + "arguments; expected at least 2, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + conffile="$1" + shift + + # does the conffile even exist? + if [ -e "$conffile" ]; then + # calculate its checksum + current_checksum=$(md5sum < "$conffile" | sed 's/[[:space:]].*//') + # compare it to each supplied checksum + while [ -n "$1" ]; do + if [ "$current_checksum" = "$1" ]; then + # we found a match; move the confffile and stop looking + observe "preparing obsolete conffile $conffile for removal" + mv "$conffile" "$conffile.$THIS_PACKAGE-tmp" + break + fi + shift + done + fi +} + +remove_conffile_lookup () { + # syntax: remove_conffile_lookup package filename + # + # Lookup the md5sum of a conffile in dpkg's database, and prepare for removal + # if it matches the actual file's md5sum. + # + # Call this function when you would call remove_conffile_prepare but only + # want to check against dpkg's status database instead of known checksums. + + local package conffile old_md5sum + + # validate arguments + if [ $# -ne 2 ]; then + usage_error "remove_conffile_lookup() called with wrong number of" \ + "arguments; expected 1, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + package="$1" + conffile="$2" + + if ! [ -e "$conffile" ]; then + return + fi + old_md5sum="$(dpkg-query -W -f='${Conffiles}' "$package" | \ + awk '{ if (match($0, "^ '"$conffile"' ")) print $2}')" + if [ -n "$old_md5sum" ]; then + remove_conffile_prepare "$conffile" "$old_md5sum" + fi +} + +remove_conffile_commit () { + # syntax: remove_conffile_commit filename + # + # Complete the removal of a conffile "filename" that has become obsolete. + # + # Call this function from a postinst script after having used + # remove_conffile_prepare() in the preinst. + + local conffile + + # validate arguments + if [ $# -ne 1 ]; then + usage_error "remove_conffile_commit() called with wrong number of" \ + "arguments; expected 1, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + conffile="$1" + + # if the temporary file created by remove_conffile_prepare() exists, remove it + if [ -e "$conffile.$THIS_PACKAGE-tmp" ]; then + observe "committing removal of obsolete conffile $conffile" + rm "$conffile.$THIS_PACKAGE-tmp" + fi +} + +remove_conffile_rollback () { + # syntax: remove_conffile_rollback filename + # + # Roll back the removal of a conffile "filename". + # + # Call this function from a postrm script in the event $1 is "abort-upgrade" + # or "abort-install" is after having used remove_conffile_prepare() in the + # preinst. + + local conffile + + # validate arguments + if [ $# -ne 1 ]; then + usage_error "remove_conffile_rollback() called with wrong number of" \ + "arguments; expected 1, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + conffile="$1" + + # if the temporary file created by remove_conffile_prepare() exists, move it + # back + if [ -e "$conffile.$THIS_PACKAGE-tmp" ]; then + observe "rolling back removal of obsolete conffile $conffile" + mv "$conffile.$THIS_PACKAGE-tmp" "$conffile" + fi +} + +replace_conffile_with_symlink_prepare () { + # syntax: replace_conffile_with_symlink_prepare oldfilename newfilename \ + # official_md5sum ... + # + # Check a conffile "oldfilename" against a list of canonical MD5 checksums. + # If the file's current MD5 checksum matches one of the "official_md5sum" + # operands provided, then prepare the conffile for removal from the system. + # We defer actual deletion until the package is configured so that we can + # roll this operation back if package installation fails. Otherwise copy it + # to newfilename and let dpkg handle it through conffiles mechanism. + # + # Call this function from a preinst script in the event $1 is "upgrade" or + # "install" and verify $2 to ensure the package is being upgraded from a + # version (or installed over a version removed-but-not-purged) prior to the + # one in which the conffile was obsoleted. + + local conffile current_checksum + + # validate arguments + if [ $# -lt 3 ]; then + usage_error "replace_conffile_with_symlink_prepare() called with wrong" \ + " number of arguments; expected at least 3, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + oldconffile="$1" + shift + newconffile="$1" + shift + + remove_conffile_prepare "$_oldconffile" "$@" + # If $oldconffile still exists, then md5sums didn't match. + # Copy it to new one. + if [ -f "$oldconffile" ]; then + cp "$oldconffile" "$newconffile" + fi + +} + +replace_conffile_with_symlink_commit () { + # syntax: replace_conffile_with_symlink_commit oldfilename + # + # Complete the removal of a conffile "oldfilename" that has been + # replaced by a symlink. + # + # Call this function from a postinst script after having used + # replace_conffile_with_symlink_prepare() in the preinst. + + local conffile + + # validate arguments + if [ $# -ne 1 ]; then + usage_error "replace_conffile_with_symlink_commit() called with wrong" \ + "number of arguments; expected 1, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + conffile="$1" + + remove_conffile_commit "$conffile" +} + +replace_conffile_with_symlink_rollback () { + # syntax: replace_conffile_with_symlink_rollback oldfilename newfilename + # + # Roll back the replacing of a conffile "oldfilename" with symlink to + # "newfilename". + # + # Call this function from a postrm script in the event $1 is "abort-upgrade" + # or "abort-install" and verify $2 to ensure the package failed to upgrade + # from a version (or install over a version removed-but-not-purged) prior + # to the one in which the conffile was obsoleted. + # You should have used replace_conffile_with_symlink_prepare() in the + # preinst. + + local conffile + + # validate arguments + if [ $# -ne 2 ]; then + usage_error "replace_conffile_with_symlink_rollback() called with wrong" \ + "number of arguments; expected 2, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + oldconffile="$1" + newconffile="$2" + + remove_conffile_rollback "$_oldconffile" + if [ -f "$newconffile" ]; then + rm "$newconffile" + fi +} + +run () { + # syntax: run command [ argument ... ] + # + # Run specified command with optional arguments and report its exit status. + # Useful for commands whose exit status may be nonzero, but still acceptable, + # or commands whose failure is not fatal to us. + # + # NOTE: Do *not* use this function with db_get or db_metaget commands; in + # those cases the return value of the debconf command *must* be checked + # before the string returned by debconf is used for anything. + + local retval + + # validate arguments + if [ $# -lt 1 ]; then + usage_error "run() called with wrong number of arguments; expected at" \ + "least 1, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + "$@" || retval=$? + + if [ ${retval:-0} -ne 0 ]; then + observe "command \"$*\" exited with status $retval" + fi +} + +make_symlink_sane () { + # syntax: make_symlink_sane symlink target + # + # Ensure that the symbolic link symlink exists, and points to target. + # + # If symlink does not exist, create it and point it at target. + # + # If symlink exists but is not a symbolic link, back it up. + # + # If symlink exists, is a symbolic link, but points to the wrong location, fix + # it. + # + # If symlink exists, is a symbolic link, and already points to target, do + # nothing. + # + # This function wouldn't be needed if ln had an -I, --idempotent option. + + # Validate arguments. + if [ $# -ne 2 ]; then + usage_error "make_symlink_sane() called with wrong number of arguments;" \ + "expected 2, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + # We could just use the positional parameters as-is, but that makes things + # harder to follow. + local symlink target + + symlink="$1" + target="$2" + + if [ -L "$symlink" ] && [ "$(readlink "$symlink")" = "$target" ]; then + observe "link from $symlink to $target already exists" + else + observe "creating symbolic link from $symlink to $target" + mkdir -p "${target%/*}" "${symlink%/*}" + ln -s -b -S ".dpkg-old" "$target" "$symlink" + fi +} + +migrate_dir_to_symlink () { + # syntax: migrate_dir_to_symlink old_location new_location + # + # Per Debian Policy section 6.5.4, "A directory will never be replaced by a + # symbolic link to a directory or vice versa; instead, the existing state + # (symlink or not) will be left alone and dpkg will follow the symlink if + # there is one." + # + # We have to do it ourselves. + # + # This function moves the contents of old_location, a directory, into + # new_location, a directory, then makes old_location a symbolic link to + # new_location. + # + # old_location need not exist, but if it does, it must be a directory (or a + # symlink to a directory). If it is not, it is backed up. If new_location + # exists already and is not a directory, it is backed up. + # + # This function should be called from a package's preinst so that other + # packages unpacked after this one --- but before this package's postinst runs + # --- are unpacked into new_location even if their payloads contain + # old_location filespecs. + + # Validate arguments. + if [ $# -ne 2 ]; then + usage_error "migrate_dir_to_symlink() called with wrong number of" + "arguments; expected 2, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + # We could just use the positional parameters as-is, but that makes things + # harder to follow. + local new old + + old="$1" + new="$2" + + # Is old location a symlink? + if [ -L "$old" ]; then + # Does it already point to new location? + if [ "$(readlink "$old")" = "$new" ]; then + # Nothing to do; migration has already been done. + observe "migration of $old to $new already done" + return 0 + else + # Back it up. + warn "backing up symbolic link $old as $old.dpkg-old" + mv -b "$old" "$old.dpkg-old" + fi + fi + + # Does old location exist, but is not a directory? + if [ -e "$old" ] && ! [ -d "$old" ]; then + # Back it up. + warn "backing up non-directory $old as $old.dpkg-old" + mv -b "$old" "$old.dpkg-old" + fi + + observe "migrating $old to $new" + + # Is new location a symlink? + if [ -L "$new" ]; then + # Does it point the wrong way, i.e., back to where we're migrating from? + if [ "$(readlink "$new")" = "$old" ]; then + # Get rid of it. + observe "removing symbolic link $new which points to $old" + rm "$new" + else + # Back it up. + warn "backing up symbolic link $new as $new.dpkg-old" + mv -b "$new" "$new.dpkg-old" + fi + fi + + # Does new location exist, but is not a directory? + if [ -e "$new" ] && ! [ -d "$new" ]; then + warn "backing up non-directory $new as $new.dpkg-old" + mv -b "$new" "$new.dpkg-old" + fi + + # Create new directory if it does not yet exist. + if ! [ -e "$new" ]; then + observe "creating $new" + mkdir -p "$new" + fi + + # Copy files in old location to new location. Back up any filenames that + # already exist in the new location with the extension ".dpkg-old". + observe "copying files from $old to $new" + if ! (cd "$old" && cp -a -b -S ".dpkg-old" . "$new"); then + die "error(s) encountered while copying files from $old to $new" + fi + + # Remove files at old location. + observe "removing $old" + rm -r "$old" + + # Create symlink from old location to new location. + make_symlink_sane "$old" "$new" +} + +# vim:set ai et sw=2 ts=2 tw=80: + +# GOBSTOPPER: The X Strike Force shell library ends here. diff -Nru libdrm-2.4.52/exynos/exynos_drm.c libdrm-2.4.52+really2.4.21/exynos/exynos_drm.c --- libdrm-2.4.52/exynos/exynos_drm.c 2012-10-05 20:48:07.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/exynos/exynos_drm.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,396 +0,0 @@ -/* - * Copyright (C) 2012 Samsung Electronics Co., Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Inki Dae - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include - -#include -#include - -#include - -#include "exynos_drm.h" -#include "exynos_drmif.h" - -/* - * Create exynos drm device object. - * - * @fd: file descriptor to exynos drm driver opened. - * - * if true, return the device object else NULL. - */ -struct exynos_device * exynos_device_create(int fd) -{ - struct exynos_device *dev; - - dev = calloc(sizeof(*dev), 1); - if (!dev) { - fprintf(stderr, "failed to create device[%s].\n", - strerror(errno)); - return NULL; - } - - dev->fd = fd; - - return dev; -} - -/* - * Destroy exynos drm device object - * - * @dev: exynos drm device object. - */ -void exynos_device_destroy(struct exynos_device *dev) -{ - free(dev); -} - -/* - * Create a exynos buffer object to exynos drm device. - * - * @dev: exynos drm device object. - * @size: user-desired size. - * flags: user-desired memory type. - * user can set one or more types among several types to memory - * allocation and cache attribute types. and as default, - * EXYNOS_BO_NONCONTIG and EXYNOS-BO_NONCACHABLE types would - * be used. - * - * if true, return a exynos buffer object else NULL. - */ -struct exynos_bo * exynos_bo_create(struct exynos_device *dev, - size_t size, uint32_t flags) -{ - struct exynos_bo *bo; - struct drm_exynos_gem_create req = { - .size = size, - .flags = flags, - }; - - if (size == 0) { - fprintf(stderr, "invalid size.\n"); - goto fail; - } - - bo = calloc(sizeof(*bo), 1); - if (!bo) { - fprintf(stderr, "failed to create bo[%s].\n", - strerror(errno)); - goto err_free_bo; - } - - bo->dev = dev; - - if (drmIoctl(dev->fd, DRM_IOCTL_EXYNOS_GEM_CREATE, &req)){ - fprintf(stderr, "failed to create gem object[%s].\n", - strerror(errno)); - goto err_free_bo; - } - - bo->handle = req.handle; - bo->size = size; - bo->flags = flags; - - return bo; - -err_free_bo: - free(bo); -fail: - return NULL; -} - -/* - * Get information to gem region allocated. - * - * @dev: exynos drm device object. - * @handle: gem handle to request gem info. - * @size: size to gem object and returned by kernel side. - * @flags: gem flags to gem object and returned by kernel side. - * - * with this function call, you can get flags and size to gem handle - * through bo object. - * - * if true, return 0 else negative. - */ -int exynos_bo_get_info(struct exynos_device *dev, uint32_t handle, - size_t *size, uint32_t *flags) -{ - int ret; - struct drm_exynos_gem_info req = { - .handle = handle, - }; - - ret = drmIoctl(dev->fd, DRM_IOCTL_EXYNOS_GEM_GET, &req); - if (ret < 0) { - fprintf(stderr, "failed to get gem object information[%s].\n", - strerror(errno)); - return ret; - } - - *size = req.size; - *flags = req.flags; - - return 0; -} - -/* - * Destroy a exynos buffer object. - * - * @bo: a exynos buffer object to be destroyed. - */ -void exynos_bo_destroy(struct exynos_bo *bo) -{ - if (!bo) - return; - - if (bo->vaddr) - munmap(bo->vaddr, bo->size); - - if (bo->handle) { - struct drm_gem_close req = { - .handle = bo->handle, - }; - - drmIoctl(bo->dev->fd, DRM_IOCTL_GEM_CLOSE, &req); - } - - free(bo); -} - - -/* - * Get a exynos buffer object from a gem global object name. - * - * @dev: a exynos device object. - * @name: a gem global object name exported by another process. - * - * this interface is used to get a exynos buffer object from a gem - * global object name sent by another process for buffer sharing. - * - * if true, return a exynos buffer object else NULL. - * - */ -struct exynos_bo * exynos_bo_from_name(struct exynos_device *dev, uint32_t name) -{ - struct exynos_bo *bo; - struct drm_gem_open req = { - .name = name, - }; - - bo = calloc(sizeof(*bo), 1); - if (!bo) { - fprintf(stderr, "failed to allocate bo[%s].\n", - strerror(errno)); - return NULL; - } - - if (drmIoctl(dev->fd, DRM_IOCTL_GEM_OPEN, &req)) { - fprintf(stderr, "failed to open gem object[%s].\n", - strerror(errno)); - goto err_free_bo; - } - - bo->dev = dev; - bo->name = name; - bo->handle = req.handle; - - return bo; - -err_free_bo: - free(bo); - return NULL; -} - -/* - * Get a gem global object name from a gem object handle. - * - * @bo: a exynos buffer object including gem handle. - * @name: a gem global object name to be got by kernel driver. - * - * this interface is used to get a gem global object name from a gem object - * handle to a buffer that wants to share it with another process. - * - * if true, return 0 else negative. - */ -int exynos_bo_get_name(struct exynos_bo *bo, uint32_t *name) -{ - if (!bo->name) { - struct drm_gem_flink req = { - .handle = bo->handle, - }; - int ret; - - ret = drmIoctl(bo->dev->fd, DRM_IOCTL_GEM_FLINK, &req); - if (ret) { - fprintf(stderr, "failed to get gem global name[%s].\n", - strerror(errno)); - return ret; - } - - bo->name = req.name; - } - - *name = bo->name; - - return 0; -} - -uint32_t exynos_bo_handle(struct exynos_bo *bo) -{ - return bo->handle; -} - -/* - * Mmap a buffer to user space. - * - * @bo: a exynos buffer object including a gem object handle to be mmapped - * to user space. - * - * if true, user pointer mmaped else NULL. - */ -void *exynos_bo_map(struct exynos_bo *bo) -{ - if (!bo->vaddr) { - struct exynos_device *dev = bo->dev; - struct drm_exynos_gem_mmap req = { - .handle = bo->handle, - .size = bo->size, - }; - int ret; - - ret = drmIoctl(dev->fd, DRM_IOCTL_EXYNOS_GEM_MMAP, &req); - if (ret) { - fprintf(stderr, "failed to mmap[%s].\n", - strerror(errno)); - return NULL; - } - - bo->vaddr = req.mapped; - } - - return bo->vaddr; -} - -/* - * Export gem object to dmabuf as file descriptor. - * - * @dev: a exynos device object. - * @handle: gem handle to be exported into dmabuf as file descriptor. - * @fd: file descriptor to dmabuf exported from gem handle and - * returned by kernel side. - * - * if true, return 0 else negative. - */ -int exynos_prime_handle_to_fd(struct exynos_device *dev, uint32_t handle, - int *fd) -{ - int ret; - struct drm_prime_handle req = { - .handle = handle, - }; - - ret = drmIoctl(dev->fd, DRM_IOCTL_PRIME_HANDLE_TO_FD, &req); - if (ret) { - fprintf(stderr, "failed to mmap[%s].\n", - strerror(errno)); - return ret; - } - - *fd = req.fd; - return 0; -} - -/* - * Import file descriptor into gem handle. - * - * @dev: a exynos device object. - * @fd: file descriptor exported into dmabuf. - * @handle: gem handle to gem object imported from file descriptor - * and returned by kernel side. - * - * if true, return 0 else negative. - */ -int exynos_prime_fd_to_handle(struct exynos_device *dev, int fd, - uint32_t *handle) -{ - int ret; - struct drm_prime_handle req = { - .fd = fd, - }; - - ret = drmIoctl(dev->fd, DRM_IOCTL_PRIME_FD_TO_HANDLE, &req); - if (ret) { - fprintf(stderr, "failed to mmap[%s].\n", - strerror(errno)); - return ret; - } - - *handle = req.handle; - return 0; -} - - - -/* - * Request Wireless Display connection or disconnection. - * - * @dev: a exynos device object. - * @connect: indicate whether connectoin or disconnection request. - * @ext: indicate whether edid data includes extentions data or not. - * @edid: a pointer to edid data from Wireless Display device. - * - * this interface is used to request Virtual Display driver connection or - * disconnection. for this, user should get a edid data from the Wireless - * Display device and then send that data to kernel driver with connection - * request - * - * if true, return 0 else negative. - */ -int exynos_vidi_connection(struct exynos_device *dev, uint32_t connect, - uint32_t ext, void *edid) -{ - struct drm_exynos_vidi_connection req = { - .connection = connect, - .extensions = ext, - .edid = edid, - }; - int ret; - - ret = drmIoctl(dev->fd, DRM_IOCTL_EXYNOS_VIDI_CONNECTION, &req); - if (ret) { - fprintf(stderr, "failed to request vidi connection[%s].\n", - strerror(errno)); - return ret; - } - - return 0; -} diff -Nru libdrm-2.4.52/exynos/exynos_drm.h libdrm-2.4.52+really2.4.21/exynos/exynos_drm.h --- libdrm-2.4.52/exynos/exynos_drm.h 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/exynos/exynos_drm.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,200 +0,0 @@ -/* exynos_drm.h - * - * Copyright (c) 2011 Samsung Electronics Co., Ltd. - * Authors: - * Inki Dae - * Joonyoung Shim - * Seung-Woo Kim - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifndef _EXYNOS_DRM_H_ -#define _EXYNOS_DRM_H_ - -#include "drm.h" - -/** - * User-desired buffer creation information structure. - * - * @size: user-desired memory allocation size. - * - this size value would be page-aligned internally. - * @flags: user request for setting memory type or cache attributes. - * @handle: returned a handle to created gem object. - * - this handle will be set by gem module of kernel side. - */ -struct drm_exynos_gem_create { - uint64_t size; - unsigned int flags; - unsigned int handle; -}; - -/** - * A structure for getting buffer offset. - * - * @handle: a pointer to gem object created. - * @pad: just padding to be 64-bit aligned. - * @offset: relatived offset value of the memory region allocated. - * - this value should be set by user. - */ -struct drm_exynos_gem_map_off { - unsigned int handle; - unsigned int pad; - uint64_t offset; -}; - -/** - * A structure for mapping buffer. - * - * @handle: a handle to gem object created. - * @pad: just padding to be 64-bit aligned. - * @size: memory size to be mapped. - * @mapped: having user virtual address mmaped. - * - this variable would be filled by exynos gem module - * of kernel side with user virtual address which is allocated - * by do_mmap(). - */ -struct drm_exynos_gem_mmap { - unsigned int handle; - unsigned int pad; - uint64_t size; - uint64_t mapped; -}; - -/** - * A structure to gem information. - * - * @handle: a handle to gem object created. - * @flags: flag value including memory type and cache attribute and - * this value would be set by driver. - * @size: size to memory region allocated by gem and this size would - * be set by driver. - */ -struct drm_exynos_gem_info { - unsigned int handle; - unsigned int flags; - uint64_t size; -}; - -/** - * A structure for user connection request of virtual display. - * - * @connection: indicate whether doing connetion or not by user. - * @extensions: if this value is 1 then the vidi driver would need additional - * 128bytes edid data. - * @edid: the edid data pointer from user side. - */ -struct drm_exynos_vidi_connection { - unsigned int connection; - unsigned int extensions; - uint64_t edid; -}; - -/* memory type definitions. */ -enum e_drm_exynos_gem_mem_type { - /* Physically Continuous memory and used as default. */ - EXYNOS_BO_CONTIG = 0 << 0, - /* Physically Non-Continuous memory. */ - EXYNOS_BO_NONCONTIG = 1 << 0, - /* non-cachable mapping and used as default. */ - EXYNOS_BO_NONCACHABLE = 0 << 1, - /* cachable mapping. */ - EXYNOS_BO_CACHABLE = 1 << 1, - /* write-combine mapping. */ - EXYNOS_BO_WC = 1 << 2, - EXYNOS_BO_MASK = EXYNOS_BO_NONCONTIG | EXYNOS_BO_CACHABLE | - EXYNOS_BO_WC -}; - -struct drm_exynos_g2d_get_ver { - __u32 major; - __u32 minor; -}; - -struct drm_exynos_g2d_cmd { - __u32 offset; - __u32 data; -}; - -enum drm_exynos_g2d_buf_type { - G2D_BUF_USERPTR = 1 << 31, -}; - -enum drm_exynos_g2d_event_type { - G2D_EVENT_NOT, - G2D_EVENT_NONSTOP, - G2D_EVENT_STOP, /* not yet */ -}; - -struct drm_exynos_g2d_userptr { - unsigned long userptr; - unsigned long size; -}; - -struct drm_exynos_g2d_set_cmdlist { - __u64 cmd; - __u64 cmd_buf; - __u32 cmd_nr; - __u32 cmd_buf_nr; - - /* for g2d event */ - __u64 event_type; - __u64 user_data; -}; - -struct drm_exynos_g2d_exec { - __u64 async; -}; - -#define DRM_EXYNOS_GEM_CREATE 0x00 -#define DRM_EXYNOS_GEM_MAP_OFFSET 0x01 -#define DRM_EXYNOS_GEM_MMAP 0x02 -/* Reserved 0x04 ~ 0x05 for exynos specific gem ioctl */ -#define DRM_EXYNOS_GEM_GET 0x04 -#define DRM_EXYNOS_VIDI_CONNECTION 0x07 - -/* G2D */ -#define DRM_EXYNOS_G2D_GET_VER 0x20 -#define DRM_EXYNOS_G2D_SET_CMDLIST 0x21 -#define DRM_EXYNOS_G2D_EXEC 0x22 - -#define DRM_IOCTL_EXYNOS_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + \ - DRM_EXYNOS_GEM_CREATE, struct drm_exynos_gem_create) - -#define DRM_IOCTL_EXYNOS_GEM_MAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + \ - DRM_EXYNOS_GEM_MAP_OFFSET, struct drm_exynos_gem_map_off) - -#define DRM_IOCTL_EXYNOS_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + \ - DRM_EXYNOS_GEM_MMAP, struct drm_exynos_gem_mmap) - -#define DRM_IOCTL_EXYNOS_GEM_GET DRM_IOWR(DRM_COMMAND_BASE + \ - DRM_EXYNOS_GEM_GET, struct drm_exynos_gem_info) - -#define DRM_IOCTL_EXYNOS_VIDI_CONNECTION DRM_IOWR(DRM_COMMAND_BASE + \ - DRM_EXYNOS_VIDI_CONNECTION, struct drm_exynos_vidi_connection) - -#define DRM_IOCTL_EXYNOS_G2D_GET_VER DRM_IOWR(DRM_COMMAND_BASE + \ - DRM_EXYNOS_G2D_GET_VER, struct drm_exynos_g2d_get_ver) -#define DRM_IOCTL_EXYNOS_G2D_SET_CMDLIST DRM_IOWR(DRM_COMMAND_BASE + \ - DRM_EXYNOS_G2D_SET_CMDLIST, struct drm_exynos_g2d_set_cmdlist) -#define DRM_IOCTL_EXYNOS_G2D_EXEC DRM_IOWR(DRM_COMMAND_BASE + \ - DRM_EXYNOS_G2D_EXEC, struct drm_exynos_g2d_exec) - -#endif diff -Nru libdrm-2.4.52/exynos/exynos_drmif.h libdrm-2.4.52+really2.4.21/exynos/exynos_drmif.h --- libdrm-2.4.52/exynos/exynos_drmif.h 2012-10-05 20:48:07.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/exynos/exynos_drmif.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ -/* - * Copyright (C) 2012 Samsung Electronics Co., Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Inki Dae - */ - -#ifndef EXYNOS_DRMIF_H_ -#define EXYNOS_DRMIF_H_ - -#include -#include -#include "exynos_drm.h" - -struct exynos_device { - int fd; -}; - -/* - * Exynos Buffer Object structure. - * - * @dev: exynos device object allocated. - * @handle: a gem handle to gem object created. - * @flags: indicate memory allocation and cache attribute types. - * @fd: file descriptor exported into dmabuf. - * @size: size to the buffer created. - * @vaddr: user space address to a gem buffer mmaped. - * @name: a gem global handle from flink request. - */ -struct exynos_bo { - struct exynos_device *dev; - uint32_t handle; - uint32_t flags; - int fd; - size_t size; - void *vaddr; - uint32_t name; -}; - -/* - * device related functions: - */ -struct exynos_device * exynos_device_create(int fd); -void exynos_device_destroy(struct exynos_device *dev); - -/* - * buffer-object related functions: - */ -struct exynos_bo * exynos_bo_create(struct exynos_device *dev, - size_t size, uint32_t flags); -int exynos_bo_get_info(struct exynos_device *dev, uint32_t handle, - size_t *size, uint32_t *flags); -void exynos_bo_destroy(struct exynos_bo *bo); -struct exynos_bo * exynos_bo_from_name(struct exynos_device *dev, uint32_t name); -int exynos_bo_get_name(struct exynos_bo *bo, uint32_t *name); -uint32_t exynos_bo_handle(struct exynos_bo *bo); -void * exynos_bo_map(struct exynos_bo *bo); -int exynos_prime_handle_to_fd(struct exynos_device *dev, uint32_t handle, - int *fd); -int exynos_prime_fd_to_handle(struct exynos_device *dev, int fd, - uint32_t *handle); - -/* - * Virtual Display related functions: - */ -int exynos_vidi_connection(struct exynos_device *dev, uint32_t connect, - uint32_t ext, void *edid); - -#endif /* EXYNOS_DRMIF_H_ */ diff -Nru libdrm-2.4.52/exynos/exynos_fimg2d.c libdrm-2.4.52+really2.4.21/exynos/exynos_fimg2d.c --- libdrm-2.4.52/exynos/exynos_fimg2d.c 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/exynos/exynos_fimg2d.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,630 +0,0 @@ -/* - * Copyright (C) 2013 Samsung Electronics Co.Ltd - * Authors: - * Inki Dae - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include - -#include -#include - -#include - -#include "exynos_drm.h" -#include "fimg2d_reg.h" -#include "fimg2d.h" - -#define SET_BF(val, sc, si, scsa, scda, dc, di, dcsa, dcda) \ - val.data.src_coeff = sc; \ - val.data.inv_src_color_coeff = si; \ - val.data.src_coeff_src_a = scsa; \ - val.data.src_coeff_dst_a = scda; \ - val.data.dst_coeff = dc; \ - val.data.inv_dst_color_coeff = di; \ - val.data.dst_coeff_src_a = dcsa; \ - val.data.dst_coeff_dst_a = dcda; - -#define MIN(a, b) ((a) < (b) ? (a) : (b)) - -static unsigned int g2d_get_blend_op(enum e_g2d_op op) -{ - union g2d_blend_func_val val; - - val.val = 0; - - switch (op) { - case G2D_OP_CLEAR: - case G2D_OP_DISJOINT_CLEAR: - case G2D_OP_CONJOINT_CLEAR: - SET_BF(val, G2D_COEFF_MODE_ZERO, 0, 0, 0, G2D_COEFF_MODE_ZERO, - 0, 0, 0); - break; - case G2D_OP_SRC: - case G2D_OP_DISJOINT_SRC: - case G2D_OP_CONJOINT_SRC: - SET_BF(val, G2D_COEFF_MODE_ONE, 0, 0, 0, G2D_COEFF_MODE_ZERO, - 0, 0, 0); - break; - case G2D_OP_DST: - case G2D_OP_DISJOINT_DST: - case G2D_OP_CONJOINT_DST: - SET_BF(val, G2D_COEFF_MODE_ZERO, 0, 0, 0, G2D_COEFF_MODE_ONE, - 0, 0, 0); - break; - case G2D_OP_OVER: - SET_BF(val, G2D_COEFF_MODE_ONE, 0, 0, 0, - G2D_COEFF_MODE_SRC_ALPHA, 1, 0, 0); - break; - default: - fprintf(stderr, "Not support operation(%d).\n", op); - SET_BF(val, G2D_COEFF_MODE_ONE, 0, 0, 0, G2D_COEFF_MODE_ZERO, - 0, 0, 0); - break; - } - - return val.val; -} - -/* - * g2d_add_cmd - set given command and value to user side command buffer. - * - * @ctx: a pointer to g2d_context structure. - * @cmd: command data. - * @value: value data. - */ -static int g2d_add_cmd(struct g2d_context *ctx, unsigned long cmd, - unsigned long value) -{ - switch (cmd & ~(G2D_BUF_USERPTR)) { - case SRC_BASE_ADDR_REG: - case SRC_PLANE2_BASE_ADDR_REG: - case DST_BASE_ADDR_REG: - case DST_PLANE2_BASE_ADDR_REG: - case PAT_BASE_ADDR_REG: - case MASK_BASE_ADDR_REG: - if (ctx->cmd_buf_nr >= G2D_MAX_GEM_CMD_NR) { - fprintf(stderr, "Overflow cmd_gem size.\n"); - return -EINVAL; - } - - ctx->cmd_buf[ctx->cmd_buf_nr].offset = cmd; - ctx->cmd_buf[ctx->cmd_buf_nr].data = value; - ctx->cmd_buf_nr++; - break; - default: - if (ctx->cmd_nr >= G2D_MAX_CMD_NR) { - fprintf(stderr, "Overflow cmd size.\n"); - return -EINVAL; - } - - ctx->cmd[ctx->cmd_nr].offset = cmd; - ctx->cmd[ctx->cmd_nr].data = value; - ctx->cmd_nr++; - break; - } - - return TRUE; -} - -/* - * g2d_reset - reset fimg2d hardware. - * - * @ctx: a pointer to g2d_context structure. - * - */ -static void g2d_reset(struct g2d_context *ctx) -{ - ctx->cmd_nr = 0; - ctx->cmd_buf_nr = 0; - - g2d_add_cmd(ctx, SOFT_RESET_REG, 0x01); -} - -/* - * g2d_flush - summit all commands and values in user side command buffer - * to command queue aware of fimg2d dma. - * - * @ctx: a pointer to g2d_context structure. - * - * This function should be called after all commands and values to user - * side command buffer is set to summit that buffer to kernel side driver. - */ -static int g2d_flush(struct g2d_context *ctx) -{ - int ret; - struct drm_exynos_g2d_set_cmdlist cmdlist; - - if (ctx->cmd_nr == 0 && ctx->cmd_buf_nr == 0) - return FALSE; - - if (ctx->cmdlist_nr >= G2D_MAX_CMD_LIST_NR) { - fprintf(stderr, "Overflow cmdlist.\n"); - return -EINVAL; - } - - memset(&cmdlist, 0, sizeof(struct drm_exynos_g2d_set_cmdlist)); - - cmdlist.cmd = (unsigned int)&ctx->cmd[0]; - cmdlist.cmd_buf = (unsigned int)&ctx->cmd_buf[0]; - cmdlist.cmd_nr = ctx->cmd_nr; - cmdlist.cmd_buf_nr = ctx->cmd_buf_nr; - cmdlist.event_type = G2D_EVENT_NOT; - cmdlist.user_data = 0; - - ctx->cmd_nr = 0; - ctx->cmd_buf_nr = 0; - - ret = drmIoctl(ctx->fd, DRM_IOCTL_EXYNOS_G2D_SET_CMDLIST, &cmdlist); - if (ret < 0) { - fprintf(stderr, "failed to set cmdlist.\n"); - return ret; - } - - ctx->cmdlist_nr++; - - return ret; -} - -/** - * g2d_init - create a new g2d context and get hardware version. - * - * fd: a file descriptor to drm device driver opened. - */ -struct g2d_context *g2d_init(int fd) -{ - struct drm_exynos_g2d_get_ver ver; - struct g2d_context *ctx; - int ret; - - ctx = calloc(1, sizeof(*ctx)); - if (!ctx) { - fprintf(stderr, "failed to allocate context.\n"); - return NULL; - } - - ctx->fd = fd; - - ret = drmIoctl(fd, DRM_IOCTL_EXYNOS_G2D_GET_VER, &ver); - if (ret < 0) { - fprintf(stderr, "failed to get version.\n"); - free(ctx); - return NULL; - } - - ctx->major = ver.major; - ctx->minor = ver.minor; - - printf("g2d version(%d.%d).\n", ctx->major, ctx->minor); - return ctx; -} - -void g2d_fini(struct g2d_context *ctx) -{ - if (ctx) - free(ctx); -} - -/** - * g2d_exec - start the dma to process all commands summited by g2d_flush(). - * - * @ctx: a pointer to g2d_context structure. - */ -int g2d_exec(struct g2d_context *ctx) -{ - struct drm_exynos_g2d_exec exec; - int ret; - - if (ctx->cmdlist_nr == 0) - return -EINVAL; - - exec.async = 0; - - ret = drmIoctl(ctx->fd, DRM_IOCTL_EXYNOS_G2D_EXEC, &exec); - if (ret < 0) { - fprintf(stderr, "failed to execute.\n"); - return ret; - } - - ctx->cmdlist_nr = 0; - - return ret; -} - -/** - * g2d_solid_fill - fill given buffer with given color data. - * - * @ctx: a pointer to g2d_context structure. - * @img: a pointer to g2d_image structure including image and buffer - * information. - * @x: x start position to buffer filled with given color data. - * @y: y start position to buffer filled with given color data. - * @w: width value to buffer filled with given color data. - * @h: height value to buffer filled with given color data. - */ -int g2d_solid_fill(struct g2d_context *ctx, struct g2d_image *img, - unsigned int x, unsigned int y, unsigned int w, - unsigned int h) -{ - union g2d_bitblt_cmd_val bitblt; - union g2d_point_val pt; - - g2d_add_cmd(ctx, DST_SELECT_REG, G2D_SELECT_MODE_NORMAL); - g2d_add_cmd(ctx, DST_COLOR_MODE_REG, img->color_mode); - - if (img->buf_type == G2D_IMGBUF_USERPTR) - g2d_add_cmd(ctx, DST_BASE_ADDR_REG | G2D_BUF_USERPTR, - (unsigned long)&img->user_ptr[0]); - else - g2d_add_cmd(ctx, DST_BASE_ADDR_REG, img->bo[0]); - - g2d_add_cmd(ctx, DST_STRIDE_REG, img->stride); - - if (x + w > img->width) - w = img->width - x; - if (y + h > img->height) - h = img->height - y; - - pt.val = 0; - pt.data.x = x; - pt.data.y = y; - g2d_add_cmd(ctx, DST_LEFT_TOP_REG, pt.val); - - pt.val = 0; - pt.data.x = x + w; - pt.data.y = y + h; - - g2d_add_cmd(ctx, DST_RIGHT_BOTTOM_REG, pt.val); - - g2d_add_cmd(ctx, SF_COLOR_REG, img->color); - - bitblt.val = 0; - bitblt.data.fast_solid_color_fill_en = 1; - g2d_add_cmd(ctx, BITBLT_COMMAND_REG, bitblt.val); - - g2d_flush(ctx); - - return 0; -} - -/** - * g2d_copy - copy contents in source buffer to destination buffer. - * - * @ctx: a pointer to g2d_context structure. - * @src: a pointer to g2d_image structure including image and buffer - * information to source. - * @dst: a pointer to g2d_image structure including image and buffer - * information to destination. - * @src_x: x start position to source buffer. - * @src_y: y start position to source buffer. - * @dst_x: x start position to destination buffer. - * @dst_y: y start position to destination buffer. - * @w: width value to source and destination buffers. - * @h: height value to source and destination buffers. - */ -int g2d_copy(struct g2d_context *ctx, struct g2d_image *src, - struct g2d_image *dst, unsigned int src_x, unsigned int src_y, - unsigned int dst_x, unsigned dst_y, unsigned int w, - unsigned int h) -{ - union g2d_rop4_val rop4; - union g2d_point_val pt; - unsigned int src_w = 0, src_h = 0, dst_w = 0, dst_h = 0; - - g2d_add_cmd(ctx, DST_SELECT_REG, G2D_SELECT_MODE_BGCOLOR); - g2d_add_cmd(ctx, DST_COLOR_MODE_REG, dst->color_mode); - if (dst->buf_type == G2D_IMGBUF_USERPTR) - g2d_add_cmd(ctx, DST_BASE_ADDR_REG | G2D_BUF_USERPTR, - (unsigned long)&dst->user_ptr[0]); - else - g2d_add_cmd(ctx, DST_BASE_ADDR_REG, dst->bo[0]); - - g2d_add_cmd(ctx, DST_STRIDE_REG, dst->stride); - - g2d_add_cmd(ctx, SRC_SELECT_REG, G2D_SELECT_MODE_NORMAL); - g2d_add_cmd(ctx, SRC_COLOR_MODE_REG, src->color_mode); - if (src->buf_type == G2D_IMGBUF_USERPTR) - g2d_add_cmd(ctx, SRC_BASE_ADDR_REG | G2D_BUF_USERPTR, - (unsigned long)&src->user_ptr[0]); - else - g2d_add_cmd(ctx, SRC_BASE_ADDR_REG, src->bo[0]); - - g2d_add_cmd(ctx, SRC_STRIDE_REG, src->stride); - - src_w = w; - src_h = h; - if (src_x + src->width > w) - src_w = src->width - src_x; - if (src_y + src->height > h) - src_h = src->height - src_y; - - dst_w = w; - dst_h = w; - if (dst_x + dst->width > w) - dst_w = dst->width - dst_x; - if (dst_y + dst->height > h) - dst_h = dst->height - dst_y; - - w = MIN(src_w, dst_w); - h = MIN(src_h, dst_h); - - if (w <= 0 || h <= 0) { - fprintf(stderr, "invalid width or height.\n"); - g2d_reset(ctx); - return -EINVAL; - } - - pt.val = 0; - pt.data.x = src_x; - pt.data.y = src_y; - g2d_add_cmd(ctx, SRC_LEFT_TOP_REG, pt.val); - pt.val = 0; - pt.data.x = src_x + w; - pt.data.y = src_y + h; - g2d_add_cmd(ctx, SRC_RIGHT_BOTTOM_REG, pt.val); - - pt.val = 0; - pt.data.x = dst_x; - pt.data.y = dst_y; - g2d_add_cmd(ctx, DST_LEFT_TOP_REG, pt.val); - pt.val = 0; - pt.data.x = dst_x + w; - pt.data.y = dst_x + h; - g2d_add_cmd(ctx, DST_RIGHT_BOTTOM_REG, pt.val); - - rop4.val = 0; - rop4.data.unmasked_rop3 = G2D_ROP3_SRC; - g2d_add_cmd(ctx, ROP4_REG, rop4.val); - - g2d_flush(ctx); - - return 0; -} - -/** - * g2d_copy_with_scale - copy contents in source buffer to destination buffer - * scaling up or down properly. - * - * @ctx: a pointer to g2d_context structure. - * @src: a pointer to g2d_image structure including image and buffer - * information to source. - * @dst: a pointer to g2d_image structure including image and buffer - * information to destination. - * @src_x: x start position to source buffer. - * @src_y: y start position to source buffer. - * @src_w: width value to source buffer. - * @src_h: height value to source buffer. - * @dst_x: x start position to destination buffer. - * @dst_y: y start position to destination buffer. - * @dst_w: width value to destination buffer. - * @dst_h: height value to destination buffer. - * @negative: indicate that it uses color negative to source and - * destination buffers. - */ -int g2d_copy_with_scale(struct g2d_context *ctx, struct g2d_image *src, - struct g2d_image *dst, unsigned int src_x, - unsigned int src_y, unsigned int src_w, - unsigned int src_h, unsigned int dst_x, - unsigned int dst_y, unsigned int dst_w, - unsigned int dst_h, unsigned int negative) -{ - union g2d_rop4_val rop4; - union g2d_point_val pt; - unsigned int scale; - double scale_x = 0.0f, scale_y = 0.0f; - - g2d_add_cmd(ctx, DST_SELECT_REG, G2D_SELECT_MODE_BGCOLOR); - g2d_add_cmd(ctx, DST_COLOR_MODE_REG, dst->color_mode); - if (dst->buf_type == G2D_IMGBUF_USERPTR) - g2d_add_cmd(ctx, DST_BASE_ADDR_REG | G2D_BUF_USERPTR, - (unsigned long)&dst->user_ptr[0]); - else - g2d_add_cmd(ctx, DST_BASE_ADDR_REG, dst->bo[0]); - - g2d_add_cmd(ctx, DST_STRIDE_REG, dst->stride); - - g2d_add_cmd(ctx, SRC_SELECT_REG, G2D_SELECT_MODE_NORMAL); - g2d_add_cmd(ctx, SRC_COLOR_MODE_REG, src->color_mode); - if (src->buf_type == G2D_IMGBUF_USERPTR) - g2d_add_cmd(ctx, SRC_BASE_ADDR_REG | G2D_BUF_USERPTR, - (unsigned long)&src->user_ptr[0]); - else - g2d_add_cmd(ctx, SRC_BASE_ADDR_REG, src->bo[0]); - - g2d_add_cmd(ctx, SRC_STRIDE_REG, src->stride); - - if (src_w == dst_w && src_h == dst_h) - scale = 0; - else { - scale = 1; - scale_x = (double)src_w / (double)dst_w; - scale_y = (double)src_w / (double)dst_h; - } - - if (src_x + src_w > src->width) - src_w = src->width - src_x; - if (src_y + src_h > src->height) - src_h = src->height - src_y; - - if (dst_x + dst_w > dst->width) - dst_w = dst->width - dst_x; - if (dst_y + dst_h > dst->height) - dst_h = dst->height - dst_y; - - if (src_w <= 0 || src_h <= 0 || dst_w <= 0 || dst_h <= 0) { - fprintf(stderr, "invalid width or height.\n"); - g2d_reset(ctx); - return -EINVAL; - } - - if (negative) { - g2d_add_cmd(ctx, BG_COLOR_REG, 0x00FFFFFF); - rop4.val = 0; - rop4.data.unmasked_rop3 = G2D_ROP3_SRC^G2D_ROP3_DST; - g2d_add_cmd(ctx, ROP4_REG, rop4.val); - } else { - rop4.val = 0; - rop4.data.unmasked_rop3 = G2D_ROP3_SRC; - g2d_add_cmd(ctx, ROP4_REG, rop4.val); - } - - if (scale) { - g2d_add_cmd(ctx, SRC_SCALE_CTRL_REG, G2D_SCALE_MODE_BILINEAR); - g2d_add_cmd(ctx, SRC_XSCALE_REG, G2D_DOUBLE_TO_FIXED(scale_x)); - g2d_add_cmd(ctx, SRC_YSCALE_REG, G2D_DOUBLE_TO_FIXED(scale_y)); - } - - pt.val = 0; - pt.data.x = src_x; - pt.data.y = src_y; - g2d_add_cmd(ctx, SRC_LEFT_TOP_REG, pt.val); - pt.val = 0; - pt.data.x = src_x + src_w; - pt.data.y = src_y + src_h; - g2d_add_cmd(ctx, SRC_RIGHT_BOTTOM_REG, pt.val); - - pt.val = 0; - pt.data.x = dst_x; - pt.data.y = dst_y; - g2d_add_cmd(ctx, DST_LEFT_TOP_REG, pt.val); - pt.val = 0; - pt.data.x = dst_x + dst_w; - pt.data.y = dst_y + dst_h; - g2d_add_cmd(ctx, DST_RIGHT_BOTTOM_REG, pt.val); - - g2d_flush(ctx); - - return 0; -} - -/** - * g2d_blend - blend image data in source and destion buffers - * - * @ctx: a pointer to g2d_context structure. - * @src: a pointer to g2d_image structure including image and buffer - * information to source. - * @dst: a pointer to g2d_image structure including image and buffer - * information to destination. - * @src_x: x start position to source buffer. - * @src_y: y start position to source buffer. - * @dst_x: x start position to destination buffer. - * @dst_y: y start position to destination buffer. - * @w: width value to source and destination buffer. - * @h: height value to source and destination buffer. - * @op: blend operation type. - */ -int g2d_blend(struct g2d_context *ctx, struct g2d_image *src, - struct g2d_image *dst, unsigned int src_x, - unsigned int src_y, unsigned int dst_x, unsigned int dst_y, - unsigned int w, unsigned int h, enum e_g2d_op op) -{ - union g2d_point_val pt; - union g2d_bitblt_cmd_val bitblt; - union g2d_blend_func_val blend; - unsigned int src_w = 0, src_h = 0, dst_w = 0, dst_h = 0; - - bitblt.val = 0; - blend.val = 0; - - if (op == G2D_OP_SRC || op == G2D_OP_CLEAR) - g2d_add_cmd(ctx, DST_SELECT_REG, G2D_SELECT_MODE_BGCOLOR); - else - g2d_add_cmd(ctx, DST_SELECT_REG, G2D_SELECT_MODE_NORMAL); - - g2d_add_cmd(ctx, DST_COLOR_MODE_REG, dst->color_mode); - if (dst->buf_type == G2D_IMGBUF_USERPTR) - g2d_add_cmd(ctx, DST_BASE_ADDR_REG | G2D_BUF_USERPTR, - (unsigned long)&dst->user_ptr[0]); - else - g2d_add_cmd(ctx, DST_BASE_ADDR_REG, dst->bo[0]); - - g2d_add_cmd(ctx, DST_STRIDE_REG, dst->stride); - - g2d_add_cmd(ctx, SRC_SELECT_REG, src->select_mode); - g2d_add_cmd(ctx, SRC_COLOR_MODE_REG, src->color_mode); - - switch (src->select_mode) { - case G2D_SELECT_MODE_NORMAL: - if (src->buf_type == G2D_IMGBUF_USERPTR) - g2d_add_cmd(ctx, SRC_BASE_ADDR_REG | G2D_BUF_USERPTR, - (unsigned long)&src->user_ptr[0]); - else - g2d_add_cmd(ctx, SRC_BASE_ADDR_REG, src->bo[0]); - - g2d_add_cmd(ctx, SRC_STRIDE_REG, src->stride); - break; - case G2D_SELECT_MODE_FGCOLOR: - g2d_add_cmd(ctx, FG_COLOR_REG, src->color); - break; - case G2D_SELECT_MODE_BGCOLOR: - g2d_add_cmd(ctx, BG_COLOR_REG, src->color); - break; - default: - fprintf(stderr , "failed to set src.\n"); - return -EINVAL; - } - - src_w = w; - src_h = h; - if (src_x + w > src->width) - src_w = src->width - src_x; - if (src_y + h > src->height) - src_h = src->height - src_y; - - dst_w = w; - dst_h = h; - if (dst_x + w > dst->width) - dst_w = dst->width - dst_x; - if (dst_y + h > dst->height) - dst_h = dst->height - dst_y; - - w = MIN(src_w, dst_w); - h = MIN(src_h, dst_h); - - if (w <= 0 || h <= 0) { - fprintf(stderr, "invalid width or height.\n"); - g2d_reset(ctx); - return -EINVAL; - } - - bitblt.data.alpha_blend_mode = G2D_ALPHA_BLEND_MODE_ENABLE; - blend.val = g2d_get_blend_op(op); - g2d_add_cmd(ctx, BITBLT_COMMAND_REG, bitblt.val); - g2d_add_cmd(ctx, BLEND_FUNCTION_REG, blend.val); - - pt.val = 0; - pt.data.x = src_x; - pt.data.y = src_y; - g2d_add_cmd(ctx, SRC_LEFT_TOP_REG, pt.val); - pt.val = 0; - pt.data.x = src_x + w; - pt.data.y = src_y + h; - g2d_add_cmd(ctx, SRC_RIGHT_BOTTOM_REG, pt.val); - - pt.val = 0; - pt.data.x = dst_x; - pt.data.y = dst_y; - g2d_add_cmd(ctx, DST_LEFT_TOP_REG, pt.val); - pt.val = 0; - pt.data.x = dst_x + w; - pt.data.y = dst_y + h; - g2d_add_cmd(ctx, DST_RIGHT_BOTTOM_REG, pt.val); - - g2d_flush(ctx); - - return 0; -} - diff -Nru libdrm-2.4.52/exynos/fimg2d.h libdrm-2.4.52+really2.4.21/exynos/fimg2d.h --- libdrm-2.4.52/exynos/fimg2d.h 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/exynos/fimg2d.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,325 +0,0 @@ -/* - * Copyright (C) 2013 Samsung Electronics Co.Ltd - * Authors: - * Inki Dae - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - */ - -#ifndef _FIMG2D_H_ -#define _FIMG2D_H_ - -#ifndef TRUE -#define TRUE 0 -#endif -#ifndef FALSE -#define FALSE -1 -#endif - -#define G2D_MAX_CMD_NR 64 -#define G2D_MAX_GEM_CMD_NR 64 -#define G2D_MAX_CMD_LIST_NR 64 -#define G2D_PLANE_MAX_NR 2 - -#define G2D_DOUBLE_TO_FIXED(d) ((unsigned int)(d) * 65536.0) - -enum e_g2d_color_mode { - /* COLOR FORMAT */ - G2D_COLOR_FMT_XRGB8888, - G2D_COLOR_FMT_ARGB8888, - G2D_COLOR_FMT_RGB565, - G2D_COLOR_FMT_XRGB1555, - G2D_COLOR_FMT_ARGB1555, - G2D_COLOR_FMT_XRGB4444, - G2D_COLOR_FMT_ARGB4444, - G2D_COLOR_FMT_PRGB888, - G2D_COLOR_FMT_YCbCr444, - G2D_COLOR_FMT_YCbCr422, - G2D_COLOR_FMT_YCbCr420, - /* alpha 8bit */ - G2D_COLOR_FMT_A8, - /* Luminance 8bit: gray color */ - G2D_COLOR_FMT_L8, - /* alpha 1bit */ - G2D_COLOR_FMT_A1, - /* alpha 4bit */ - G2D_COLOR_FMT_A4, - G2D_COLOR_FMT_MASK, /* VER4.1 */ - - /* COLOR ORDER */ - G2D_ORDER_AXRGB = (0 << 4), /* VER4.1 */ - G2D_ORDER_RGBAX = (1 << 4), /* VER4.1 */ - G2D_ORDER_AXBGR = (2 << 4), /* VER4.1 */ - G2D_ORDER_BGRAX = (3 << 4), /* VER4.1 */ - G2D_ORDER_MASK = (3 << 4), /* VER4.1 */ - - /* Number of YCbCr plane */ - G2D_YCbCr_1PLANE = (0 << 8), /* VER4.1 */ - G2D_YCbCr_2PLANE = (1 << 8), /* VER4.1 */ - G2D_YCbCr_PLANE_MASK = (3 << 8), /* VER4.1 */ - - /* Order in YCbCr */ - G2D_YCbCr_ORDER_CrY1CbY0 = (0 << 12), /* VER4.1 */ - G2D_YCbCr_ORDER_CbY1CrY0 = (1 << 12), /* VER4.1 */ - G2D_YCbCr_ORDER_Y1CrY0Cb = (2 << 12), /* VER4.1 */ - G2D_YCbCr_ORDER_Y1CbY0Cr = (3 << 12), /* VER4.1 */ - G2D_YCbCr_ORDER_CrCb = G2D_YCbCr_ORDER_CrY1CbY0, /* VER4.1 */ - G2D_YCbCr_ORDER_CbCr = G2D_YCbCr_ORDER_CbY1CrY0, /* VER4.1 */ - G2D_YCbCr_ORDER_MASK = (3 < 12), /* VER4.1 */ - - /* CSC */ - G2D_CSC_601 = (0 << 16), /* VER4.1 */ - G2D_CSC_709 = (1 << 16), /* VER4.1 */ - G2D_CSC_MASK = (1 << 16), /* VER4.1 */ - - /* Valid value range of YCbCr */ - G2D_YCbCr_RANGE_NARROW = (0 << 17), /* VER4.1 */ - G2D_YCbCr_RANGE_WIDE = (1 << 17), /* VER4.1 */ - G2D_YCbCr_RANGE_MASK = (1 << 17), /* VER4.1 */ - - G2D_COLOR_MODE_MASK = 0xFFFFFFFF, -}; - -enum e_g2d_select_mode { - G2D_SELECT_MODE_NORMAL = (0 << 0), - G2D_SELECT_MODE_FGCOLOR = (1 << 0), - G2D_SELECT_MODE_BGCOLOR = (2 << 0), -}; - -enum e_g2d_repeat_mode { - G2D_REPEAT_MODE_REPEAT, - G2D_REPEAT_MODE_PAD, - G2D_REPEAT_MODE_REFLECT, - G2D_REPEAT_MODE_CLAMP, - G2D_REPEAT_MODE_NONE, -}; - -enum e_g2d_scale_mode { - G2D_SCALE_MODE_NONE = 0, - G2D_SCALE_MODE_NEAREST, - G2D_SCALE_MODE_BILINEAR, - G2D_SCALE_MODE_MAX, -}; - -enum e_g2d_buf_type { - G2D_IMGBUF_COLOR, - G2D_IMGBUF_GEM, - G2D_IMGBUF_USERPTR, -}; - -enum e_g2d_rop3_type { - G2D_ROP3_DST = 0xAA, - G2D_ROP3_SRC = 0xCC, - G2D_ROP3_3RD = 0xF0, - G2D_ROP3_MASK = 0xFF, -}; - -enum e_g2d_select_alpha_src { - G2D_SELECT_SRC_FOR_ALPHA_BLEND, /* VER4.1 */ - G2D_SELECT_ROP_FOR_ALPHA_BLEND, /* VER4.1 */ -}; - -enum e_g2d_transparent_mode { - G2D_TRANSPARENT_MODE_OPAQUE, - G2D_TRANSPARENT_MODE_TRANSPARENT, - G2D_TRANSPARENT_MODE_BLUESCREEN, - G2D_TRANSPARENT_MODE_MAX, -}; - -enum e_g2d_color_key_mode { - G2D_COLORKEY_MODE_DISABLE = 0, - G2D_COLORKEY_MODE_SRC_RGBA = (1<<0), - G2D_COLORKEY_MODE_DST_RGBA = (1<<1), - G2D_COLORKEY_MODE_SRC_YCbCr = (1<<2), /* VER4.1 */ - G2D_COLORKEY_MODE_DST_YCbCr = (1<<3), /* VER4.1 */ - G2D_COLORKEY_MODE_MASK = 15, -}; - -enum e_g2d_alpha_blend_mode { - G2D_ALPHA_BLEND_MODE_DISABLE, - G2D_ALPHA_BLEND_MODE_ENABLE, - G2D_ALPHA_BLEND_MODE_FADING, /* VER3.0 */ - G2D_ALPHA_BLEND_MODE_MAX, -}; - -enum e_g2d_op { - G2D_OP_CLEAR = 0x00, - G2D_OP_SRC = 0x01, - G2D_OP_DST = 0x02, - G2D_OP_OVER = 0x03, - G2D_OP_DISJOINT_CLEAR = 0x10, - G2D_OP_DISJOINT_SRC = 0x11, - G2D_OP_DISJOINT_DST = 0x12, - G2D_OP_CONJOINT_CLEAR = 0x20, - G2D_OP_CONJOINT_SRC = 0x21, - G2D_OP_CONJOINT_DST = 0x22, -}; - -enum e_g2d_coeff_mode { - G2D_COEFF_MODE_ONE, - G2D_COEFF_MODE_ZERO, - G2D_COEFF_MODE_SRC_ALPHA, - G2D_COEFF_MODE_SRC_COLOR, - G2D_COEFF_MODE_DST_ALPHA, - G2D_COEFF_MODE_DST_COLOR, - /* Global Alpha : Set by ALPHA_REG(0x618) */ - G2D_COEFF_MODE_GB_ALPHA, - /* Global Alpha : Set by ALPHA_REG(0x618) */ - G2D_COEFF_MODE_GB_COLOR, - /* (1-SRC alpha)/DST Alpha */ - G2D_COEFF_MODE_DISJOINT_S, - /* (1-DST alpha)/SRC Alpha */ - G2D_COEFF_MODE_DISJOINT_D, - /* SRC alpha/DST alpha */ - G2D_COEFF_MODE_CONJOINT_S, - /* DST alpha/SRC alpha */ - G2D_COEFF_MODE_CONJOINT_D, - /* DST alpha/SRC alpha */ - G2D_COEFF_MODE_MASK -}; - -enum e_g2d_acoeff_mode { - G2D_ACOEFF_MODE_A, /* alpha */ - G2D_ACOEFF_MODE_APGA, /* alpha + global alpha */ - G2D_ACOEFF_MODE_AMGA, /* alpha * global alpha */ - G2D_ACOEFF_MODE_MASK -}; - -union g2d_point_val { - unsigned int val; - struct { - /* - * Coordinate of Source Image - * Range: 0 ~ 8000 (Requirement: SrcLeftX < SrcRightX) - * In YCbCr 422 and YCbCr 420 format with even number. - */ - unsigned int x:16; - /* - * Y Coordinate of Source Image - * Range: 0 ~ 8000 (Requirement: SrcTopY < SrcBottomY) - * In YCbCr 420 format with even number. - */ - unsigned int y:16; - } data; -}; - -union g2d_rop4_val { - unsigned int val; - struct { - enum e_g2d_rop3_type unmasked_rop3:8; - enum e_g2d_rop3_type masked_rop3:8; - unsigned int reserved:16; - } data; -}; - -union g2d_bitblt_cmd_val { - unsigned int val; - struct { - /* [0:3] */ - unsigned int mask_rop4_en:1; - unsigned int masking_en:1; - enum e_g2d_select_alpha_src rop4_alpha_en:1; - unsigned int dither_en:1; - /* [4:7] */ - unsigned int resolved1:4; - /* [8:11] */ - unsigned int cw_en:4; - /* [12:15] */ - enum e_g2d_transparent_mode transparent_mode:4; - /* [16:19] */ - enum e_g2d_color_key_mode color_key_mode:4; - /* [20:23] */ - enum e_g2d_alpha_blend_mode alpha_blend_mode:4; - /* [24:27] */ - unsigned int src_pre_multiply:1; - unsigned int pat_pre_multiply:1; - unsigned int dst_pre_multiply:1; - unsigned int dst_depre_multiply:1; - /* [28:31] */ - unsigned int fast_solid_color_fill_en:1; - unsigned int reserved:3; - } data; -}; - -union g2d_blend_func_val { - unsigned int val; - struct { - /* [0:15] */ - enum e_g2d_coeff_mode src_coeff:4; - enum e_g2d_acoeff_mode src_coeff_src_a:2; - enum e_g2d_acoeff_mode src_coeff_dst_a:2; - enum e_g2d_coeff_mode dst_coeff:4; - enum e_g2d_acoeff_mode dst_coeff_src_a:2; - enum e_g2d_acoeff_mode dst_coeff_dst_a:2; - /* [16:19] */ - unsigned int inv_src_color_coeff:1; - unsigned int resoled1:1; - unsigned int inv_dst_color_coeff:1; - unsigned int resoled2:1; - /* [20:23] */ - unsigned int lighten_en:1; - unsigned int darken_en:1; - unsigned int win_ce_src_over_en:2; - /* [24:31] */ - unsigned int reserved:8; - } data; -}; - -struct g2d_image { - enum e_g2d_select_mode select_mode; - enum e_g2d_color_mode color_mode; - enum e_g2d_repeat_mode repeat_mode; - enum e_g2d_scale_mode scale_mode; - unsigned int xscale; - unsigned int yscale; - unsigned char rotate_90; - unsigned char x_dir; - unsigned char y_dir; - unsigned char component_alpha; - unsigned int width; - unsigned int height; - unsigned int stride; - unsigned int need_free; - unsigned int color; - enum e_g2d_buf_type buf_type; - unsigned int bo[G2D_PLANE_MAX_NR]; - struct drm_exynos_g2d_userptr user_ptr[G2D_PLANE_MAX_NR]; - void *mapped_ptr[G2D_PLANE_MAX_NR]; -}; - -struct g2d_context { - int fd; - unsigned int major; - unsigned int minor; - struct drm_exynos_g2d_cmd cmd[G2D_MAX_CMD_NR]; - struct drm_exynos_g2d_cmd cmd_buf[G2D_MAX_GEM_CMD_NR]; - unsigned int cmd_nr; - unsigned int cmd_buf_nr; - unsigned int cmdlist_nr; -}; - -struct g2d_context *g2d_init(int fd); -void g2d_fini(struct g2d_context *ctx); -int g2d_exec(struct g2d_context *ctx); -int g2d_solid_fill(struct g2d_context *ctx, struct g2d_image *img, - unsigned int x, unsigned int y, unsigned int w, - unsigned int h); -int g2d_copy(struct g2d_context *ctx, struct g2d_image *src, - struct g2d_image *dst, unsigned int src_x, - unsigned int src_y, unsigned int dst_x, unsigned int dst_y, - unsigned int w, unsigned int h); -int g2d_copy_with_scale(struct g2d_context *ctx, struct g2d_image *src, - struct g2d_image *dst, unsigned int src_x, - unsigned int src_y, unsigned int src_w, - unsigned int src_h, unsigned int dst_x, - unsigned int dst_y, unsigned int dst_w, - unsigned int dst_h, unsigned int negative); -int g2d_blend(struct g2d_context *ctx, struct g2d_image *src, - struct g2d_image *dst, unsigned int src_x, - unsigned int src_y, unsigned int dst_x, unsigned int dst_y, - unsigned int w, unsigned int h, enum e_g2d_op op); -#endif /* _FIMG2D_H_ */ diff -Nru libdrm-2.4.52/exynos/fimg2d_reg.h libdrm-2.4.52+really2.4.21/exynos/fimg2d_reg.h --- libdrm-2.4.52/exynos/fimg2d_reg.h 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/exynos/fimg2d_reg.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,114 +0,0 @@ -/* - * Copyright (C) 2013 Samsung Electronics Co.Ltd - * Authors: - * Inki Dae - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - */ - -#ifndef _FIMG2D_REG_H_ -#define _FIMG2D_REG_H_ - -#define SOFT_RESET_REG (0x0000) -#define INTEN_REG (0x0004) -#define INTC_PEND_REG (0x000c) -#define FIFO_STAT_REG (0x0010) -#define AXI_MODE_REG (0x001C) -#define DMA_SFR_BASE_ADDR_REG (0x0080) -#define DMA_COMMAND_REG (0x0084) -#define DMA_EXE_LIST_NUM_REG (0x0088) -#define DMA_STATUS_REG (0x008C) -#define DMA_HOLD_CMD_REG (0x0090) - -/* COMMAND REGISTER */ -#define BITBLT_START_REG (0x0100) -#define BITBLT_COMMAND_REG (0x0104) -#define BLEND_FUNCTION_REG (0x0108) /* VER4.1 */ -#define ROUND_MODE_REG (0x010C) /* VER4.1 */ - -/* PARAMETER SETTING REGISTER */ -#define ROTATE_REG (0x0200) -#define SRC_MASK_DIRECT_REG (0x0204) -#define DST_PAT_DIRECT_REG (0x0208) - -/* SOURCE */ -#define SRC_SELECT_REG (0x0300) -#define SRC_BASE_ADDR_REG (0x0304) -#define SRC_STRIDE_REG (0x0308) -#define SRC_COLOR_MODE_REG (0x030c) -#define SRC_LEFT_TOP_REG (0x0310) -#define SRC_RIGHT_BOTTOM_REG (0x0314) -#define SRC_PLANE2_BASE_ADDR_REG (0x0318) /* VER4.1 */ -#define SRC_REPEAT_MODE_REG (0x031C) -#define SRC_PAD_VALUE_REG (0x0320) -#define SRC_A8_RGB_EXT_REG (0x0324) -#define SRC_SCALE_CTRL_REG (0x0328) -#define SRC_XSCALE_REG (0x032C) -#define SRC_YSCALE_REG (0x0330) - -/* DESTINATION */ -#define DST_SELECT_REG (0x0400) -#define DST_BASE_ADDR_REG (0x0404) -#define DST_STRIDE_REG (0x0408) -#define DST_COLOR_MODE_REG (0x040C) -#define DST_LEFT_TOP_REG (0x0410) -#define DST_RIGHT_BOTTOM_REG (0x0414) -#define DST_PLANE2_BASE_ADDR_REG (0x0418) /* VER4.1 */ -#define DST_A8_RGB_EXT_REG (0x041C) - -/* PATTERN */ -#define PAT_BASE_ADDR_REG (0x0500) -#define PAT_SIZE_REG (0x0504) -#define PAT_COLOR_MODE_REG (0x0508) -#define PAT_OFFSET_REG (0x050C) -#define PAT_STRIDE_REG (0x0510) - -/* MASK */ -#define MASK_BASE_ADDR_REG (0x0520) -#define MASK_STRIDE_REG (0x0524) -#define MASK_LEFT_TOP_REG (0x0528) /* VER4.1 */ -#define MASK_RIGHT_BOTTOM_REG (0x052C) /* VER4.1 */ -#define MASK_MODE_REG (0x0530) /* VER4.1 */ -#define MASK_REPEAT_MODE_REG (0x0534) -#define MASK_PAD_VALUE_REG (0x0538) -#define MASK_SCALE_CTRL_REG (0x053C) -#define MASK_XSCALE_REG (0x0540) -#define MASK_YSCALE_REG (0x0544) - -/* CLIPPING WINDOW */ -#define CW_LT_REG (0x0600) -#define CW_RB_REG (0x0604) - -/* ROP & ALPHA SETTING */ -#define THIRD_OPERAND_REG (0x0610) -#define ROP4_REG (0x0614) -#define ALPHA_REG (0x0618) - -/* COLOR SETTING */ -#define FG_COLOR_REG (0x0700) -#define BG_COLOR_REG (0x0704) -#define BS_COLOR_REG (0x0708) -#define SF_COLOR_REG (0x070C) /* VER4.1 */ - -/* COLOR KEY */ -#define SRC_COLORKEY_CTRL_REG (0x0710) -#define SRC_COLORKEY_DR_MIN_REG (0x0714) -#define SRC_COLORKEY_DR_MAX_REG (0x0718) -#define DST_COLORKEY_CTRL_REG (0x071C) -#define DST_COLORKEY_DR_MIN_REG (0x0720) -#define DST_COLORKEY_DR_MAX_REG (0x0724) -/* YCbCr src Color Key */ -#define YCbCr_SRC_COLORKEY_CTRL_REG (0x0728) /* VER4.1 */ -#define YCbCr_SRC_COLORKEY_DR_MIN_REG (0x072C) /* VER4.1 */ -#define YCbCr_SRC_COLORKEY_DR_MAX_REG (0x0730) /* VER4.1 */ -/*Y CbCr dst Color Key */ -#define YCbCr_DST_COLORKEY_CTRL_REG (0x0734) /* VER4.1 */ -#define YCbCr_DST_COLORKEY_DR_MIN_REG (0x0738) /* VER4.1 */ -#define YCbCr_DST_COLORKEY_DR_MAX_REG (0x073C) /* VER4.1 */ - -#endif - diff -Nru libdrm-2.4.52/exynos/libdrm_exynos.pc.in libdrm-2.4.52+really2.4.21/exynos/libdrm_exynos.pc.in --- libdrm-2.4.52/exynos/libdrm_exynos.pc.in 2012-10-05 20:48:07.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/exynos/libdrm_exynos.pc.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: libdrm_exynos -Description: Userspace interface to exynos kernel DRM services -Version: 0.6 -Libs: -L${libdir} -ldrm_exynos -Cflags: -I${includedir} -I${includedir}/libdrm -I${includedir}/exynos -Requires.private: libdrm diff -Nru libdrm-2.4.52/exynos/Makefile.am libdrm-2.4.52+really2.4.21/exynos/Makefile.am --- libdrm-2.4.52/exynos/Makefile.am 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/exynos/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -AM_CFLAGS = \ - $(WARN_CFLAGS) \ - -I$(top_srcdir) \ - -I$(top_srcdir)/exynos \ - $(PTHREADSTUBS_CFLAGS) \ - -I$(top_srcdir)/include/drm - -libdrm_exynos_la_LTLIBRARIES = libdrm_exynos.la -libdrm_exynos_ladir = $(libdir) -libdrm_exynos_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libdrm_exynos_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ - -libdrm_exynos_la_SOURCES = \ - exynos_drm.c \ - exynos_fimg2d.c \ - fimg2d.h \ - fimg2d_reg.h - -libdrm_exynoscommonincludedir = ${includedir}/exynos -libdrm_exynoscommoninclude_HEADERS = exynos_drm.h - -libdrm_exynosincludedir = ${includedir}/libdrm -libdrm_exynosinclude_HEADERS = exynos_drmif.h - -pkgconfigdir = @pkgconfigdir@ -pkgconfig_DATA = libdrm_exynos.pc diff -Nru libdrm-2.4.52/exynos/Makefile.in libdrm-2.4.52+really2.4.21/exynos/Makefile.in --- libdrm-2.4.52/exynos/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/exynos/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,755 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = exynos -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/libdrm_exynos.pc.in $(top_srcdir)/build-aux/depcomp \ - $(libdrm_exynoscommoninclude_HEADERS) \ - $(libdrm_exynosinclude_HEADERS) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = libdrm_exynos.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdrm_exynos_ladir)" \ - "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(libdrm_exynoscommonincludedir)" \ - "$(DESTDIR)$(libdrm_exynosincludedir)" -LTLIBRARIES = $(libdrm_exynos_la_LTLIBRARIES) -libdrm_exynos_la_DEPENDENCIES = ../libdrm.la -am_libdrm_exynos_la_OBJECTS = exynos_drm.lo exynos_fimg2d.lo -libdrm_exynos_la_OBJECTS = $(am_libdrm_exynos_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libdrm_exynos_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(libdrm_exynos_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libdrm_exynos_la_SOURCES) -DIST_SOURCES = $(libdrm_exynos_la_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(pkgconfig_DATA) -HEADERS = $(libdrm_exynoscommoninclude_HEADERS) \ - $(libdrm_exynosinclude_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = \ - $(WARN_CFLAGS) \ - -I$(top_srcdir) \ - -I$(top_srcdir)/exynos \ - $(PTHREADSTUBS_CFLAGS) \ - -I$(top_srcdir)/include/drm - -libdrm_exynos_la_LTLIBRARIES = libdrm_exynos.la -libdrm_exynos_ladir = $(libdir) -libdrm_exynos_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libdrm_exynos_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ -libdrm_exynos_la_SOURCES = \ - exynos_drm.c \ - exynos_fimg2d.c \ - fimg2d.h \ - fimg2d_reg.h - -libdrm_exynoscommonincludedir = ${includedir}/exynos -libdrm_exynoscommoninclude_HEADERS = exynos_drm.h -libdrm_exynosincludedir = ${includedir}/libdrm -libdrm_exynosinclude_HEADERS = exynos_drmif.h -pkgconfig_DATA = libdrm_exynos.pc -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign exynos/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign exynos/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -libdrm_exynos.pc: $(top_builddir)/config.status $(srcdir)/libdrm_exynos.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-libdrm_exynos_laLTLIBRARIES: $(libdrm_exynos_la_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(libdrm_exynos_la_LTLIBRARIES)'; test -n "$(libdrm_exynos_ladir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_exynos_ladir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_exynos_ladir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdrm_exynos_ladir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdrm_exynos_ladir)"; \ - } - -uninstall-libdrm_exynos_laLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_exynos_la_LTLIBRARIES)'; test -n "$(libdrm_exynos_ladir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdrm_exynos_ladir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdrm_exynos_ladir)/$$f"; \ - done - -clean-libdrm_exynos_laLTLIBRARIES: - -test -z "$(libdrm_exynos_la_LTLIBRARIES)" || rm -f $(libdrm_exynos_la_LTLIBRARIES) - @list='$(libdrm_exynos_la_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libdrm_exynos.la: $(libdrm_exynos_la_OBJECTS) $(libdrm_exynos_la_DEPENDENCIES) $(EXTRA_libdrm_exynos_la_DEPENDENCIES) - $(AM_V_CCLD)$(libdrm_exynos_la_LINK) -rpath $(libdrm_exynos_ladir) $(libdrm_exynos_la_OBJECTS) $(libdrm_exynos_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exynos_drm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exynos_fimg2d.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-libdrm_exynoscommonincludeHEADERS: $(libdrm_exynoscommoninclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(libdrm_exynoscommoninclude_HEADERS)'; test -n "$(libdrm_exynoscommonincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_exynoscommonincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_exynoscommonincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libdrm_exynoscommonincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libdrm_exynoscommonincludedir)" || exit $$?; \ - done - -uninstall-libdrm_exynoscommonincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_exynoscommoninclude_HEADERS)'; test -n "$(libdrm_exynoscommonincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(libdrm_exynoscommonincludedir)'; $(am__uninstall_files_from_dir) -install-libdrm_exynosincludeHEADERS: $(libdrm_exynosinclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(libdrm_exynosinclude_HEADERS)'; test -n "$(libdrm_exynosincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_exynosincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_exynosincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libdrm_exynosincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libdrm_exynosincludedir)" || exit $$?; \ - done - -uninstall-libdrm_exynosincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_exynosinclude_HEADERS)'; test -n "$(libdrm_exynosincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(libdrm_exynosincludedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libdrm_exynos_ladir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libdrm_exynoscommonincludedir)" "$(DESTDIR)$(libdrm_exynosincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libdrm_exynos_laLTLIBRARIES \ - clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-libdrm_exynos_laLTLIBRARIES \ - install-libdrm_exynoscommonincludeHEADERS \ - install-libdrm_exynosincludeHEADERS install-pkgconfigDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libdrm_exynos_laLTLIBRARIES \ - uninstall-libdrm_exynoscommonincludeHEADERS \ - uninstall-libdrm_exynosincludeHEADERS uninstall-pkgconfigDATA - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libdrm_exynos_laLTLIBRARIES clean-libtool cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-libdrm_exynos_laLTLIBRARIES \ - install-libdrm_exynoscommonincludeHEADERS \ - install-libdrm_exynosincludeHEADERS install-man install-pdf \ - install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-libdrm_exynos_laLTLIBRARIES \ - uninstall-libdrm_exynoscommonincludeHEADERS \ - uninstall-libdrm_exynosincludeHEADERS uninstall-pkgconfigDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/freedreno/freedreno_bo.c libdrm-2.4.52+really2.4.21/freedreno/freedreno_bo.c --- libdrm-2.4.52/freedreno/freedreno_bo.c 2013-12-29 06:05:33.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/freedreno_bo.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,373 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2012 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#include "freedreno_drmif.h" -#include "freedreno_priv.h" - -static pthread_mutex_t table_lock = PTHREAD_MUTEX_INITIALIZER; - -static void bo_del(struct fd_bo *bo); - -/* set buffer name, and add to table, call w/ table_lock held: */ -static void set_name(struct fd_bo *bo, uint32_t name) -{ - bo->name = name; - /* add ourself into the handle table: */ - drmHashInsert(bo->dev->name_table, name, bo); -} - -/* lookup a buffer, call w/ table_lock held: */ -static struct fd_bo * lookup_bo(void *tbl, uint32_t key) -{ - struct fd_bo *bo = NULL; - if (!drmHashLookup(tbl, key, (void **)&bo)) { - /* found, incr refcnt and return: */ - bo = fd_bo_ref(bo); - } - return bo; -} - -/* allocate a new buffer object, call w/ table_lock held */ -static struct fd_bo * bo_from_handle(struct fd_device *dev, - uint32_t size, uint32_t handle) -{ - struct fd_bo *bo; - - bo = dev->funcs->bo_from_handle(dev, size, handle); - if (!bo) { - struct drm_gem_close req = { - .handle = handle, - }; - drmIoctl(dev->fd, DRM_IOCTL_GEM_CLOSE, &req); - return NULL; - } - bo->dev = fd_device_ref(dev); - bo->size = size; - bo->handle = handle; - atomic_set(&bo->refcnt, 1); - list_inithead(&bo->list); - /* add ourself into the handle table: */ - drmHashInsert(dev->handle_table, handle, bo); - return bo; -} - -/* Frees older cached buffers. Called under table_lock */ -void fd_cleanup_bo_cache(struct fd_device *dev, time_t time) -{ - int i; - - if (dev->time == time) - return; - - for (i = 0; i < dev->num_buckets; i++) { - struct fd_bo_bucket *bucket = &dev->cache_bucket[i]; - struct fd_bo *bo; - - while (!LIST_IS_EMPTY(&bucket->list)) { - bo = LIST_ENTRY(struct fd_bo, bucket->list.next, list); - - /* keep things in cache for at least 1 second: */ - if (time && ((time - bo->free_time) <= 1)) - break; - - list_del(&bo->list); - bo_del(bo); - } - } - - dev->time = time; -} - -static struct fd_bo_bucket * get_bucket(struct fd_device *dev, uint32_t size) -{ - int i; - - /* hmm, this is what intel does, but I suppose we could calculate our - * way to the correct bucket size rather than looping.. - */ - for (i = 0; i < dev->num_buckets; i++) { - struct fd_bo_bucket *bucket = &dev->cache_bucket[i]; - if (bucket->size >= size) { - return bucket; - } - } - - return NULL; -} - -static int is_idle(struct fd_bo *bo) -{ - return fd_bo_cpu_prep(bo, NULL, - DRM_FREEDRENO_PREP_READ | - DRM_FREEDRENO_PREP_WRITE | - DRM_FREEDRENO_PREP_NOSYNC) == 0; -} - -static struct fd_bo *find_in_bucket(struct fd_device *dev, - struct fd_bo_bucket *bucket, uint32_t flags) -{ - struct fd_bo *bo = NULL; - - /* TODO .. if we had an ALLOC_FOR_RENDER flag like intel, we could - * skip the busy check.. if it is only going to be a render target - * then we probably don't need to stall.. - * - * NOTE that intel takes ALLOC_FOR_RENDER bo's from the list tail - * (MRU, since likely to be in GPU cache), rather than head (LRU).. - */ - pthread_mutex_lock(&table_lock); - while (!LIST_IS_EMPTY(&bucket->list)) { - bo = LIST_ENTRY(struct fd_bo, bucket->list.next, list); - if (0 /* TODO: if madvise tells us bo is gone... */) { - list_del(&bo->list); - bo_del(bo); - bo = NULL; - continue; - } - /* TODO check for compatible flags? */ - if (is_idle(bo)) { - list_del(&bo->list); - break; - } - bo = NULL; - break; - } - pthread_mutex_unlock(&table_lock); - - return bo; -} - - -struct fd_bo * fd_bo_new(struct fd_device *dev, - uint32_t size, uint32_t flags) -{ - struct fd_bo *bo = NULL; - struct fd_bo_bucket *bucket; - uint32_t handle; - int ret; - - size = ALIGN(size, 4096); - bucket = get_bucket(dev, size); - - /* see if we can be green and recycle: */ - if (bucket) { - size = bucket->size; - bo = find_in_bucket(dev, bucket, flags); - if (bo) { - atomic_set(&bo->refcnt, 1); - fd_device_ref(bo->dev); - return bo; - } - } - - ret = dev->funcs->bo_new_handle(dev, size, flags, &handle); - if (ret) - return NULL; - - pthread_mutex_lock(&table_lock); - bo = bo_from_handle(dev, size, handle); - bo->bo_reuse = 1; - pthread_mutex_unlock(&table_lock); - - return bo; -} - -struct fd_bo *fd_bo_from_handle(struct fd_device *dev, - uint32_t handle, uint32_t size) -{ - struct fd_bo *bo = NULL; - - pthread_mutex_lock(&table_lock); - bo = bo_from_handle(dev, size, handle); - pthread_mutex_unlock(&table_lock); - - return bo; -} - -struct fd_bo * fd_bo_from_name(struct fd_device *dev, uint32_t name) -{ - struct drm_gem_open req = { - .name = name, - }; - struct fd_bo *bo; - - pthread_mutex_lock(&table_lock); - - /* check name table first, to see if bo is already open: */ - bo = lookup_bo(dev->name_table, name); - if (bo) - goto out_unlock; - - if (drmIoctl(dev->fd, DRM_IOCTL_GEM_OPEN, &req)) { - ERROR_MSG("gem-open failed: %s", strerror(errno)); - goto out_unlock; - } - - bo = lookup_bo(dev->handle_table, req.handle); - if (bo) - goto out_unlock; - - bo = bo_from_handle(dev, req.size, req.handle); - if (bo) - set_name(bo, name); - -out_unlock: - pthread_mutex_unlock(&table_lock); - - return bo; -} - -struct fd_bo * fd_bo_ref(struct fd_bo *bo) -{ - atomic_inc(&bo->refcnt); - return bo; -} - -void fd_bo_del(struct fd_bo *bo) -{ - struct fd_device *dev = bo->dev; - - if (!atomic_dec_and_test(&bo->refcnt)) - return; - - pthread_mutex_lock(&table_lock); - - if (bo->bo_reuse) { - struct fd_bo_bucket *bucket = get_bucket(dev, bo->size); - - /* see if we can be green and recycle: */ - if (bucket) { - struct timespec time; - - clock_gettime(CLOCK_MONOTONIC, &time); - - bo->free_time = time.tv_sec; - list_addtail(&bo->list, &bucket->list); - fd_cleanup_bo_cache(dev, time.tv_sec); - - /* bo's in the bucket cache don't have a ref and - * don't hold a ref to the dev: - */ - - goto out; - } - } - - bo_del(bo); -out: - fd_device_del_locked(dev); - pthread_mutex_unlock(&table_lock); -} - -/* Called under table_lock */ -static void bo_del(struct fd_bo *bo) -{ - if (bo->map) - munmap(bo->map, bo->size); - - /* TODO probably bo's in bucket list get removed from - * handle table?? - */ - - if (bo->handle) { - struct drm_gem_close req = { - .handle = bo->handle, - }; - drmHashDelete(bo->dev->handle_table, bo->handle); - if (bo->name) - drmHashDelete(bo->dev->name_table, bo->name); - drmIoctl(bo->dev->fd, DRM_IOCTL_GEM_CLOSE, &req); - } - - bo->funcs->destroy(bo); -} - -int fd_bo_get_name(struct fd_bo *bo, uint32_t *name) -{ - if (!bo->name) { - struct drm_gem_flink req = { - .handle = bo->handle, - }; - int ret; - - ret = drmIoctl(bo->dev->fd, DRM_IOCTL_GEM_FLINK, &req); - if (ret) { - return ret; - } - - pthread_mutex_lock(&table_lock); - set_name(bo, req.name); - pthread_mutex_unlock(&table_lock); - } - - *name = bo->name; - - return 0; -} - -uint32_t fd_bo_handle(struct fd_bo *bo) -{ - return bo->handle; -} - -uint32_t fd_bo_size(struct fd_bo *bo) -{ - return bo->size; -} - -void * fd_bo_map(struct fd_bo *bo) -{ - if (!bo->map) { - uint64_t offset; - int ret; - - ret = bo->funcs->offset(bo, &offset); - if (ret) { - return NULL; - } - - bo->map = mmap(0, bo->size, PROT_READ | PROT_WRITE, MAP_SHARED, - bo->dev->fd, offset); - if (bo->map == MAP_FAILED) { - ERROR_MSG("mmap failed: %s", strerror(errno)); - bo->map = NULL; - } - } - return bo->map; -} - -/* a bit odd to take the pipe as an arg, but it's a, umm, quirk of kgsl.. */ -int fd_bo_cpu_prep(struct fd_bo *bo, struct fd_pipe *pipe, uint32_t op) -{ - return bo->funcs->cpu_prep(bo, pipe, op); -} - -void fd_bo_cpu_fini(struct fd_bo *bo) -{ - bo->funcs->cpu_fini(bo); -} diff -Nru libdrm-2.4.52/freedreno/freedreno_device.c libdrm-2.4.52+really2.4.21/freedreno/freedreno_device.c --- libdrm-2.4.52/freedreno/freedreno_device.c 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/freedreno_device.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,179 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2012 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#include -#include -#include - -#include "freedreno_drmif.h" -#include "freedreno_priv.h" - -static pthread_mutex_t table_lock = PTHREAD_MUTEX_INITIALIZER; -static void * dev_table; - -struct fd_device * kgsl_device_new(int fd); -struct fd_device * msm_device_new(int fd); - -static void -add_bucket(struct fd_device *dev, int size) -{ - unsigned int i = dev->num_buckets; - - assert(i < ARRAY_SIZE(dev->cache_bucket)); - - list_inithead(&dev->cache_bucket[i].list); - dev->cache_bucket[i].size = size; - dev->num_buckets++; -} - -static void -init_cache_buckets(struct fd_device *dev) -{ - unsigned long size, cache_max_size = 64 * 1024 * 1024; - - /* OK, so power of two buckets was too wasteful of memory. - * Give 3 other sizes between each power of two, to hopefully - * cover things accurately enough. (The alternative is - * probably to just go for exact matching of sizes, and assume - * that for things like composited window resize the tiled - * width/height alignment and rounding of sizes to pages will - * get us useful cache hit rates anyway) - */ - add_bucket(dev, 4096); - add_bucket(dev, 4096 * 2); - add_bucket(dev, 4096 * 3); - - /* Initialize the linked lists for BO reuse cache. */ - for (size = 4 * 4096; size <= cache_max_size; size *= 2) { - add_bucket(dev, size); - add_bucket(dev, size + size * 1 / 4); - add_bucket(dev, size + size * 2 / 4); - add_bucket(dev, size + size * 3 / 4); - } -} - -static struct fd_device * fd_device_new_impl(int fd) -{ - struct fd_device *dev; - drmVersionPtr version; - - /* figure out if we are kgsl or msm drm driver: */ - version = drmGetVersion(fd); - if (!version) { - ERROR_MSG("cannot get version: %s", strerror(errno)); - return NULL; - } - - if (!strcmp(version->name, "kgsl")) { - DEBUG_MSG("kgsl DRM device"); - dev = kgsl_device_new(fd); - } else if (!strcmp(version->name, "msm")) { - DEBUG_MSG("msm DRM device"); - dev = msm_device_new(fd); - } else { - ERROR_MSG("unknown device: %s", version->name); - dev = NULL; - } - - if (!dev) - return NULL; - - atomic_set(&dev->refcnt, 1); - dev->fd = fd; - dev->handle_table = drmHashCreate(); - dev->name_table = drmHashCreate(); - init_cache_buckets(dev); - - return dev; -} - -struct fd_device * fd_device_new(int fd) -{ - struct fd_device *dev = NULL; - int key = fd; - - pthread_mutex_lock(&table_lock); - - if (!dev_table) - dev_table = drmHashCreate(); - - if (drmHashLookup(dev_table, key, (void **)&dev)) { - dev = fd_device_new_impl(fd); - if (dev) - drmHashInsert(dev_table, key, dev); - } else { - dev = fd_device_ref(dev); - } - - pthread_mutex_unlock(&table_lock); - - return dev; -} - -/* like fd_device_new() but creates it's own private dup() of the fd - * which is close()d when the device is finalized. - */ -struct fd_device * fd_device_new_dup(int fd) -{ - struct fd_device *dev = fd_device_new(dup(fd)); - dev->closefd = 1; - return dev; -} - -struct fd_device * fd_device_ref(struct fd_device *dev) -{ - atomic_inc(&dev->refcnt); - return dev; -} - -static void fd_device_del_impl(struct fd_device *dev) -{ - fd_cleanup_bo_cache(dev, 0); - drmHashDestroy(dev->handle_table); - drmHashDestroy(dev->name_table); - drmHashDelete(dev_table, dev->fd); - if (dev->closefd) - close(dev->fd); - dev->funcs->destroy(dev); -} - -void fd_device_del_locked(struct fd_device *dev) -{ - if (!atomic_dec_and_test(&dev->refcnt)) - return; - fd_device_del_impl(dev); -} - -void fd_device_del(struct fd_device *dev) -{ - if (!atomic_dec_and_test(&dev->refcnt)) - return; - pthread_mutex_lock(&table_lock); - fd_device_del_impl(dev); - pthread_mutex_unlock(&table_lock); -} diff -Nru libdrm-2.4.52/freedreno/freedreno_drmif.h libdrm-2.4.52+really2.4.21/freedreno/freedreno_drmif.h --- libdrm-2.4.52/freedreno/freedreno_drmif.h 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/freedreno_drmif.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2012 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#ifndef FREEDRENO_DRMIF_H_ -#define FREEDRENO_DRMIF_H_ - -#include -#include - -struct fd_bo; -struct fd_pipe; -struct fd_device; - -enum fd_pipe_id { - FD_PIPE_3D = 1, - FD_PIPE_2D = 2, - /* some devices have two 2d blocks.. not really sure how to - * use that yet, so just ignoring the 2nd 2d pipe for now - */ - FD_PIPE_MAX -}; - -enum fd_param_id { - FD_DEVICE_ID, - FD_GMEM_SIZE, - FD_GPU_ID, -}; - -/* bo flags: */ -#define DRM_FREEDRENO_GEM_TYPE_SMI 0x00000001 -#define DRM_FREEDRENO_GEM_TYPE_KMEM 0x00000002 -#define DRM_FREEDRENO_GEM_TYPE_MEM_MASK 0x0000000f -#define DRM_FREEDRENO_GEM_CACHE_NONE 0x00000000 -#define DRM_FREEDRENO_GEM_CACHE_WCOMBINE 0x00100000 -#define DRM_FREEDRENO_GEM_CACHE_WTHROUGH 0x00200000 -#define DRM_FREEDRENO_GEM_CACHE_WBACK 0x00400000 -#define DRM_FREEDRENO_GEM_CACHE_WBACKWA 0x00800000 -#define DRM_FREEDRENO_GEM_CACHE_MASK 0x00f00000 -#define DRM_FREEDRENO_GEM_GPUREADONLY 0x01000000 - -/* bo access flags: (keep aligned to MSM_PREP_x) */ -#define DRM_FREEDRENO_PREP_READ 0x01 -#define DRM_FREEDRENO_PREP_WRITE 0x02 -#define DRM_FREEDRENO_PREP_NOSYNC 0x04 - -/* device functions: - */ - -struct fd_device * fd_device_new(int fd); -struct fd_device * fd_device_new_dup(int fd); -struct fd_device * fd_device_ref(struct fd_device *dev); -void fd_device_del(struct fd_device *dev); - - -/* pipe functions: - */ - -struct fd_pipe * fd_pipe_new(struct fd_device *dev, enum fd_pipe_id id); -void fd_pipe_del(struct fd_pipe *pipe); -int fd_pipe_get_param(struct fd_pipe *pipe, enum fd_param_id param, - uint64_t *value); -int fd_pipe_wait(struct fd_pipe *pipe, uint32_t timestamp); - - -/* buffer-object functions: - */ - -struct fd_bo * fd_bo_new(struct fd_device *dev, - uint32_t size, uint32_t flags); -struct fd_bo * fd_bo_from_fbdev(struct fd_pipe *pipe, - int fbfd, uint32_t size); -struct fd_bo * fd_bo_from_name(struct fd_device *dev, uint32_t name); -struct fd_bo * fd_bo_ref(struct fd_bo *bo); -void fd_bo_del(struct fd_bo *bo); -int fd_bo_get_name(struct fd_bo *bo, uint32_t *name); -uint32_t fd_bo_handle(struct fd_bo *bo); -uint32_t fd_bo_size(struct fd_bo *bo); -void * fd_bo_map(struct fd_bo *bo); -int fd_bo_cpu_prep(struct fd_bo *bo, struct fd_pipe *pipe, uint32_t op); -void fd_bo_cpu_fini(struct fd_bo *bo); - -#endif /* FREEDRENO_DRMIF_H_ */ diff -Nru libdrm-2.4.52/freedreno/freedreno_pipe.c libdrm-2.4.52+really2.4.21/freedreno/freedreno_pipe.c --- libdrm-2.4.52/freedreno/freedreno_pipe.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/freedreno_pipe.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2012 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#include "freedreno_drmif.h" -#include "freedreno_priv.h" - -struct fd_pipe * fd_pipe_new(struct fd_device *dev, enum fd_pipe_id id) -{ - struct fd_pipe *pipe = NULL; - - if (id > FD_PIPE_MAX) { - ERROR_MSG("invalid pipe id: %d", id); - goto fail; - } - - pipe = dev->funcs->pipe_new(dev, id); - if (!pipe) { - ERROR_MSG("allocation failed"); - goto fail; - } - - pipe->dev = dev; - pipe->id = id; - - return pipe; -fail: - if (pipe) - fd_pipe_del(pipe); - return NULL; -} - -void fd_pipe_del(struct fd_pipe *pipe) -{ - pipe->funcs->destroy(pipe); -} - -int fd_pipe_get_param(struct fd_pipe *pipe, enum fd_param_id param, - uint64_t *value) -{ - return pipe->funcs->get_param(pipe, param, value); -} - -int fd_pipe_wait(struct fd_pipe *pipe, uint32_t timestamp) -{ - return pipe->funcs->wait(pipe, timestamp); -} diff -Nru libdrm-2.4.52/freedreno/freedreno_priv.h libdrm-2.4.52+really2.4.21/freedreno/freedreno_priv.h --- libdrm-2.4.52/freedreno/freedreno_priv.h 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/freedreno_priv.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,169 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2012 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#ifndef FREEDRENO_PRIV_H_ -#define FREEDRENO_PRIV_H_ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "xf86drm.h" -#include "xf86atomic.h" - -#include "list.h" - -#include "freedreno_drmif.h" -#include "freedreno_ringbuffer.h" -#include "drm.h" - -struct fd_device_funcs { - int (*bo_new_handle)(struct fd_device *dev, uint32_t size, - uint32_t flags, uint32_t *handle); - struct fd_bo * (*bo_from_handle)(struct fd_device *dev, - uint32_t size, uint32_t handle); - struct fd_pipe * (*pipe_new)(struct fd_device *dev, enum fd_pipe_id id); - void (*destroy)(struct fd_device *dev); -}; - -struct fd_bo_bucket { - uint32_t size; - struct list_head list; -}; - -struct fd_device { - int fd; - atomic_t refcnt; - - /* tables to keep track of bo's, to avoid "evil-twin" fd_bo objects: - * - * handle_table: maps handle to fd_bo - * name_table: maps flink name to fd_bo - * - * We end up needing two tables, because DRM_IOCTL_GEM_OPEN always - * returns a new handle. So we need to figure out if the bo is already - * open in the process first, before calling gem-open. - */ - void *handle_table, *name_table; - - struct fd_device_funcs *funcs; - - struct fd_bo_bucket cache_bucket[14 * 4]; - int num_buckets; - time_t time; - - int closefd; /* call close(fd) upon destruction */ -}; - -void fd_cleanup_bo_cache(struct fd_device *dev, time_t time); - -/* for where @table_lock is already held: */ -void fd_device_del_locked(struct fd_device *dev); - -struct fd_pipe_funcs { - struct fd_ringbuffer * (*ringbuffer_new)(struct fd_pipe *pipe, uint32_t size); - int (*get_param)(struct fd_pipe *pipe, enum fd_param_id param, uint64_t *value); - int (*wait)(struct fd_pipe *pipe, uint32_t timestamp); - void (*destroy)(struct fd_pipe *pipe); -}; - -struct fd_pipe { - struct fd_device *dev; - enum fd_pipe_id id; - struct fd_pipe_funcs *funcs; -}; - -struct fd_ringmarker { - struct fd_ringbuffer *ring; - uint32_t *cur; -}; - -struct fd_ringbuffer_funcs { - void * (*hostptr)(struct fd_ringbuffer *ring); - int (*flush)(struct fd_ringbuffer *ring, uint32_t *last_start); - void (*emit_reloc)(struct fd_ringbuffer *ring, - const struct fd_reloc *reloc); - void (*emit_reloc_ring)(struct fd_ringbuffer *ring, - struct fd_ringmarker *target, struct fd_ringmarker *end); - void (*destroy)(struct fd_ringbuffer *ring); -}; - -struct fd_bo_funcs { - int (*offset)(struct fd_bo *bo, uint64_t *offset); - int (*cpu_prep)(struct fd_bo *bo, struct fd_pipe *pipe, uint32_t op); - void (*cpu_fini)(struct fd_bo *bo); - void (*destroy)(struct fd_bo *bo); -}; - -struct fd_bo { - struct fd_device *dev; - uint32_t size; - uint32_t handle; - uint32_t name; - void *map; - atomic_t refcnt; - struct fd_bo_funcs *funcs; - - int bo_reuse; - struct list_head list; /* bucket-list entry */ - time_t free_time; /* time when added to bucket-list */ -}; - -struct fd_bo *fd_bo_from_handle(struct fd_device *dev, - uint32_t handle, uint32_t size); - -#define ALIGN(v,a) (((v) + (a) - 1) & ~((a) - 1)) -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) - -#define enable_debug 0 /* TODO make dynamic */ - -#define INFO_MSG(fmt, ...) \ - do { drmMsg("[I] "fmt " (%s:%d)\n", \ - ##__VA_ARGS__, __FUNCTION__, __LINE__); } while (0) -#define DEBUG_MSG(fmt, ...) \ - do if (enable_debug) { drmMsg("[D] "fmt " (%s:%d)\n", \ - ##__VA_ARGS__, __FUNCTION__, __LINE__); } while (0) -#define WARN_MSG(fmt, ...) \ - do { drmMsg("[W] "fmt " (%s:%d)\n", \ - ##__VA_ARGS__, __FUNCTION__, __LINE__); } while (0) -#define ERROR_MSG(fmt, ...) \ - do { drmMsg("[E] " fmt " (%s:%d)\n", \ - ##__VA_ARGS__, __FUNCTION__, __LINE__); } while (0) - -#define U642VOID(x) ((void *)(unsigned long)(x)) -#define VOID2U64(x) ((uint64_t)(unsigned long)(x)) - -#endif /* FREEDRENO_PRIV_H_ */ diff -Nru libdrm-2.4.52/freedreno/freedreno_ringbuffer.c libdrm-2.4.52+really2.4.21/freedreno/freedreno_ringbuffer.c --- libdrm-2.4.52/freedreno/freedreno_ringbuffer.c 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/freedreno_ringbuffer.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,138 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2012 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#include - -#include "freedreno_drmif.h" -#include "freedreno_priv.h" -#include "freedreno_ringbuffer.h" - -struct fd_ringbuffer * fd_ringbuffer_new(struct fd_pipe *pipe, - uint32_t size) -{ - struct fd_ringbuffer *ring; - - ring = pipe->funcs->ringbuffer_new(pipe, size); - if (!ring) - return NULL; - - ring->size = size; - ring->pipe = pipe; - ring->start = ring->funcs->hostptr(ring); - ring->end = &(ring->start[size/4]); - - ring->cur = ring->last_start = ring->start; - - return ring; -} - -void fd_ringbuffer_del(struct fd_ringbuffer *ring) -{ - ring->funcs->destroy(ring); -} - -/* ringbuffers which are IB targets should set the toplevel rb (ie. - * the IB source) as it's parent before emitting reloc's, to ensure - * the bookkeeping works out properly. - */ -void fd_ringbuffer_set_parent(struct fd_ringbuffer *ring, - struct fd_ringbuffer *parent) -{ - ring->parent = parent; -} - -void fd_ringbuffer_reset(struct fd_ringbuffer *ring) -{ - uint32_t *start = ring->start; - if (ring->pipe->id == FD_PIPE_2D) - start = &ring->start[0x140]; - ring->cur = ring->last_start = start; -} - -/* maybe get rid of this and use fd_ringmarker_flush() from DDX too? */ -int fd_ringbuffer_flush(struct fd_ringbuffer *ring) -{ - return ring->funcs->flush(ring, ring->last_start); -} - -uint32_t fd_ringbuffer_timestamp(struct fd_ringbuffer *ring) -{ - return ring->last_timestamp; -} - -void fd_ringbuffer_reloc(struct fd_ringbuffer *ring, - const struct fd_reloc *reloc) -{ - ring->funcs->emit_reloc(ring, reloc); -} - -void fd_ringbuffer_emit_reloc_ring(struct fd_ringbuffer *ring, - struct fd_ringmarker *target, struct fd_ringmarker *end) -{ - assert(target->ring == end->ring); - ring->funcs->emit_reloc_ring(ring, target, end); -} - -struct fd_ringmarker * fd_ringmarker_new(struct fd_ringbuffer *ring) -{ - struct fd_ringmarker *marker = NULL; - - marker = calloc(1, sizeof(*marker)); - if (!marker) { - ERROR_MSG("allocation failed"); - return NULL; - } - - marker->ring = ring; - - fd_ringmarker_mark(marker); - - return marker; -} - -void fd_ringmarker_del(struct fd_ringmarker *marker) -{ - free(marker); -} - -void fd_ringmarker_mark(struct fd_ringmarker *marker) -{ - marker->cur = marker->ring->cur; -} - -uint32_t fd_ringmarker_dwords(struct fd_ringmarker *start, - struct fd_ringmarker *end) -{ - return end->cur - start->cur; -} - -int fd_ringmarker_flush(struct fd_ringmarker *marker) -{ - struct fd_ringbuffer *ring = marker->ring; - return ring->funcs->flush(ring, marker->cur); -} diff -Nru libdrm-2.4.52/freedreno/freedreno_ringbuffer.h libdrm-2.4.52+really2.4.21/freedreno/freedreno_ringbuffer.h --- libdrm-2.4.52/freedreno/freedreno_ringbuffer.h 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/freedreno_ringbuffer.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2012 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#ifndef FREEDRENO_RINGBUFFER_H_ -#define FREEDRENO_RINGBUFFER_H_ - -#include - -/* the ringbuffer object is not opaque so that OUT_RING() type stuff - * can be inlined. Note that users should not make assumptions about - * the size of this struct.. more stuff will be added when we eventually - * have a kernel driver that can deal w/ reloc's.. - */ - -struct fd_ringbuffer_funcs; -struct fd_ringmarker; - -struct fd_ringbuffer { - int size; - uint32_t *cur, *end, *start, *last_start; - struct fd_pipe *pipe; - struct fd_ringbuffer_funcs *funcs; - uint32_t last_timestamp; - struct fd_ringbuffer *parent; -}; - -struct fd_ringbuffer * fd_ringbuffer_new(struct fd_pipe *pipe, - uint32_t size); -void fd_ringbuffer_del(struct fd_ringbuffer *ring); -void fd_ringbuffer_set_parent(struct fd_ringbuffer *ring, - struct fd_ringbuffer *parent); -void fd_ringbuffer_reset(struct fd_ringbuffer *ring); -int fd_ringbuffer_flush(struct fd_ringbuffer *ring); -uint32_t fd_ringbuffer_timestamp(struct fd_ringbuffer *ring); - -static inline void fd_ringbuffer_emit(struct fd_ringbuffer *ring, - uint32_t data) -{ - (*ring->cur++) = data; -} - -struct fd_reloc { - struct fd_bo *bo; -#define FD_RELOC_READ 0x0001 -#define FD_RELOC_WRITE 0x0002 - uint32_t flags; - uint32_t offset; - uint32_t or; - int32_t shift; -}; - -void fd_ringbuffer_reloc(struct fd_ringbuffer *ring, const struct fd_reloc *reloc); -void fd_ringbuffer_emit_reloc_ring(struct fd_ringbuffer *ring, - struct fd_ringmarker *target, struct fd_ringmarker *end); - -struct fd_ringmarker * fd_ringmarker_new(struct fd_ringbuffer *ring); -void fd_ringmarker_del(struct fd_ringmarker *marker); -void fd_ringmarker_mark(struct fd_ringmarker *marker); -uint32_t fd_ringmarker_dwords(struct fd_ringmarker *start, - struct fd_ringmarker *end); -int fd_ringmarker_flush(struct fd_ringmarker *marker); - -#endif /* FREEDRENO_RINGBUFFER_H_ */ diff -Nru libdrm-2.4.52/freedreno/kgsl/kgsl_bo.c libdrm-2.4.52+really2.4.21/freedreno/kgsl/kgsl_bo.c --- libdrm-2.4.52/freedreno/kgsl/kgsl_bo.c 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/kgsl/kgsl_bo.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,313 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2013 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#include "kgsl_priv.h" - -#include - -static int set_memtype(struct fd_device *dev, uint32_t handle, uint32_t flags) -{ - struct drm_kgsl_gem_memtype req = { - .handle = handle, - .type = flags & DRM_FREEDRENO_GEM_TYPE_MEM_MASK, - }; - - return drmCommandWrite(dev->fd, DRM_KGSL_GEM_SETMEMTYPE, - &req, sizeof(req)); -} - -static int bo_alloc(struct kgsl_bo *kgsl_bo) -{ - struct fd_bo *bo = &kgsl_bo->base; - if (!kgsl_bo->offset) { - struct drm_kgsl_gem_alloc req = { - .handle = bo->handle, - }; - int ret; - - /* if the buffer is already backed by pages then this - * doesn't actually do anything (other than giving us - * the offset) - */ - ret = drmCommandWriteRead(bo->dev->fd, DRM_KGSL_GEM_ALLOC, - &req, sizeof(req)); - if (ret) { - ERROR_MSG("alloc failed: %s", strerror(errno)); - return ret; - } - - kgsl_bo->offset = req.offset; - } - - return 0; -} - -static int kgsl_bo_offset(struct fd_bo *bo, uint64_t *offset) -{ - struct kgsl_bo *kgsl_bo = to_kgsl_bo(bo); - int ret = bo_alloc(kgsl_bo); - if (ret) - return ret; - *offset = kgsl_bo->offset; - return 0; -} - -static int kgsl_bo_cpu_prep(struct fd_bo *bo, struct fd_pipe *pipe, uint32_t op) -{ - uint32_t timestamp = kgsl_bo_get_timestamp(to_kgsl_bo(bo)); - - if (op & DRM_FREEDRENO_PREP_NOSYNC) { - uint32_t current; - int ret; - - /* special case for is_idle().. we can't really handle that - * properly in kgsl (perhaps we need a way to just disable - * the bo-cache for kgsl?) - */ - if (!pipe) - return -EBUSY; - - ret = kgsl_pipe_timestamp(to_kgsl_pipe(pipe), ¤t); - if (ret) - return ret; - - if (timestamp > current) - return -EBUSY; - - return 0; - } - - if (timestamp) - fd_pipe_wait(pipe, timestamp); - - return 0; -} - -static void kgsl_bo_cpu_fini(struct fd_bo *bo) -{ -} - -static void kgsl_bo_destroy(struct fd_bo *bo) -{ - struct kgsl_bo *kgsl_bo = to_kgsl_bo(bo); - free(kgsl_bo); - -} - -static struct fd_bo_funcs funcs = { - .offset = kgsl_bo_offset, - .cpu_prep = kgsl_bo_cpu_prep, - .cpu_fini = kgsl_bo_cpu_fini, - .destroy = kgsl_bo_destroy, -}; - -/* allocate a buffer handle: */ -int kgsl_bo_new_handle(struct fd_device *dev, - uint32_t size, uint32_t flags, uint32_t *handle) -{ - struct drm_kgsl_gem_create req = { - .size = size, - }; - int ret; - - ret = drmCommandWriteRead(dev->fd, DRM_KGSL_GEM_CREATE, - &req, sizeof(req)); - if (ret) - return ret; - - // TODO make flags match msm driver, since kgsl is legacy.. - // translate flags in kgsl.. - - set_memtype(dev, req.handle, flags); - - *handle = req.handle; - - return 0; -} - -/* allocate a new buffer object */ -struct fd_bo * kgsl_bo_from_handle(struct fd_device *dev, - uint32_t size, uint32_t handle) -{ - struct kgsl_bo *kgsl_bo; - struct fd_bo *bo; - unsigned i; - - kgsl_bo = calloc(1, sizeof(*kgsl_bo)); - if (!kgsl_bo) - return NULL; - - bo = &kgsl_bo->base; - bo->funcs = &funcs; - - for (i = 0; i < ARRAY_SIZE(kgsl_bo->list); i++) - list_inithead(&kgsl_bo->list[i]); - - return bo; -} - -struct fd_bo * fd_bo_from_fbdev(struct fd_pipe *pipe, - int fbfd, uint32_t size) -{ - struct drm_kgsl_gem_create_fd req = { - .fd = fbfd, - }; - struct fd_bo *bo; - struct kgsl_bo *kgsl_bo; - - if (!is_kgsl_pipe(pipe)) - return NULL; - - if (drmCommandWriteRead(pipe->dev->fd, DRM_KGSL_GEM_CREATE_FD, - &req, sizeof(req))) { - return NULL; - } - - bo = fd_bo_from_handle(pipe->dev, req.handle, size); - kgsl_bo = to_kgsl_bo(bo); - - /* this is fugly, but works around a bug in the kernel.. - * priv->memdesc.size never gets set, so getbufinfo ioctl - * thinks the buffer hasn't be allocate and fails - */ - if (bo && !kgsl_bo_gpuaddr(kgsl_bo, 0)) { - void *fbmem = mmap(NULL, size, PROT_READ | PROT_WRITE, - MAP_SHARED, fbfd, 0); - struct kgsl_map_user_mem req = { - .memtype = KGSL_USER_MEM_TYPE_ADDR, - .len = size, - .offset = 0, - .hostptr = (unsigned long)fbmem, - }; - int ret; - ret = ioctl(to_kgsl_pipe(pipe)->fd, IOCTL_KGSL_MAP_USER_MEM, &req); - if (ret) { - ERROR_MSG("mapping user mem failed: %s", - strerror(errno)); - goto fail; - } - kgsl_bo->gpuaddr = req.gpuaddr; - bo->map = fbmem; - } - - return bo; -fail: - if (bo) - fd_bo_del(bo); - return NULL; -} - - -uint32_t kgsl_bo_gpuaddr(struct kgsl_bo *kgsl_bo, uint32_t offset) -{ - struct fd_bo *bo = &kgsl_bo->base; - if (!kgsl_bo->gpuaddr) { - struct drm_kgsl_gem_bufinfo req = { - .handle = bo->handle, - }; - int ret; - - ret = bo_alloc(kgsl_bo); - if (ret) { - return ret; - } - - ret = drmCommandWriteRead(bo->dev->fd, DRM_KGSL_GEM_GET_BUFINFO, - &req, sizeof(req)); - if (ret) { - ERROR_MSG("get bufinfo failed: %s", strerror(errno)); - return 0; - } - - kgsl_bo->gpuaddr = req.gpuaddr[0]; - } - return kgsl_bo->gpuaddr + offset; -} - -/* - * Super-cheezy way to synchronization between mesa and ddx.. the - * SET_ACTIVE ioctl gives us a way to stash a 32b # w/ a GEM bo, and - * GET_BUFINFO gives us a way to retrieve it. We use this to stash - * the timestamp of the last ISSUEIBCMDS on the buffer. - * - * To avoid an obscene amount of syscalls, we: - * 1) Only set the timestamp for buffers w/ an flink name, ie. - * only buffers shared across processes. This is enough to - * catch the DRI2 buffers. - * 2) Only set the timestamp for buffers submitted to the 3d ring - * and only check the timestamps on buffers submitted to the - * 2d ring. This should be enough to handle synchronizing of - * presentation blit. We could do synchronization in the other - * direction too, but that would be problematic if we are using - * the 3d ring from DDX, since client side wouldn't know this. - * - * The waiting on timestamp happens before flush, and setting of - * timestamp happens after flush. It is transparent to the user - * of libdrm_freedreno as all the tracking of buffers happens via - * _emit_reloc().. - */ - -void kgsl_bo_set_timestamp(struct kgsl_bo *kgsl_bo, uint32_t timestamp) -{ - struct fd_bo *bo = &kgsl_bo->base; - if (bo->name) { - struct drm_kgsl_gem_active req = { - .handle = bo->handle, - .active = timestamp, - }; - int ret; - - ret = drmCommandWrite(bo->dev->fd, DRM_KGSL_GEM_SET_ACTIVE, - &req, sizeof(req)); - if (ret) { - ERROR_MSG("set active failed: %s", strerror(errno)); - } - } -} - -uint32_t kgsl_bo_get_timestamp(struct kgsl_bo *kgsl_bo) -{ - struct fd_bo *bo = &kgsl_bo->base; - uint32_t timestamp = 0; - if (bo->name) { - struct drm_kgsl_gem_bufinfo req = { - .handle = bo->handle, - }; - int ret; - - ret = drmCommandWriteRead(bo->dev->fd, DRM_KGSL_GEM_GET_BUFINFO, - &req, sizeof(req)); - if (ret) { - ERROR_MSG("get bufinfo failed: %s", strerror(errno)); - return 0; - } - - timestamp = req.active; - } - return timestamp; -} diff -Nru libdrm-2.4.52/freedreno/kgsl/kgsl_device.c libdrm-2.4.52+really2.4.21/freedreno/kgsl/kgsl_device.c --- libdrm-2.4.52/freedreno/kgsl/kgsl_device.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/kgsl/kgsl_device.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2013 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#include -#include -#include - -#include "kgsl_priv.h" - -static void kgsl_device_destroy(struct fd_device *dev) -{ - struct kgsl_device *kgsl_dev = to_kgsl_device(dev); - free(kgsl_dev); -} - -static struct fd_device_funcs funcs = { - .bo_new_handle = kgsl_bo_new_handle, - .bo_from_handle = kgsl_bo_from_handle, - .pipe_new = kgsl_pipe_new, - .destroy = kgsl_device_destroy, -}; - -struct fd_device * kgsl_device_new(int fd) -{ - struct kgsl_device *kgsl_dev; - struct fd_device *dev; - - kgsl_dev = calloc(1, sizeof(*kgsl_dev)); - if (!kgsl_dev) - return NULL; - - dev = &kgsl_dev->base; - dev->funcs = &funcs; - - return dev; -} diff -Nru libdrm-2.4.52/freedreno/kgsl/kgsl_drm.h libdrm-2.4.52+really2.4.21/freedreno/kgsl/kgsl_drm.h --- libdrm-2.4.52/freedreno/kgsl/kgsl_drm.h 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/kgsl/kgsl_drm.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,192 +0,0 @@ -#ifndef _KGSL_DRM_H_ -#define _KGSL_DRM_H_ - -#include "drm.h" - -#define DRM_KGSL_GEM_CREATE 0x00 -#define DRM_KGSL_GEM_PREP 0x01 -#define DRM_KGSL_GEM_SETMEMTYPE 0x02 -#define DRM_KGSL_GEM_GETMEMTYPE 0x03 -#define DRM_KGSL_GEM_MMAP 0x04 -#define DRM_KGSL_GEM_ALLOC 0x05 -#define DRM_KGSL_GEM_BIND_GPU 0x06 -#define DRM_KGSL_GEM_UNBIND_GPU 0x07 - -#define DRM_KGSL_GEM_GET_BUFINFO 0x08 -#define DRM_KGSL_GEM_SET_BUFCOUNT 0x09 -#define DRM_KGSL_GEM_SET_ACTIVE 0x0A -#define DRM_KGSL_GEM_LOCK_HANDLE 0x0B -#define DRM_KGSL_GEM_UNLOCK_HANDLE 0x0C -#define DRM_KGSL_GEM_UNLOCK_ON_TS 0x0D -#define DRM_KGSL_GEM_CREATE_FD 0x0E - -#define DRM_IOCTL_KGSL_GEM_CREATE \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_CREATE, struct drm_kgsl_gem_create) - -#define DRM_IOCTL_KGSL_GEM_PREP \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_PREP, struct drm_kgsl_gem_prep) - -#define DRM_IOCTL_KGSL_GEM_SETMEMTYPE \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SETMEMTYPE, \ -struct drm_kgsl_gem_memtype) - -#define DRM_IOCTL_KGSL_GEM_GETMEMTYPE \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GETMEMTYPE, \ -struct drm_kgsl_gem_memtype) - -#define DRM_IOCTL_KGSL_GEM_MMAP \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_MMAP, struct drm_kgsl_gem_mmap) - -#define DRM_IOCTL_KGSL_GEM_ALLOC \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_ALLOC, struct drm_kgsl_gem_alloc) - -#define DRM_IOCTL_KGSL_GEM_BIND_GPU \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_BIND_GPU, struct drm_kgsl_gem_bind_gpu) - -#define DRM_IOCTL_KGSL_GEM_UNBIND_GPU \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_UNBIND_GPU, \ -struct drm_kgsl_gem_bind_gpu) - -#define DRM_IOCTL_KGSL_GEM_GET_BUFINFO \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GET_BUFINFO, \ - struct drm_kgsl_gem_bufinfo) - -#define DRM_IOCTL_KGSL_GEM_SET_BUFCOUNT \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SET_BUFCOUNT, \ - struct drm_kgsl_gem_bufcount) - -#define DRM_IOCTL_KGSL_GEM_SET_ACTIVE \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SET_ACTIVE, \ - struct drm_kgsl_gem_active) - -#define DRM_IOCTL_KGSL_GEM_LOCK_HANDLE \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_LOCK_HANDLE, \ -struct drm_kgsl_gem_lock_handles) - -#define DRM_IOCTL_KGSL_GEM_UNLOCK_HANDLE \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_UNLOCK_HANDLE, \ -struct drm_kgsl_gem_unlock_handles) - -#define DRM_IOCTL_KGSL_GEM_UNLOCK_ON_TS \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_UNLOCK_ON_TS, \ -struct drm_kgsl_gem_unlock_on_ts) - -#define DRM_IOCTL_KGSL_GEM_CREATE_FD \ -DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_CREATE_FD, \ -struct drm_kgsl_gem_create_fd) - -/* Maximum number of sub buffers per GEM object */ -#define DRM_KGSL_GEM_MAX_BUFFERS 2 - -/* Memory types - these define the source and caching policies - of the GEM memory chunk */ - -/* Legacy definitions left for compatability */ - -#define DRM_KGSL_GEM_TYPE_EBI 0 -#define DRM_KGSL_GEM_TYPE_SMI 1 -#define DRM_KGSL_GEM_TYPE_KMEM 2 -#define DRM_KGSL_GEM_TYPE_KMEM_NOCACHE 3 -#define DRM_KGSL_GEM_TYPE_MEM_MASK 0xF - -/* Contiguous memory (PMEM) */ -#define DRM_KGSL_GEM_TYPE_PMEM 0x000100 - -/* PMEM memory types */ -#define DRM_KGSL_GEM_PMEM_EBI 0x001000 -#define DRM_KGSL_GEM_PMEM_SMI 0x002000 - -/* Standard paged memory */ -#define DRM_KGSL_GEM_TYPE_MEM 0x010000 - -/* Caching controls */ -#define DRM_KGSL_GEM_CACHE_NONE 0x000000 -#define DRM_KGSL_GEM_CACHE_WCOMBINE 0x100000 -#define DRM_KGSL_GEM_CACHE_WTHROUGH 0x200000 -#define DRM_KGSL_GEM_CACHE_WBACK 0x400000 -#define DRM_KGSL_GEM_CACHE_WBACKWA 0x800000 -#define DRM_KGSL_GEM_CACHE_MASK 0xF00000 - -/* FD based objects */ -#define DRM_KGSL_GEM_TYPE_FD_FBMEM 0x1000000 -#define DRM_KGSL_GEM_TYPE_FD_MASK 0xF000000 - -/* Timestamp types */ -#define DRM_KGSL_GEM_TS_3D 0x00000430 -#define DRM_KGSL_GEM_TS_2D 0x00000180 - - -struct drm_kgsl_gem_create { - uint32_t size; - uint32_t handle; -}; - -struct drm_kgsl_gem_prep { - uint32_t handle; - uint32_t phys; - uint64_t offset; -}; - -struct drm_kgsl_gem_memtype { - uint32_t handle; - uint32_t type; -}; - -struct drm_kgsl_gem_mmap { - uint32_t handle; - uint32_t size; - uint32_t hostptr; - uint64_t offset; -}; - -struct drm_kgsl_gem_alloc { - uint32_t handle; - uint64_t offset; -}; - -struct drm_kgsl_gem_bind_gpu { - uint32_t handle; - uint32_t gpuptr; -}; - -struct drm_kgsl_gem_bufinfo { - uint32_t handle; - uint32_t count; - uint32_t active; - uint32_t offset[DRM_KGSL_GEM_MAX_BUFFERS]; - uint32_t gpuaddr[DRM_KGSL_GEM_MAX_BUFFERS]; -}; - -struct drm_kgsl_gem_bufcount { - uint32_t handle; - uint32_t bufcount; -}; - -struct drm_kgsl_gem_active { - uint32_t handle; - uint32_t active; -}; - -struct drm_kgsl_gem_lock_handles { - uint32_t num_handles; - uint32_t *handle_list; - uint32_t pid; - uint32_t lock_id; /* Returned lock id used for unlocking */ -}; - -struct drm_kgsl_gem_unlock_handles { - uint32_t lock_id; -}; - -struct drm_kgsl_gem_unlock_on_ts { - uint32_t lock_id; - uint32_t timestamp; /* This field is a hw generated ts */ - uint32_t type; /* Which pipe to check for ts generation */ -}; - -struct drm_kgsl_gem_create_fd { - uint32_t fd; - uint32_t handle; -}; - -#endif diff -Nru libdrm-2.4.52/freedreno/kgsl/kgsl_pipe.c libdrm-2.4.52+really2.4.21/freedreno/kgsl/kgsl_pipe.c --- libdrm-2.4.52/freedreno/kgsl/kgsl_pipe.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/kgsl/kgsl_pipe.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,264 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2013 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#include "kgsl_priv.h" - - -static int kgsl_pipe_get_param(struct fd_pipe *pipe, - enum fd_param_id param, uint64_t *value) -{ - struct kgsl_pipe *kgsl_pipe = to_kgsl_pipe(pipe); - switch (param) { - case FD_DEVICE_ID: - *value = kgsl_pipe->devinfo.device_id; - return 0; - case FD_GPU_ID: - *value = kgsl_pipe->devinfo.gpu_id; - return 0; - case FD_GMEM_SIZE: - *value = kgsl_pipe->devinfo.gmem_sizebytes; - return 0; - default: - ERROR_MSG("invalid param id: %d", param); - return -1; - } -} - -static int kgsl_pipe_wait(struct fd_pipe *pipe, uint32_t timestamp) -{ - struct kgsl_pipe *kgsl_pipe = to_kgsl_pipe(pipe); - struct kgsl_device_waittimestamp req = { - .timestamp = timestamp, - .timeout = 5000, - }; - int ret; - - do { - ret = ioctl(kgsl_pipe->fd, IOCTL_KGSL_DEVICE_WAITTIMESTAMP, &req); - } while ((ret == -1) && ((errno == EINTR) || (errno == EAGAIN))); - if (ret) - ERROR_MSG("waittimestamp failed! %d (%s)", ret, strerror(errno)); - else - kgsl_pipe_process_pending(kgsl_pipe, timestamp); - return ret; -} - -int kgsl_pipe_timestamp(struct kgsl_pipe *kgsl_pipe, uint32_t *timestamp) -{ - struct kgsl_cmdstream_readtimestamp req = { - .type = KGSL_TIMESTAMP_RETIRED - }; - int ret = ioctl(kgsl_pipe->fd, IOCTL_KGSL_CMDSTREAM_READTIMESTAMP, &req); - if (ret) { - ERROR_MSG("readtimestamp failed! %d (%s)", - ret, strerror(errno)); - return ret; - } - *timestamp = req.timestamp; - return 0; -} - -static void kgsl_pipe_destroy(struct fd_pipe *pipe) -{ - struct kgsl_pipe *kgsl_pipe = to_kgsl_pipe(pipe); - struct kgsl_drawctxt_destroy req = { - .drawctxt_id = kgsl_pipe->drawctxt_id, - }; - - if (kgsl_pipe->drawctxt_id) - ioctl(kgsl_pipe->fd, IOCTL_KGSL_DRAWCTXT_DESTROY, &req); - - if (kgsl_pipe->fd) - close(kgsl_pipe->fd); - - free(kgsl_pipe); -} - -static struct fd_pipe_funcs funcs = { - .ringbuffer_new = kgsl_ringbuffer_new, - .get_param = kgsl_pipe_get_param, - .wait = kgsl_pipe_wait, - .destroy = kgsl_pipe_destroy, -}; - -int is_kgsl_pipe(struct fd_pipe *pipe) -{ - return pipe->funcs == &funcs; -} - -/* add buffer to submit list when it is referenced in cmdstream: */ -void kgsl_pipe_add_submit(struct kgsl_pipe *kgsl_pipe, - struct kgsl_bo *kgsl_bo) -{ - struct fd_pipe *pipe = &kgsl_pipe->base; - struct fd_bo *bo = &kgsl_bo->base; - struct list_head *list = &kgsl_bo->list[pipe->id]; - if (LIST_IS_EMPTY(list)) { - fd_bo_ref(bo); - } else { - list_del(list); - } - list_addtail(list, &kgsl_pipe->submit_list); -} - -/* prepare buffers on submit list before flush: */ -void kgsl_pipe_pre_submit(struct kgsl_pipe *kgsl_pipe) -{ - struct fd_pipe *pipe = &kgsl_pipe->base; - struct kgsl_bo *kgsl_bo = NULL; - - if (!kgsl_pipe->p3d) - kgsl_pipe->p3d = fd_pipe_new(pipe->dev, FD_PIPE_3D); - - LIST_FOR_EACH_ENTRY(kgsl_bo, &kgsl_pipe->submit_list, list[pipe->id]) { - uint32_t timestamp = kgsl_bo_get_timestamp(kgsl_bo); - if (timestamp) - fd_pipe_wait(kgsl_pipe->p3d, timestamp); - } -} - -/* process buffers on submit list after flush: */ -void kgsl_pipe_post_submit(struct kgsl_pipe *kgsl_pipe, uint32_t timestamp) -{ - struct fd_pipe *pipe = &kgsl_pipe->base; - struct kgsl_bo *kgsl_bo = NULL, *tmp; - - LIST_FOR_EACH_ENTRY_SAFE(kgsl_bo, tmp, &kgsl_pipe->submit_list, list[pipe->id]) { - struct list_head *list = &kgsl_bo->list[pipe->id]; - list_del(list); - kgsl_bo->timestamp[pipe->id] = timestamp; - list_addtail(list, &kgsl_pipe->pending_list); - - kgsl_bo_set_timestamp(kgsl_bo, timestamp); - } - - if (!kgsl_pipe_timestamp(kgsl_pipe, ×tamp)) - kgsl_pipe_process_pending(kgsl_pipe, timestamp); -} - -void kgsl_pipe_process_pending(struct kgsl_pipe *kgsl_pipe, uint32_t timestamp) -{ - struct fd_pipe *pipe = &kgsl_pipe->base; - struct kgsl_bo *kgsl_bo = NULL, *tmp; - - LIST_FOR_EACH_ENTRY_SAFE(kgsl_bo, tmp, &kgsl_pipe->pending_list, list[pipe->id]) { - struct list_head *list = &kgsl_bo->list[pipe->id]; - if (kgsl_bo->timestamp[pipe->id] > timestamp) - return; - list_delinit(list); - kgsl_bo->timestamp[pipe->id] = 0; - fd_bo_del(&kgsl_bo->base); - } -} - -static int getprop(int fd, enum kgsl_property_type type, - void *value, int sizebytes) -{ - struct kgsl_device_getproperty req = { - .type = type, - .value = value, - .sizebytes = sizebytes, - }; - return ioctl(fd, IOCTL_KGSL_DEVICE_GETPROPERTY, &req); -} - -#define GETPROP(fd, prop, x) do { \ - if (getprop((fd), KGSL_PROP_##prop, &(x), sizeof(x))) { \ - ERROR_MSG("failed to get property: " #prop); \ - goto fail; \ - } } while (0) - - -struct fd_pipe * kgsl_pipe_new(struct fd_device *dev, enum fd_pipe_id id) -{ - static const char *paths[] = { - [FD_PIPE_3D] = "/dev/kgsl-3d0", - [FD_PIPE_2D] = "/dev/kgsl-2d0", - }; - struct kgsl_drawctxt_create req = { - .flags = 0x2000, /* ??? */ - }; - struct kgsl_pipe *kgsl_pipe = NULL; - struct fd_pipe *pipe = NULL; - int ret, fd; - - fd = open(paths[id], O_RDWR); - if (fd < 0) { - ERROR_MSG("could not open %s device: %d (%s)", - paths[id], fd, strerror(errno)); - goto fail; - } - - ret = ioctl(fd, IOCTL_KGSL_DRAWCTXT_CREATE, &req); - if (ret) { - ERROR_MSG("failed to allocate context: %d (%s)", - ret, strerror(errno)); - goto fail; - } - - kgsl_pipe = calloc(1, sizeof(*kgsl_pipe)); - if (!kgsl_pipe) { - ERROR_MSG("allocation failed"); - goto fail; - } - - pipe = &kgsl_pipe->base; - pipe->funcs = &funcs; - - kgsl_pipe->fd = fd; - kgsl_pipe->drawctxt_id = req.drawctxt_id; - - list_inithead(&kgsl_pipe->submit_list); - list_inithead(&kgsl_pipe->pending_list); - - GETPROP(fd, VERSION, kgsl_pipe->version); - GETPROP(fd, DEVICE_INFO, kgsl_pipe->devinfo); - - INFO_MSG("Pipe Info:"); - INFO_MSG(" Device: %s", paths[id]); - INFO_MSG(" Chip-id: %d.%d.%d.%d", - (kgsl_pipe->devinfo.chip_id >> 24) & 0xff, - (kgsl_pipe->devinfo.chip_id >> 16) & 0xff, - (kgsl_pipe->devinfo.chip_id >> 8) & 0xff, - (kgsl_pipe->devinfo.chip_id >> 0) & 0xff); - INFO_MSG(" Device-id: %d", kgsl_pipe->devinfo.device_id); - INFO_MSG(" GPU-id: %d", kgsl_pipe->devinfo.gpu_id); - INFO_MSG(" MMU enabled: %d", kgsl_pipe->devinfo.mmu_enabled); - INFO_MSG(" GMEM Base addr: 0x%08x", kgsl_pipe->devinfo.gmem_gpubaseaddr); - INFO_MSG(" GMEM size: 0x%08x", kgsl_pipe->devinfo.gmem_sizebytes); - INFO_MSG(" Driver version: %d.%d", - kgsl_pipe->version.drv_major, kgsl_pipe->version.drv_minor); - INFO_MSG(" Device version: %d.%d", - kgsl_pipe->version.dev_major, kgsl_pipe->version.dev_minor); - - return pipe; -fail: - if (pipe) - fd_pipe_del(pipe); - return NULL; -} diff -Nru libdrm-2.4.52/freedreno/kgsl/kgsl_priv.h libdrm-2.4.52+really2.4.21/freedreno/kgsl/kgsl_priv.h --- libdrm-2.4.52/freedreno/kgsl/kgsl_priv.h 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/kgsl/kgsl_priv.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,115 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2013 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#ifndef KGSL_PRIV_H_ -#define KGSL_PRIV_H_ - -#include "freedreno_priv.h" -#include "msm_kgsl.h" -#include "kgsl_drm.h" - -struct kgsl_device { - struct fd_device base; -}; - -static inline struct kgsl_device * to_kgsl_device(struct fd_device *x) -{ - return (struct kgsl_device *)x; -} - -struct kgsl_pipe { - struct fd_pipe base; - - int fd; - uint32_t drawctxt_id; - - /* device properties: */ - struct kgsl_version version; - struct kgsl_devinfo devinfo; - - /* list of bo's that are referenced in ringbuffer but not - * submitted yet: - */ - struct list_head submit_list; - - /* list of bo's that have been submitted but timestamp has - * not passed yet (so still ref'd in active cmdstream) - */ - struct list_head pending_list; - - /* if we are the 2d pipe, and want to wait on a timestamp - * from 3d, we need to also internally open the 3d pipe: - */ - struct fd_pipe *p3d; -}; - -static inline struct kgsl_pipe * to_kgsl_pipe(struct fd_pipe *x) -{ - return (struct kgsl_pipe *)x; -} - -int is_kgsl_pipe(struct fd_pipe *pipe); - -struct kgsl_bo { - struct fd_bo base; - uint64_t offset; - uint32_t gpuaddr; - /* timestamp (per pipe) for bo's in a pipe's pending_list: */ - uint32_t timestamp[FD_PIPE_MAX]; - /* list-node for pipe's submit_list or pending_list */ - struct list_head list[FD_PIPE_MAX]; -}; - -static inline struct kgsl_bo * to_kgsl_bo(struct fd_bo *x) -{ - return (struct kgsl_bo *)x; -} - - -struct fd_device * kgsl_device_new(int fd); - -int kgsl_pipe_timestamp(struct kgsl_pipe *kgsl_pipe, uint32_t *timestamp); -void kgsl_pipe_add_submit(struct kgsl_pipe *pipe, struct kgsl_bo *bo); -void kgsl_pipe_pre_submit(struct kgsl_pipe *pipe); -void kgsl_pipe_post_submit(struct kgsl_pipe *pipe, uint32_t timestamp); -void kgsl_pipe_process_pending(struct kgsl_pipe *pipe, uint32_t timestamp); -struct fd_pipe * kgsl_pipe_new(struct fd_device *dev, enum fd_pipe_id id); - -struct fd_ringbuffer * kgsl_ringbuffer_new(struct fd_pipe *pipe, - uint32_t size); - -int kgsl_bo_new_handle(struct fd_device *dev, - uint32_t size, uint32_t flags, uint32_t *handle); -struct fd_bo * kgsl_bo_from_handle(struct fd_device *dev, - uint32_t size, uint32_t handle); - -uint32_t kgsl_bo_gpuaddr(struct kgsl_bo *bo, uint32_t offset); -void kgsl_bo_set_timestamp(struct kgsl_bo *bo, uint32_t timestamp); -uint32_t kgsl_bo_get_timestamp(struct kgsl_bo *bo); - -#endif /* KGSL_PRIV_H_ */ diff -Nru libdrm-2.4.52/freedreno/kgsl/kgsl_ringbuffer.c libdrm-2.4.52+really2.4.21/freedreno/kgsl/kgsl_ringbuffer.c --- libdrm-2.4.52/freedreno/kgsl/kgsl_ringbuffer.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/kgsl/kgsl_ringbuffer.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,224 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2013 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#include - -#include "freedreno_ringbuffer.h" -#include "kgsl_priv.h" - - -/* because kgsl tries to validate the gpuaddr on kernel side in ISSUEIBCMDS, - * we can't use normal gem bo's for ringbuffer.. someday the kernel part - * needs to be reworked into a single sane drm driver :-/ - */ -struct kgsl_rb_bo { - struct kgsl_pipe *pipe; - void *hostptr; - uint32_t gpuaddr; - uint32_t size; -}; - -struct kgsl_ringbuffer { - struct fd_ringbuffer base; - struct kgsl_rb_bo *bo; -}; - -static inline struct kgsl_ringbuffer * to_kgsl_ringbuffer(struct fd_ringbuffer *x) -{ - return (struct kgsl_ringbuffer *)x; -} - -static void kgsl_rb_bo_del(struct kgsl_rb_bo *bo) -{ - struct kgsl_sharedmem_free req = { - .gpuaddr = bo->gpuaddr, - }; - int ret; - - munmap(bo->hostptr, bo->size); - - ret = ioctl(bo->pipe->fd, IOCTL_KGSL_SHAREDMEM_FREE, &req); - if (ret) { - ERROR_MSG("sharedmem free failed: %s", strerror(errno)); - } - - free(bo); -} - -static struct kgsl_rb_bo * kgsl_rb_bo_new(struct kgsl_pipe *pipe, uint32_t size) -{ - struct kgsl_rb_bo *bo; - struct kgsl_gpumem_alloc req = { - .size = ALIGN(size, 4096), - .flags = KGSL_MEMFLAGS_GPUREADONLY, - }; - int ret; - - bo = calloc(1, sizeof(*bo)); - if (!bo) { - ERROR_MSG("allocation failed"); - return NULL; - } - ret = ioctl(pipe->fd, IOCTL_KGSL_GPUMEM_ALLOC, &req); - if (ret) { - ERROR_MSG("gpumem allocation failed: %s", strerror(errno)); - goto fail; - } - - bo->pipe = pipe; - bo->gpuaddr = req.gpuaddr; - bo->size = size; - bo->hostptr = mmap(NULL, size, PROT_WRITE|PROT_READ, - MAP_SHARED, pipe->fd, req.gpuaddr); - - return bo; -fail: - if (bo) - kgsl_rb_bo_del(bo); - return NULL; -} - -static void * kgsl_ringbuffer_hostptr(struct fd_ringbuffer *ring) -{ - struct kgsl_ringbuffer *kgsl_ring = to_kgsl_ringbuffer(ring); - return kgsl_ring->bo->hostptr; -} - -static int kgsl_ringbuffer_flush(struct fd_ringbuffer *ring, uint32_t *last_start) -{ - struct kgsl_ringbuffer *kgsl_ring = to_kgsl_ringbuffer(ring); - struct kgsl_pipe *kgsl_pipe = to_kgsl_pipe(ring->pipe); - uint32_t offset = (uint8_t *)last_start - (uint8_t *)ring->start; - struct kgsl_ibdesc ibdesc = { - .gpuaddr = kgsl_ring->bo->gpuaddr + offset, - .hostptr = last_start, - .sizedwords = ring->cur - last_start, - }; - struct kgsl_ringbuffer_issueibcmds req = { - .drawctxt_id = kgsl_pipe->drawctxt_id, - .ibdesc_addr = (unsigned long)&ibdesc, - .numibs = 1, - .flags = KGSL_CONTEXT_SUBMIT_IB_LIST, - }; - int ret; - - kgsl_pipe_pre_submit(kgsl_pipe); - - /* z180_cmdstream_issueibcmds() is made of fail: */ - if (ring->pipe->id == FD_PIPE_2D) { - /* fix up size field in last cmd packet */ - uint32_t last_size = (uint32_t)(ring->cur - last_start); - /* 5 is length of first packet, 2 for the two 7f000000's */ - last_start[2] = last_size - (5 + 2); - ibdesc.gpuaddr = kgsl_ring->bo->gpuaddr; - ibdesc.hostptr = kgsl_ring->bo->hostptr; - ibdesc.sizedwords = 0x145; - req.timestamp = (uint32_t)kgsl_ring->bo->hostptr; - } - - do { - ret = ioctl(kgsl_pipe->fd, IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS, &req); - } while ((ret == -1) && ((errno == EINTR) || (errno == EAGAIN))); - if (ret) - ERROR_MSG("issueibcmds failed! %d (%s)", ret, strerror(errno)); - - ring->last_timestamp = req.timestamp; - ring->last_start = ring->cur; - - kgsl_pipe_post_submit(kgsl_pipe, req.timestamp); - - return ret; -} - -static void kgsl_ringbuffer_emit_reloc(struct fd_ringbuffer *ring, - const struct fd_reloc *r) -{ - struct kgsl_bo *kgsl_bo = to_kgsl_bo(r->bo); - uint32_t addr = kgsl_bo_gpuaddr(kgsl_bo, r->offset); - assert(addr); - if (r->shift < 0) - addr >>= -r->shift; - else - addr <<= r->shift; - (*ring->cur++) = addr | r->or; - kgsl_pipe_add_submit(to_kgsl_pipe(ring->pipe), kgsl_bo); -} - -static void kgsl_ringbuffer_emit_reloc_ring(struct fd_ringbuffer *ring, - struct fd_ringmarker *target, struct fd_ringmarker *end) -{ - struct kgsl_ringbuffer *target_ring = to_kgsl_ringbuffer(target->ring); - (*ring->cur++) = target_ring->bo->gpuaddr + - (uint8_t *)target->cur - (uint8_t *)target->ring->start; -} - -static void kgsl_ringbuffer_destroy(struct fd_ringbuffer *ring) -{ - struct kgsl_ringbuffer *kgsl_ring = to_kgsl_ringbuffer(ring); - if (ring->last_timestamp) - fd_pipe_wait(ring->pipe, ring->last_timestamp); - if (kgsl_ring->bo) - kgsl_rb_bo_del(kgsl_ring->bo); - free(kgsl_ring); -} - -static struct fd_ringbuffer_funcs funcs = { - .hostptr = kgsl_ringbuffer_hostptr, - .flush = kgsl_ringbuffer_flush, - .emit_reloc = kgsl_ringbuffer_emit_reloc, - .emit_reloc_ring = kgsl_ringbuffer_emit_reloc_ring, - .destroy = kgsl_ringbuffer_destroy, -}; - -struct fd_ringbuffer * kgsl_ringbuffer_new(struct fd_pipe *pipe, - uint32_t size) -{ - struct kgsl_ringbuffer *kgsl_ring; - struct fd_ringbuffer *ring = NULL; - - kgsl_ring = calloc(1, sizeof(*kgsl_ring)); - if (!kgsl_ring) { - ERROR_MSG("allocation failed"); - goto fail; - } - - ring = &kgsl_ring->base; - ring->funcs = &funcs; - - kgsl_ring->bo = kgsl_rb_bo_new(to_kgsl_pipe(pipe), size); - if (!kgsl_ring->bo) { - ERROR_MSG("ringbuffer allocation failed"); - goto fail; - } - - return ring; -fail: - if (ring) - fd_ringbuffer_del(ring); - return NULL; -} diff -Nru libdrm-2.4.52/freedreno/kgsl/msm_kgsl.h libdrm-2.4.52+really2.4.21/freedreno/kgsl/msm_kgsl.h --- libdrm-2.4.52/freedreno/kgsl/msm_kgsl.h 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/kgsl/msm_kgsl.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,519 +0,0 @@ -#ifndef _MSM_KGSL_H -#define _MSM_KGSL_H - -#define KGSL_VERSION_MAJOR 3 -#define KGSL_VERSION_MINOR 11 - -/*context flags */ -#define KGSL_CONTEXT_SAVE_GMEM 0x00000001 -#define KGSL_CONTEXT_NO_GMEM_ALLOC 0x00000002 -#define KGSL_CONTEXT_SUBMIT_IB_LIST 0x00000004 -#define KGSL_CONTEXT_CTX_SWITCH 0x00000008 -#define KGSL_CONTEXT_PREAMBLE 0x00000010 -#define KGSL_CONTEXT_TRASH_STATE 0x00000020 -#define KGSL_CONTEXT_PER_CONTEXT_TS 0x00000040 - -#define KGSL_CONTEXT_INVALID 0xffffffff - -/* Memory allocayion flags */ -#define KGSL_MEMFLAGS_GPUREADONLY 0x01000000 - -/* generic flag values */ -#define KGSL_FLAGS_NORMALMODE 0x00000000 -#define KGSL_FLAGS_SAFEMODE 0x00000001 -#define KGSL_FLAGS_INITIALIZED0 0x00000002 -#define KGSL_FLAGS_INITIALIZED 0x00000004 -#define KGSL_FLAGS_STARTED 0x00000008 -#define KGSL_FLAGS_ACTIVE 0x00000010 -#define KGSL_FLAGS_RESERVED0 0x00000020 -#define KGSL_FLAGS_RESERVED1 0x00000040 -#define KGSL_FLAGS_RESERVED2 0x00000080 -#define KGSL_FLAGS_SOFT_RESET 0x00000100 -#define KGSL_FLAGS_PER_CONTEXT_TIMESTAMPS 0x00000200 - -/* Clock flags to show which clocks should be controled by a given platform */ -#define KGSL_CLK_SRC 0x00000001 -#define KGSL_CLK_CORE 0x00000002 -#define KGSL_CLK_IFACE 0x00000004 -#define KGSL_CLK_MEM 0x00000008 -#define KGSL_CLK_MEM_IFACE 0x00000010 -#define KGSL_CLK_AXI 0x00000020 - -/* - * Reset status values for context - */ -enum kgsl_ctx_reset_stat { - KGSL_CTX_STAT_NO_ERROR = 0x00000000, - KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT = 0x00000001, - KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT = 0x00000002, - KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT = 0x00000003 -}; - -#define KGSL_MAX_PWRLEVELS 5 - -#define KGSL_CONVERT_TO_MBPS(val) \ - (val*1000*1000U) - -/* device id */ -enum kgsl_deviceid { - KGSL_DEVICE_3D0 = 0x00000000, - KGSL_DEVICE_2D0 = 0x00000001, - KGSL_DEVICE_2D1 = 0x00000002, - KGSL_DEVICE_MAX = 0x00000003 -}; - -enum kgsl_user_mem_type { - KGSL_USER_MEM_TYPE_PMEM = 0x00000000, - KGSL_USER_MEM_TYPE_ASHMEM = 0x00000001, - KGSL_USER_MEM_TYPE_ADDR = 0x00000002, - KGSL_USER_MEM_TYPE_ION = 0x00000003, - KGSL_USER_MEM_TYPE_MAX = 0x00000004, -}; - -struct kgsl_devinfo { - - unsigned int device_id; - /* chip revision id - * coreid:8 majorrev:8 minorrev:8 patch:8 - */ - unsigned int chip_id; - unsigned int mmu_enabled; - unsigned int gmem_gpubaseaddr; - /* - * This field contains the adreno revision - * number 200, 205, 220, etc... - */ - unsigned int gpu_id; - unsigned int gmem_sizebytes; -}; - -/* this structure defines the region of memory that can be mmap()ed from this - driver. The timestamp fields are volatile because they are written by the - GPU -*/ -struct kgsl_devmemstore { - volatile unsigned int soptimestamp; - unsigned int sbz; - volatile unsigned int eoptimestamp; - unsigned int sbz2; - volatile unsigned int ts_cmp_enable; - unsigned int sbz3; - volatile unsigned int ref_wait_ts; - unsigned int sbz4; - unsigned int current_context; - unsigned int sbz5; -}; - -#define KGSL_MEMSTORE_OFFSET(ctxt_id, field) \ - ((ctxt_id)*sizeof(struct kgsl_devmemstore) + \ - offsetof(struct kgsl_devmemstore, field)) - -/* timestamp id*/ -enum kgsl_timestamp_type { - KGSL_TIMESTAMP_CONSUMED = 0x00000001, /* start-of-pipeline timestamp */ - KGSL_TIMESTAMP_RETIRED = 0x00000002, /* end-of-pipeline timestamp*/ - KGSL_TIMESTAMP_QUEUED = 0x00000003, -}; - -/* property types - used with kgsl_device_getproperty */ -enum kgsl_property_type { - KGSL_PROP_DEVICE_INFO = 0x00000001, - KGSL_PROP_DEVICE_SHADOW = 0x00000002, - KGSL_PROP_DEVICE_POWER = 0x00000003, - KGSL_PROP_SHMEM = 0x00000004, - KGSL_PROP_SHMEM_APERTURES = 0x00000005, - KGSL_PROP_MMU_ENABLE = 0x00000006, - KGSL_PROP_INTERRUPT_WAITS = 0x00000007, - KGSL_PROP_VERSION = 0x00000008, - KGSL_PROP_GPU_RESET_STAT = 0x00000009, - KGSL_PROP_PWRCTRL = 0x0000000E, -}; - -struct kgsl_shadowprop { - unsigned int gpuaddr; - unsigned int size; - unsigned int flags; /* contains KGSL_FLAGS_ values */ -}; - -struct kgsl_pwrlevel { - unsigned int gpu_freq; - unsigned int bus_freq; - unsigned int io_fraction; -}; - -struct kgsl_version { - unsigned int drv_major; - unsigned int drv_minor; - unsigned int dev_major; - unsigned int dev_minor; -}; - -#ifdef __KERNEL__ - -#define KGSL_3D0_REG_MEMORY "kgsl_3d0_reg_memory" -#define KGSL_3D0_IRQ "kgsl_3d0_irq" -#define KGSL_2D0_REG_MEMORY "kgsl_2d0_reg_memory" -#define KGSL_2D0_IRQ "kgsl_2d0_irq" -#define KGSL_2D1_REG_MEMORY "kgsl_2d1_reg_memory" -#define KGSL_2D1_IRQ "kgsl_2d1_irq" - -enum kgsl_iommu_context_id { - KGSL_IOMMU_CONTEXT_USER = 0, - KGSL_IOMMU_CONTEXT_PRIV = 1, -}; - -struct kgsl_iommu_ctx { - const char *iommu_ctx_name; - enum kgsl_iommu_context_id ctx_id; -}; - -struct kgsl_device_iommu_data { - const struct kgsl_iommu_ctx *iommu_ctxs; - int iommu_ctx_count; - unsigned int physstart; - unsigned int physend; -}; - -struct kgsl_device_platform_data { - struct kgsl_pwrlevel pwrlevel[KGSL_MAX_PWRLEVELS]; - int init_level; - int num_levels; - int (*set_grp_async)(void); - unsigned int idle_timeout; - bool strtstp_sleepwake; - unsigned int nap_allowed; - unsigned int clk_map; - unsigned int idle_needed; - struct msm_bus_scale_pdata *bus_scale_table; - struct kgsl_device_iommu_data *iommu_data; - int iommu_count; - struct msm_dcvs_core_info *core_info; -}; - -#endif - -/* structure holds list of ibs */ -struct kgsl_ibdesc { - unsigned int gpuaddr; - void *hostptr; - unsigned int sizedwords; - unsigned int ctrl; -}; - -/* ioctls */ -#define KGSL_IOC_TYPE 0x09 - -/* get misc info about the GPU - type should be a value from enum kgsl_property_type - value points to a structure that varies based on type - sizebytes is sizeof() that structure - for KGSL_PROP_DEVICE_INFO, use struct kgsl_devinfo - this structure contaings hardware versioning info. - for KGSL_PROP_DEVICE_SHADOW, use struct kgsl_shadowprop - this is used to find mmap() offset and sizes for mapping - struct kgsl_memstore into userspace. -*/ -struct kgsl_device_getproperty { - unsigned int type; - void *value; - unsigned int sizebytes; -}; - -#define IOCTL_KGSL_DEVICE_GETPROPERTY \ - _IOWR(KGSL_IOC_TYPE, 0x2, struct kgsl_device_getproperty) - -/* IOCTL_KGSL_DEVICE_READ (0x3) - removed 03/2012 - */ - -/* block until the GPU has executed past a given timestamp - * timeout is in milliseconds. - */ -struct kgsl_device_waittimestamp { - unsigned int timestamp; - unsigned int timeout; -}; - -#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP \ - _IOW(KGSL_IOC_TYPE, 0x6, struct kgsl_device_waittimestamp) - -struct kgsl_device_waittimestamp_ctxtid { - unsigned int context_id; - unsigned int timestamp; - unsigned int timeout; -}; - -#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP_CTXTID \ - _IOW(KGSL_IOC_TYPE, 0x7, struct kgsl_device_waittimestamp_ctxtid) - -/* issue indirect commands to the GPU. - * drawctxt_id must have been created with IOCTL_KGSL_DRAWCTXT_CREATE - * ibaddr and sizedwords must specify a subset of a buffer created - * with IOCTL_KGSL_SHAREDMEM_FROM_PMEM - * flags may be a mask of KGSL_CONTEXT_ values - * timestamp is a returned counter value which can be passed to - * other ioctls to determine when the commands have been executed by - * the GPU. - */ -struct kgsl_ringbuffer_issueibcmds { - unsigned int drawctxt_id; - unsigned int ibdesc_addr; - unsigned int numibs; - unsigned int timestamp; /*output param */ - unsigned int flags; -}; - -#define IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS \ - _IOWR(KGSL_IOC_TYPE, 0x10, struct kgsl_ringbuffer_issueibcmds) - -/* read the most recently executed timestamp value - * type should be a value from enum kgsl_timestamp_type - */ -struct kgsl_cmdstream_readtimestamp { - unsigned int type; - unsigned int timestamp; /*output param */ -}; - -#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP_OLD \ - _IOR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp) - -#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP \ - _IOWR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp) - -/* free memory when the GPU reaches a given timestamp. - * gpuaddr specify a memory region created by a - * IOCTL_KGSL_SHAREDMEM_FROM_PMEM call - * type should be a value from enum kgsl_timestamp_type - */ -struct kgsl_cmdstream_freememontimestamp { - unsigned int gpuaddr; - unsigned int type; - unsigned int timestamp; -}; - -#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP \ - _IOW(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp) - -/* Previous versions of this header had incorrectly defined - IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP as a read-only ioctl instead - of a write only ioctl. To ensure binary compatability, the following - #define will be used to intercept the incorrect ioctl -*/ - -#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP_OLD \ - _IOR(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp) - -/* create a draw context, which is used to preserve GPU state. - * The flags field may contain a mask KGSL_CONTEXT_* values - */ -struct kgsl_drawctxt_create { - unsigned int flags; - unsigned int drawctxt_id; /*output param */ -}; - -#define IOCTL_KGSL_DRAWCTXT_CREATE \ - _IOWR(KGSL_IOC_TYPE, 0x13, struct kgsl_drawctxt_create) - -/* destroy a draw context */ -struct kgsl_drawctxt_destroy { - unsigned int drawctxt_id; -}; - -#define IOCTL_KGSL_DRAWCTXT_DESTROY \ - _IOW(KGSL_IOC_TYPE, 0x14, struct kgsl_drawctxt_destroy) - -/* add a block of pmem, fb, ashmem or user allocated address - * into the GPU address space */ -struct kgsl_map_user_mem { - int fd; - unsigned int gpuaddr; /*output param */ - unsigned int len; - unsigned int offset; - unsigned int hostptr; /*input param */ - enum kgsl_user_mem_type memtype; - unsigned int reserved; /* May be required to add - params for another mem type */ -}; - -#define IOCTL_KGSL_MAP_USER_MEM \ - _IOWR(KGSL_IOC_TYPE, 0x15, struct kgsl_map_user_mem) - -struct kgsl_cmdstream_readtimestamp_ctxtid { - unsigned int context_id; - unsigned int type; - unsigned int timestamp; /*output param */ -}; - -#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP_CTXTID \ - _IOWR(KGSL_IOC_TYPE, 0x16, struct kgsl_cmdstream_readtimestamp_ctxtid) - -struct kgsl_cmdstream_freememontimestamp_ctxtid { - unsigned int context_id; - unsigned int gpuaddr; - unsigned int type; - unsigned int timestamp; -}; - -#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP_CTXTID \ - _IOW(KGSL_IOC_TYPE, 0x17, \ - struct kgsl_cmdstream_freememontimestamp_ctxtid) - -/* add a block of pmem or fb into the GPU address space */ -struct kgsl_sharedmem_from_pmem { - int pmem_fd; - unsigned int gpuaddr; /*output param */ - unsigned int len; - unsigned int offset; -}; - -#define IOCTL_KGSL_SHAREDMEM_FROM_PMEM \ - _IOWR(KGSL_IOC_TYPE, 0x20, struct kgsl_sharedmem_from_pmem) - -/* remove memory from the GPU's address space */ -struct kgsl_sharedmem_free { - unsigned int gpuaddr; -}; - -#define IOCTL_KGSL_SHAREDMEM_FREE \ - _IOW(KGSL_IOC_TYPE, 0x21, struct kgsl_sharedmem_free) - -struct kgsl_cff_user_event { - unsigned char cff_opcode; - unsigned int op1; - unsigned int op2; - unsigned int op3; - unsigned int op4; - unsigned int op5; - unsigned int __pad[2]; -}; - -#define IOCTL_KGSL_CFF_USER_EVENT \ - _IOW(KGSL_IOC_TYPE, 0x31, struct kgsl_cff_user_event) - -struct kgsl_gmem_desc { - unsigned int x; - unsigned int y; - unsigned int width; - unsigned int height; - unsigned int pitch; -}; - -struct kgsl_buffer_desc { - void *hostptr; - unsigned int gpuaddr; - int size; - unsigned int format; - unsigned int pitch; - unsigned int enabled; -}; - -struct kgsl_bind_gmem_shadow { - unsigned int drawctxt_id; - struct kgsl_gmem_desc gmem_desc; - unsigned int shadow_x; - unsigned int shadow_y; - struct kgsl_buffer_desc shadow_buffer; - unsigned int buffer_id; -}; - -#define IOCTL_KGSL_DRAWCTXT_BIND_GMEM_SHADOW \ - _IOW(KGSL_IOC_TYPE, 0x22, struct kgsl_bind_gmem_shadow) - -/* add a block of memory into the GPU address space */ -struct kgsl_sharedmem_from_vmalloc { - unsigned int gpuaddr; /*output param */ - unsigned int hostptr; - unsigned int flags; -}; - -#define IOCTL_KGSL_SHAREDMEM_FROM_VMALLOC \ - _IOWR(KGSL_IOC_TYPE, 0x23, struct kgsl_sharedmem_from_vmalloc) - -#define IOCTL_KGSL_SHAREDMEM_FLUSH_CACHE \ - _IOW(KGSL_IOC_TYPE, 0x24, struct kgsl_sharedmem_free) - -struct kgsl_drawctxt_set_bin_base_offset { - unsigned int drawctxt_id; - unsigned int offset; -}; - -#define IOCTL_KGSL_DRAWCTXT_SET_BIN_BASE_OFFSET \ - _IOW(KGSL_IOC_TYPE, 0x25, struct kgsl_drawctxt_set_bin_base_offset) - -enum kgsl_cmdwindow_type { - KGSL_CMDWINDOW_MIN = 0x00000000, - KGSL_CMDWINDOW_2D = 0x00000000, - KGSL_CMDWINDOW_3D = 0x00000001, /* legacy */ - KGSL_CMDWINDOW_MMU = 0x00000002, - KGSL_CMDWINDOW_ARBITER = 0x000000FF, - KGSL_CMDWINDOW_MAX = 0x000000FF, -}; - -/* write to the command window */ -struct kgsl_cmdwindow_write { - enum kgsl_cmdwindow_type target; - unsigned int addr; - unsigned int data; -}; - -#define IOCTL_KGSL_CMDWINDOW_WRITE \ - _IOW(KGSL_IOC_TYPE, 0x2e, struct kgsl_cmdwindow_write) - -struct kgsl_gpumem_alloc { - unsigned long gpuaddr; - size_t size; - unsigned int flags; -}; - -#define IOCTL_KGSL_GPUMEM_ALLOC \ - _IOWR(KGSL_IOC_TYPE, 0x2f, struct kgsl_gpumem_alloc) - -struct kgsl_cff_syncmem { - unsigned int gpuaddr; - unsigned int len; - unsigned int __pad[2]; /* For future binary compatibility */ -}; - -#define IOCTL_KGSL_CFF_SYNCMEM \ - _IOW(KGSL_IOC_TYPE, 0x30, struct kgsl_cff_syncmem) - -/* - * A timestamp event allows the user space to register an action following an - * expired timestamp. - */ - -struct kgsl_timestamp_event { - int type; /* Type of event (see list below) */ - unsigned int timestamp; /* Timestamp to trigger event on */ - unsigned int context_id; /* Context for the timestamp */ - void *priv; /* Pointer to the event specific blob */ - size_t len; /* Size of the event specific blob */ -}; - -#define IOCTL_KGSL_TIMESTAMP_EVENT \ - _IOW(KGSL_IOC_TYPE, 0x31, struct kgsl_timestamp_event) - -/* A genlock timestamp event releases an existing lock on timestamp expire */ - -#define KGSL_TIMESTAMP_EVENT_GENLOCK 1 - -struct kgsl_timestamp_event_genlock { - int handle; /* Handle of the genlock lock to release */ -}; - -/* - * Set a property within the kernel. Uses the same structure as - * IOCTL_KGSL_GETPROPERTY - */ - -#define IOCTL_KGSL_SETPROPERTY \ - _IOW(KGSL_IOC_TYPE, 0x32, struct kgsl_device_getproperty) - -#ifdef __KERNEL__ -#ifdef CONFIG_MSM_KGSL_DRM -int kgsl_gem_obj_addr(int drm_fd, int handle, unsigned long *start, - unsigned long *len); -#else -#define kgsl_gem_obj_addr(...) 0 -#endif -#endif -#endif /* _MSM_KGSL_H */ diff -Nru libdrm-2.4.52/freedreno/libdrm_freedreno.pc.in libdrm-2.4.52+really2.4.21/freedreno/libdrm_freedreno.pc.in --- libdrm-2.4.52/freedreno/libdrm_freedreno.pc.in 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/libdrm_freedreno.pc.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: libdrm_freedreno -Description: Userspace interface to freedreno kernel DRM services -Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -ldrm_freedreno -Cflags: -I${includedir} -I${includedir}/libdrm -I${includedir}/freedreno -Requires.private: libdrm diff -Nru libdrm-2.4.52/freedreno/list.h libdrm-2.4.52+really2.4.21/freedreno/list.h --- libdrm-2.4.52/freedreno/list.h 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/list.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,137 +0,0 @@ -/* - * - * Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND. USA. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - * USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - */ - -/** - * \file - * List macros heavily inspired by the Linux kernel - * list handling. No list looping yet. - * - * Is not threadsafe, so common operations need to - * be protected using an external mutex. - */ -#ifndef _U_DOUBLE_LIST_H_ -#define _U_DOUBLE_LIST_H_ - -#include - -struct list_head -{ - struct list_head *prev; - struct list_head *next; -}; - -static inline void list_inithead(struct list_head *item) -{ - item->prev = item; - item->next = item; -} - -static inline void list_add(struct list_head *item, struct list_head *list) -{ - item->prev = list; - item->next = list->next; - list->next->prev = item; - list->next = item; -} - -static inline void list_addtail(struct list_head *item, struct list_head *list) -{ - item->next = list; - item->prev = list->prev; - list->prev->next = item; - list->prev = item; -} - -static inline void list_replace(struct list_head *from, struct list_head *to) -{ - to->prev = from->prev; - to->next = from->next; - from->next->prev = to; - from->prev->next = to; -} - -static inline void list_del(struct list_head *item) -{ - item->prev->next = item->next; - item->next->prev = item->prev; -} - -static inline void list_delinit(struct list_head *item) -{ - item->prev->next = item->next; - item->next->prev = item->prev; - item->next = item; - item->prev = item; -} - -#define LIST_INITHEAD(__item) list_inithead(__item) -#define LIST_ADD(__item, __list) list_add(__item, __list) -#define LIST_ADDTAIL(__item, __list) list_addtail(__item, __list) -#define LIST_REPLACE(__from, __to) list_replace(__from, __to) -#define LIST_DEL(__item) list_del(__item) -#define LIST_DELINIT(__item) list_delinit(__item) - -#define LIST_ENTRY(__type, __item, __field) \ - ((__type *)(((char *)(__item)) - offsetof(__type, __field))) - -#define LIST_IS_EMPTY(__list) \ - ((__list)->next == (__list)) - -#ifndef container_of -#define container_of(ptr, sample, member) \ - (void *)((char *)(ptr) \ - - ((char *)&(sample)->member - (char *)(sample))) -#endif - -#define LIST_FOR_EACH_ENTRY(pos, head, member) \ - for (pos = container_of((head)->next, pos, member); \ - &pos->member != (head); \ - pos = container_of(pos->member.next, pos, member)) - -#define LIST_FOR_EACH_ENTRY_SAFE(pos, storage, head, member) \ - for (pos = container_of((head)->next, pos, member), \ - storage = container_of(pos->member.next, pos, member); \ - &pos->member != (head); \ - pos = storage, storage = container_of(storage->member.next, storage, member)) - -#define LIST_FOR_EACH_ENTRY_SAFE_REV(pos, storage, head, member) \ - for (pos = container_of((head)->prev, pos, member), \ - storage = container_of(pos->member.prev, pos, member); \ - &pos->member != (head); \ - pos = storage, storage = container_of(storage->member.prev, storage, member)) - -#define LIST_FOR_EACH_ENTRY_FROM(pos, start, head, member) \ - for (pos = container_of((start), pos, member); \ - &pos->member != (head); \ - pos = container_of(pos->member.next, pos, member)) - -#define LIST_FOR_EACH_ENTRY_FROM_REV(pos, start, head, member) \ - for (pos = container_of((start), pos, member); \ - &pos->member != (head); \ - pos = container_of(pos->member.prev, pos, member)) - -#endif /*_U_DOUBLE_LIST_H_*/ diff -Nru libdrm-2.4.52/freedreno/Makefile.am libdrm-2.4.52+really2.4.21/freedreno/Makefile.am --- libdrm-2.4.52/freedreno/Makefile.am 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -AUTOMAKE_OPTIONS=subdir-objects - -AM_CFLAGS = \ - $(WARN_CFLAGS) \ - -I$(top_srcdir) \ - -I$(top_srcdir)/freedreno \ - $(PTHREADSTUBS_CFLAGS) \ - -I$(top_srcdir)/include/drm - -libdrm_freedreno_la_LTLIBRARIES = libdrm_freedreno.la -libdrm_freedreno_ladir = $(libdir) -libdrm_freedreno_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libdrm_freedreno_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ - -libdrm_freedreno_la_SOURCES = \ - freedreno_device.c \ - freedreno_pipe.c \ - freedreno_priv.h \ - freedreno_ringbuffer.c \ - freedreno_bo.c \ - kgsl/kgsl_bo.c \ - kgsl/kgsl_device.c \ - kgsl/kgsl_drm.h \ - kgsl/kgsl_pipe.c \ - kgsl/kgsl_priv.h \ - kgsl/kgsl_ringbuffer.c \ - kgsl/msm_kgsl.h \ - msm/msm_bo.c \ - msm/msm_device.c \ - msm/msm_drm.h \ - msm/msm_pipe.c \ - msm/msm_priv.h \ - msm/msm_ringbuffer.c \ - list.h - -libdrm_freedrenocommonincludedir = ${includedir}/freedreno -libdrm_freedrenocommoninclude_HEADERS = freedreno_drmif.h freedreno_ringbuffer.h - -pkgconfigdir = @pkgconfigdir@ -pkgconfig_DATA = libdrm_freedreno.pc diff -Nru libdrm-2.4.52/freedreno/Makefile.in libdrm-2.4.52+really2.4.21/freedreno/Makefile.in --- libdrm-2.4.52/freedreno/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,797 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = freedreno -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/libdrm_freedreno.pc.in \ - $(top_srcdir)/build-aux/depcomp \ - $(libdrm_freedrenocommoninclude_HEADERS) README -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = libdrm_freedreno.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdrm_freedreno_ladir)" \ - "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(libdrm_freedrenocommonincludedir)" -LTLIBRARIES = $(libdrm_freedreno_la_LTLIBRARIES) -libdrm_freedreno_la_DEPENDENCIES = ../libdrm.la -am__dirstamp = $(am__leading_dot)dirstamp -am_libdrm_freedreno_la_OBJECTS = freedreno_device.lo freedreno_pipe.lo \ - freedreno_ringbuffer.lo freedreno_bo.lo kgsl/kgsl_bo.lo \ - kgsl/kgsl_device.lo kgsl/kgsl_pipe.lo kgsl/kgsl_ringbuffer.lo \ - msm/msm_bo.lo msm/msm_device.lo msm/msm_pipe.lo \ - msm/msm_ringbuffer.lo -libdrm_freedreno_la_OBJECTS = $(am_libdrm_freedreno_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libdrm_freedreno_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(libdrm_freedreno_la_LDFLAGS) \ - $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libdrm_freedreno_la_SOURCES) -DIST_SOURCES = $(libdrm_freedreno_la_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(pkgconfig_DATA) -HEADERS = $(libdrm_freedrenocommoninclude_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = subdir-objects -AM_CFLAGS = \ - $(WARN_CFLAGS) \ - -I$(top_srcdir) \ - -I$(top_srcdir)/freedreno \ - $(PTHREADSTUBS_CFLAGS) \ - -I$(top_srcdir)/include/drm - -libdrm_freedreno_la_LTLIBRARIES = libdrm_freedreno.la -libdrm_freedreno_ladir = $(libdir) -libdrm_freedreno_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libdrm_freedreno_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ -libdrm_freedreno_la_SOURCES = \ - freedreno_device.c \ - freedreno_pipe.c \ - freedreno_priv.h \ - freedreno_ringbuffer.c \ - freedreno_bo.c \ - kgsl/kgsl_bo.c \ - kgsl/kgsl_device.c \ - kgsl/kgsl_drm.h \ - kgsl/kgsl_pipe.c \ - kgsl/kgsl_priv.h \ - kgsl/kgsl_ringbuffer.c \ - kgsl/msm_kgsl.h \ - msm/msm_bo.c \ - msm/msm_device.c \ - msm/msm_drm.h \ - msm/msm_pipe.c \ - msm/msm_priv.h \ - msm/msm_ringbuffer.c \ - list.h - -libdrm_freedrenocommonincludedir = ${includedir}/freedreno -libdrm_freedrenocommoninclude_HEADERS = freedreno_drmif.h freedreno_ringbuffer.h -pkgconfig_DATA = libdrm_freedreno.pc -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign freedreno/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign freedreno/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -libdrm_freedreno.pc: $(top_builddir)/config.status $(srcdir)/libdrm_freedreno.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-libdrm_freedreno_laLTLIBRARIES: $(libdrm_freedreno_la_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(libdrm_freedreno_la_LTLIBRARIES)'; test -n "$(libdrm_freedreno_ladir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_freedreno_ladir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_freedreno_ladir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdrm_freedreno_ladir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdrm_freedreno_ladir)"; \ - } - -uninstall-libdrm_freedreno_laLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_freedreno_la_LTLIBRARIES)'; test -n "$(libdrm_freedreno_ladir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdrm_freedreno_ladir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdrm_freedreno_ladir)/$$f"; \ - done - -clean-libdrm_freedreno_laLTLIBRARIES: - -test -z "$(libdrm_freedreno_la_LTLIBRARIES)" || rm -f $(libdrm_freedreno_la_LTLIBRARIES) - @list='$(libdrm_freedreno_la_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } -kgsl/$(am__dirstamp): - @$(MKDIR_P) kgsl - @: > kgsl/$(am__dirstamp) -kgsl/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) kgsl/$(DEPDIR) - @: > kgsl/$(DEPDIR)/$(am__dirstamp) -kgsl/kgsl_bo.lo: kgsl/$(am__dirstamp) kgsl/$(DEPDIR)/$(am__dirstamp) -kgsl/kgsl_device.lo: kgsl/$(am__dirstamp) \ - kgsl/$(DEPDIR)/$(am__dirstamp) -kgsl/kgsl_pipe.lo: kgsl/$(am__dirstamp) kgsl/$(DEPDIR)/$(am__dirstamp) -kgsl/kgsl_ringbuffer.lo: kgsl/$(am__dirstamp) \ - kgsl/$(DEPDIR)/$(am__dirstamp) -msm/$(am__dirstamp): - @$(MKDIR_P) msm - @: > msm/$(am__dirstamp) -msm/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) msm/$(DEPDIR) - @: > msm/$(DEPDIR)/$(am__dirstamp) -msm/msm_bo.lo: msm/$(am__dirstamp) msm/$(DEPDIR)/$(am__dirstamp) -msm/msm_device.lo: msm/$(am__dirstamp) msm/$(DEPDIR)/$(am__dirstamp) -msm/msm_pipe.lo: msm/$(am__dirstamp) msm/$(DEPDIR)/$(am__dirstamp) -msm/msm_ringbuffer.lo: msm/$(am__dirstamp) \ - msm/$(DEPDIR)/$(am__dirstamp) - -libdrm_freedreno.la: $(libdrm_freedreno_la_OBJECTS) $(libdrm_freedreno_la_DEPENDENCIES) $(EXTRA_libdrm_freedreno_la_DEPENDENCIES) - $(AM_V_CCLD)$(libdrm_freedreno_la_LINK) -rpath $(libdrm_freedreno_ladir) $(libdrm_freedreno_la_OBJECTS) $(libdrm_freedreno_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f kgsl/*.$(OBJEXT) - -rm -f kgsl/*.lo - -rm -f msm/*.$(OBJEXT) - -rm -f msm/*.lo - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freedreno_bo.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freedreno_device.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freedreno_pipe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freedreno_ringbuffer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@kgsl/$(DEPDIR)/kgsl_bo.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@kgsl/$(DEPDIR)/kgsl_device.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@kgsl/$(DEPDIR)/kgsl_pipe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@kgsl/$(DEPDIR)/kgsl_ringbuffer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@msm/$(DEPDIR)/msm_bo.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@msm/$(DEPDIR)/msm_device.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@msm/$(DEPDIR)/msm_pipe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@msm/$(DEPDIR)/msm_ringbuffer.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -rm -rf kgsl/.libs kgsl/_libs - -rm -rf msm/.libs msm/_libs -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-libdrm_freedrenocommonincludeHEADERS: $(libdrm_freedrenocommoninclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(libdrm_freedrenocommoninclude_HEADERS)'; test -n "$(libdrm_freedrenocommonincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_freedrenocommonincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_freedrenocommonincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libdrm_freedrenocommonincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libdrm_freedrenocommonincludedir)" || exit $$?; \ - done - -uninstall-libdrm_freedrenocommonincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_freedrenocommoninclude_HEADERS)'; test -n "$(libdrm_freedrenocommonincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(libdrm_freedrenocommonincludedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libdrm_freedreno_ladir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libdrm_freedrenocommonincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f kgsl/$(DEPDIR)/$(am__dirstamp) - -rm -f kgsl/$(am__dirstamp) - -rm -f msm/$(DEPDIR)/$(am__dirstamp) - -rm -f msm/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libdrm_freedreno_laLTLIBRARIES \ - clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) kgsl/$(DEPDIR) msm/$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-libdrm_freedreno_laLTLIBRARIES \ - install-libdrm_freedrenocommonincludeHEADERS \ - install-pkgconfigDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) kgsl/$(DEPDIR) msm/$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libdrm_freedreno_laLTLIBRARIES \ - uninstall-libdrm_freedrenocommonincludeHEADERS \ - uninstall-pkgconfigDATA - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libdrm_freedreno_laLTLIBRARIES clean-libtool \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am \ - install-libdrm_freedreno_laLTLIBRARIES \ - install-libdrm_freedrenocommonincludeHEADERS install-man \ - install-pdf install-pdf-am install-pkgconfigDATA install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am uninstall-libdrm_freedreno_laLTLIBRARIES \ - uninstall-libdrm_freedrenocommonincludeHEADERS \ - uninstall-pkgconfigDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/freedreno/msm/msm_bo.c libdrm-2.4.52+really2.4.21/freedreno/msm/msm_bo.c --- libdrm-2.4.52/freedreno/msm/msm_bo.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/msm/msm_bo.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,141 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2013 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#include "msm_priv.h" - -static int bo_allocate(struct msm_bo *msm_bo) -{ - struct fd_bo *bo = &msm_bo->base; - if (!msm_bo->offset) { - struct drm_msm_gem_info req = { - .handle = bo->handle, - }; - int ret; - - /* if the buffer is already backed by pages then this - * doesn't actually do anything (other than giving us - * the offset) - */ - ret = drmCommandWriteRead(bo->dev->fd, DRM_MSM_GEM_INFO, - &req, sizeof(req)); - if (ret) { - ERROR_MSG("alloc failed: %s", strerror(errno)); - return ret; - } - - msm_bo->offset = req.offset; - } - - return 0; -} - -static int msm_bo_offset(struct fd_bo *bo, uint64_t *offset) -{ - struct msm_bo *msm_bo = to_msm_bo(bo); - int ret = bo_allocate(msm_bo); - if (ret) - return ret; - *offset = msm_bo->offset; - return 0; -} - -static int msm_bo_cpu_prep(struct fd_bo *bo, struct fd_pipe *pipe, uint32_t op) -{ - struct drm_msm_gem_cpu_prep req = { - .handle = bo->handle, - .op = op, - }; - - get_abs_timeout(&req.timeout, 5000); - - return drmCommandWrite(bo->dev->fd, DRM_MSM_GEM_CPU_PREP, &req, sizeof(req)); -} - -static void msm_bo_cpu_fini(struct fd_bo *bo) -{ - struct drm_msm_gem_cpu_fini req = { - .handle = bo->handle, - }; - - drmCommandWrite(bo->dev->fd, DRM_MSM_GEM_CPU_FINI, &req, sizeof(req)); -} - -static void msm_bo_destroy(struct fd_bo *bo) -{ - struct msm_bo *msm_bo = to_msm_bo(bo); - free(msm_bo); - -} - -static struct fd_bo_funcs funcs = { - .offset = msm_bo_offset, - .cpu_prep = msm_bo_cpu_prep, - .cpu_fini = msm_bo_cpu_fini, - .destroy = msm_bo_destroy, -}; - -/* allocate a buffer handle: */ -int msm_bo_new_handle(struct fd_device *dev, - uint32_t size, uint32_t flags, uint32_t *handle) -{ - struct drm_msm_gem_new req = { - .size = size, - .flags = MSM_BO_WC, // TODO figure out proper flags.. - }; - int ret; - - ret = drmCommandWriteRead(dev->fd, DRM_MSM_GEM_NEW, - &req, sizeof(req)); - if (ret) - return ret; - - *handle = req.handle; - - return 0; -} - -/* allocate a new buffer object */ -struct fd_bo * msm_bo_from_handle(struct fd_device *dev, - uint32_t size, uint32_t handle) -{ - struct msm_bo *msm_bo; - struct fd_bo *bo; - unsigned i; - - msm_bo = calloc(1, sizeof(*msm_bo)); - if (!msm_bo) - return NULL; - - bo = &msm_bo->base; - bo->funcs = &funcs; - - for (i = 0; i < ARRAY_SIZE(msm_bo->list); i++) - list_inithead(&msm_bo->list[i]); - - return bo; -} diff -Nru libdrm-2.4.52/freedreno/msm/msm_device.c libdrm-2.4.52+really2.4.21/freedreno/msm/msm_device.c --- libdrm-2.4.52/freedreno/msm/msm_device.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/msm/msm_device.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2013 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#include -#include -#include - -#include "msm_priv.h" - -static void msm_device_destroy(struct fd_device *dev) -{ - struct msm_device *msm_dev = to_msm_device(dev); - free(msm_dev); -} - -static struct fd_device_funcs funcs = { - .bo_new_handle = msm_bo_new_handle, - .bo_from_handle = msm_bo_from_handle, - .pipe_new = msm_pipe_new, - .destroy = msm_device_destroy, -}; - -struct fd_device * msm_device_new(int fd) -{ - struct msm_device *msm_dev; - struct fd_device *dev; - - msm_dev = calloc(1, sizeof(*msm_dev)); - if (!msm_dev) - return NULL; - - dev = &msm_dev->base; - dev->funcs = &funcs; - - return dev; -} diff -Nru libdrm-2.4.52/freedreno/msm/msm_drm.h libdrm-2.4.52+really2.4.21/freedreno/msm/msm_drm.h --- libdrm-2.4.52/freedreno/msm/msm_drm.h 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/msm/msm_drm.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,207 +0,0 @@ -/* - * Copyright (C) 2013 Red Hat - * Author: Rob Clark - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 as published by - * the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program. If not, see . - */ - -#ifndef __MSM_DRM_H__ -#define __MSM_DRM_H__ - -#include -#include "drm.h" - -/* Please note that modifications to all structs defined here are - * subject to backwards-compatibility constraints: - * 1) Do not use pointers, use uint64_t instead for 32 bit / 64 bit - * user/kernel compatibility - * 2) Keep fields aligned to their size - * 3) Because of how drm_ioctl() works, we can add new fields at - * the end of an ioctl if some care is taken: drm_ioctl() will - * zero out the new fields at the tail of the ioctl, so a zero - * value should have a backwards compatible meaning. And for - * output params, userspace won't see the newly added output - * fields.. so that has to be somehow ok. - */ - -#define MSM_PIPE_NONE 0x00 -#define MSM_PIPE_2D0 0x01 -#define MSM_PIPE_2D1 0x02 -#define MSM_PIPE_3D0 0x10 - -/* timeouts are specified in clock-monotonic absolute times (to simplify - * restarting interrupted ioctls). The following struct is logically the - * same as 'struct timespec' but 32/64b ABI safe. - */ -struct drm_msm_timespec { - int64_t tv_sec; /* seconds */ - int64_t tv_nsec; /* nanoseconds */ -}; - -#define MSM_PARAM_GPU_ID 0x01 -#define MSM_PARAM_GMEM_SIZE 0x02 - -struct drm_msm_param { - uint32_t pipe; /* in, MSM_PIPE_x */ - uint32_t param; /* in, MSM_PARAM_x */ - uint64_t value; /* out (get_param) or in (set_param) */ -}; - -/* - * GEM buffers: - */ - -#define MSM_BO_SCANOUT 0x00000001 /* scanout capable */ -#define MSM_BO_GPU_READONLY 0x00000002 -#define MSM_BO_CACHE_MASK 0x000f0000 -/* cache modes */ -#define MSM_BO_CACHED 0x00010000 -#define MSM_BO_WC 0x00020000 -#define MSM_BO_UNCACHED 0x00040000 - -struct drm_msm_gem_new { - uint64_t size; /* in */ - uint32_t flags; /* in, mask of MSM_BO_x */ - uint32_t handle; /* out */ -}; - -struct drm_msm_gem_info { - uint32_t handle; /* in */ - uint32_t pad; - uint64_t offset; /* out, offset to pass to mmap() */ -}; - -#define MSM_PREP_READ 0x01 -#define MSM_PREP_WRITE 0x02 -#define MSM_PREP_NOSYNC 0x04 - -struct drm_msm_gem_cpu_prep { - uint32_t handle; /* in */ - uint32_t op; /* in, mask of MSM_PREP_x */ - struct drm_msm_timespec timeout; /* in */ -}; - -struct drm_msm_gem_cpu_fini { - uint32_t handle; /* in */ -}; - -/* - * Cmdstream Submission: - */ - -/* The value written into the cmdstream is logically: - * - * ((relocbuf->gpuaddr + reloc_offset) << shift) | or - * - * When we have GPU's w/ >32bit ptrs, it should be possible to deal - * with this by emit'ing two reloc entries with appropriate shift - * values. Or a new MSM_SUBMIT_CMD_x type would also be an option. - * - * NOTE that reloc's must be sorted by order of increasing submit_offset, - * otherwise EINVAL. - */ -struct drm_msm_gem_submit_reloc { - uint32_t submit_offset; /* in, offset from submit_bo */ - uint32_t or; /* in, value OR'd with result */ - int32_t shift; /* in, amount of left shift (can be negative) */ - uint32_t reloc_idx; /* in, index of reloc_bo buffer */ - uint64_t reloc_offset; /* in, offset from start of reloc_bo */ -}; - -/* submit-types: - * BUF - this cmd buffer is executed normally. - * IB_TARGET_BUF - this cmd buffer is an IB target. Reloc's are - * processed normally, but the kernel does not setup an IB to - * this buffer in the first-level ringbuffer - * CTX_RESTORE_BUF - only executed if there has been a GPU context - * switch since the last SUBMIT ioctl - */ -#define MSM_SUBMIT_CMD_BUF 0x0001 -#define MSM_SUBMIT_CMD_IB_TARGET_BUF 0x0002 -#define MSM_SUBMIT_CMD_CTX_RESTORE_BUF 0x0003 -struct drm_msm_gem_submit_cmd { - uint32_t type; /* in, one of MSM_SUBMIT_CMD_x */ - uint32_t submit_idx; /* in, index of submit_bo cmdstream buffer */ - uint32_t submit_offset; /* in, offset into submit_bo */ - uint32_t size; /* in, cmdstream size */ - uint32_t pad; - uint32_t nr_relocs; /* in, number of submit_reloc's */ - uint64_t __user relocs; /* in, ptr to array of submit_reloc's */ -}; - -/* Each buffer referenced elsewhere in the cmdstream submit (ie. the - * cmdstream buffer(s) themselves or reloc entries) has one (and only - * one) entry in the submit->bos[] table. - * - * As a optimization, the current buffer (gpu virtual address) can be - * passed back through the 'presumed' field. If on a subsequent reloc, - * userspace passes back a 'presumed' address that is still valid, - * then patching the cmdstream for this entry is skipped. This can - * avoid kernel needing to map/access the cmdstream bo in the common - * case. - */ -#define MSM_SUBMIT_BO_READ 0x0001 -#define MSM_SUBMIT_BO_WRITE 0x0002 -struct drm_msm_gem_submit_bo { - uint32_t flags; /* in, mask of MSM_SUBMIT_BO_x */ - uint32_t handle; /* in, GEM handle */ - uint64_t presumed; /* in/out, presumed buffer address */ -}; - -/* Each cmdstream submit consists of a table of buffers involved, and - * one or more cmdstream buffers. This allows for conditional execution - * (context-restore), and IB buffers needed for per tile/bin draw cmds. - */ -struct drm_msm_gem_submit { - uint32_t pipe; /* in, MSM_PIPE_x */ - uint32_t fence; /* out */ - uint32_t nr_bos; /* in, number of submit_bo's */ - uint32_t nr_cmds; /* in, number of submit_cmd's */ - uint64_t __user bos; /* in, ptr to array of submit_bo's */ - uint64_t __user cmds; /* in, ptr to array of submit_cmd's */ -}; - -/* The normal way to synchronize with the GPU is just to CPU_PREP on - * a buffer if you need to access it from the CPU (other cmdstream - * submission from same or other contexts, PAGE_FLIP ioctl, etc, all - * handle the required synchronization under the hood). This ioctl - * mainly just exists as a way to implement the gallium pipe_fence - * APIs without requiring a dummy bo to synchronize on. - */ -struct drm_msm_wait_fence { - uint32_t fence; /* in */ - uint32_t pad; - struct drm_msm_timespec timeout; /* in */ -}; - -#define DRM_MSM_GET_PARAM 0x00 -/* placeholder: -#define DRM_MSM_SET_PARAM 0x01 - */ -#define DRM_MSM_GEM_NEW 0x02 -#define DRM_MSM_GEM_INFO 0x03 -#define DRM_MSM_GEM_CPU_PREP 0x04 -#define DRM_MSM_GEM_CPU_FINI 0x05 -#define DRM_MSM_GEM_SUBMIT 0x06 -#define DRM_MSM_WAIT_FENCE 0x07 -#define DRM_MSM_NUM_IOCTLS 0x08 - -#define DRM_IOCTL_MSM_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GET_PARAM, struct drm_msm_param) -#define DRM_IOCTL_MSM_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_NEW, struct drm_msm_gem_new) -#define DRM_IOCTL_MSM_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_INFO, struct drm_msm_gem_info) -#define DRM_IOCTL_MSM_GEM_CPU_PREP DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_GEM_CPU_PREP, struct drm_msm_gem_cpu_prep) -#define DRM_IOCTL_MSM_GEM_CPU_FINI DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_GEM_CPU_FINI, struct drm_msm_gem_cpu_fini) -#define DRM_IOCTL_MSM_GEM_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_SUBMIT, struct drm_msm_gem_submit) -#define DRM_IOCTL_MSM_WAIT_FENCE DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_WAIT_FENCE, struct drm_msm_wait_fence) - -#endif /* __MSM_DRM_H__ */ diff -Nru libdrm-2.4.52/freedreno/msm/msm_pipe.c libdrm-2.4.52+really2.4.21/freedreno/msm/msm_pipe.c --- libdrm-2.4.52/freedreno/msm/msm_pipe.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/msm/msm_pipe.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,133 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2013 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#include "msm_priv.h" - - -static int msm_pipe_get_param(struct fd_pipe *pipe, - enum fd_param_id param, uint64_t *value) -{ - struct msm_pipe *msm_pipe = to_msm_pipe(pipe); - switch(param) { - case FD_DEVICE_ID: // XXX probably get rid of this.. - case FD_GPU_ID: - *value = msm_pipe->gpu_id; - return 0; - case FD_GMEM_SIZE: - *value = msm_pipe->gmem; - return 0; - default: - ERROR_MSG("invalid param id: %d", param); - return -1; - } -} - -static int msm_pipe_wait(struct fd_pipe *pipe, uint32_t timestamp) -{ - struct fd_device *dev = pipe->dev; - struct drm_msm_wait_fence req = { - .fence = timestamp, - }; - int ret; - - get_abs_timeout(&req.timeout, 5000); - - ret = drmCommandWrite(dev->fd, DRM_MSM_WAIT_FENCE, &req, sizeof(req)); - if (ret) { - ERROR_MSG("wait-fence failed! %d (%s)", ret, strerror(errno)); - return ret; - } - - return 0; -} - -static void msm_pipe_destroy(struct fd_pipe *pipe) -{ - struct msm_pipe *msm_pipe = to_msm_pipe(pipe); - free(msm_pipe); -} - -static struct fd_pipe_funcs funcs = { - .ringbuffer_new = msm_ringbuffer_new, - .get_param = msm_pipe_get_param, - .wait = msm_pipe_wait, - .destroy = msm_pipe_destroy, -}; - -static uint64_t get_param(struct fd_device *dev, uint32_t pipe, uint32_t param) -{ - struct drm_msm_param req = { - .pipe = pipe, - .param = param, - }; - int ret; - - ret = drmCommandWriteRead(dev->fd, DRM_MSM_GET_PARAM, &req, sizeof(req)); - if (ret) { - ERROR_MSG("get-param failed! %d (%s)", ret, strerror(errno)); - return 0; - } - - return req.value; -} - -struct fd_pipe * msm_pipe_new(struct fd_device *dev, enum fd_pipe_id id) -{ - static const uint32_t pipe_id[] = { - [FD_PIPE_3D] = MSM_PIPE_3D0, - [FD_PIPE_2D] = MSM_PIPE_2D0, - }; - struct msm_pipe *msm_pipe = NULL; - struct fd_pipe *pipe = NULL; - - msm_pipe = calloc(1, sizeof(*msm_pipe)); - if (!msm_pipe) { - ERROR_MSG("allocation failed"); - goto fail; - } - - pipe = &msm_pipe->base; - pipe->funcs = &funcs; - - msm_pipe->pipe = pipe_id[id]; - msm_pipe->gpu_id = get_param(dev, pipe_id[id], MSM_PARAM_GPU_ID); - msm_pipe->gmem = get_param(dev, pipe_id[id], MSM_PARAM_GMEM_SIZE); - - if (! msm_pipe->gpu_id) - goto fail; - - INFO_MSG("Pipe Info:"); - INFO_MSG(" GPU-id: %d", msm_pipe->gpu_id); - INFO_MSG(" GMEM size: 0x%08x", msm_pipe->gmem); - - return pipe; -fail: - if (pipe) - fd_pipe_del(pipe); - return NULL; -} diff -Nru libdrm-2.4.52/freedreno/msm/msm_priv.h libdrm-2.4.52+really2.4.21/freedreno/msm/msm_priv.h --- libdrm-2.4.52/freedreno/msm/msm_priv.h 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/msm/msm_priv.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2013 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#ifndef MSM_PRIV_H_ -#define MSM_PRIV_H_ - -#include "freedreno_priv.h" - -#ifndef __user -# define __user -#endif - -#include "msm_drm.h" - -struct msm_device { - struct fd_device base; -}; - -static inline struct msm_device * to_msm_device(struct fd_device *x) -{ - return (struct msm_device *)x; -} - -struct fd_device * msm_device_new(int fd); - -struct msm_pipe { - struct fd_pipe base; - uint32_t pipe; - uint32_t gpu_id; - uint32_t gmem; -}; - -static inline struct msm_pipe * to_msm_pipe(struct fd_pipe *x) -{ - return (struct msm_pipe *)x; -} - -struct fd_pipe * msm_pipe_new(struct fd_device *dev, enum fd_pipe_id id); - -struct fd_ringbuffer * msm_ringbuffer_new(struct fd_pipe *pipe, - uint32_t size); - -struct msm_bo { - struct fd_bo base; - uint64_t offset; - uint64_t presumed; - uint32_t indexp1[FD_PIPE_MAX]; /* index plus 1 */ - struct list_head list[FD_PIPE_MAX]; -}; - -static inline struct msm_bo * to_msm_bo(struct fd_bo *x) -{ - return (struct msm_bo *)x; -} - -int msm_bo_new_handle(struct fd_device *dev, - uint32_t size, uint32_t flags, uint32_t *handle); -struct fd_bo * msm_bo_from_handle(struct fd_device *dev, - uint32_t size, uint32_t handle); - -static inline void get_abs_timeout(struct drm_msm_timespec *tv, uint32_t ms) -{ - struct timespec t; - uint32_t s = ms / 1000; - clock_gettime(CLOCK_MONOTONIC, &t); - tv->tv_sec = t.tv_sec + s; - tv->tv_nsec = t.tv_nsec + ((ms - (s * 1000)) * 1000000); -} - -#endif /* MSM_PRIV_H_ */ diff -Nru libdrm-2.4.52/freedreno/msm/msm_ringbuffer.c libdrm-2.4.52+really2.4.21/freedreno/msm/msm_ringbuffer.c --- libdrm-2.4.52/freedreno/msm/msm_ringbuffer.c 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/msm/msm_ringbuffer.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,321 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2013 Rob Clark - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#include - -#include "freedreno_ringbuffer.h" -#include "msm_priv.h" - -struct msm_ringbuffer { - struct fd_ringbuffer base; - struct fd_bo *ring_bo; - - struct list_head submit_list; - - /* bo's table: */ - struct drm_msm_gem_submit_bo *bos; - uint32_t nr_bos, max_bos; - - /* cmd's table: */ - struct drm_msm_gem_submit_cmd *cmds; - uint32_t nr_cmds, max_cmds; - struct fd_ringbuffer **rings; - uint32_t nr_rings, max_rings; - - /* reloc's table: */ - struct drm_msm_gem_submit_reloc *relocs; - uint32_t nr_relocs, max_relocs; -}; - -static void *grow(void *ptr, uint32_t nr, uint32_t *max, uint32_t sz) -{ - if ((nr + 1) > *max) { - if ((*max * 2) < (nr + 1)) - *max = nr + 5; - else - *max = *max * 2; - ptr = realloc(ptr, *max * sz); - } - return ptr; -} - -#define APPEND(x, name) ({ \ - (x)->name = grow((x)->name, (x)->nr_ ## name, &(x)->max_ ## name, sizeof((x)->name[0])); \ - (x)->nr_ ## name ++; \ -}) - -static inline struct msm_ringbuffer * to_msm_ringbuffer(struct fd_ringbuffer *x) -{ - return (struct msm_ringbuffer *)x; -} - -/* add (if needed) bo, return idx: */ -static uint32_t bo2idx(struct fd_ringbuffer *ring, struct fd_bo *bo, uint32_t flags) -{ - struct msm_ringbuffer *msm_ring = to_msm_ringbuffer(ring); - struct msm_bo *msm_bo = to_msm_bo(bo); - int id = ring->pipe->id; - uint32_t idx; - if (!msm_bo->indexp1[id]) { - struct list_head *list = &msm_bo->list[id]; - idx = APPEND(msm_ring, bos); - msm_ring->bos[idx].flags = 0; - msm_ring->bos[idx].handle = bo->handle; - msm_ring->bos[idx].presumed = msm_bo->presumed; - msm_bo->indexp1[id] = idx + 1; - - assert(LIST_IS_EMPTY(list)); - fd_bo_ref(bo); - list_addtail(list, &msm_ring->submit_list); - } else { - idx = msm_bo->indexp1[id] - 1; - } - if (flags & FD_RELOC_READ) - msm_ring->bos[idx].flags |= MSM_SUBMIT_BO_READ; - if (flags & FD_RELOC_WRITE) - msm_ring->bos[idx].flags |= MSM_SUBMIT_BO_WRITE; - return idx; -} - -static int check_cmd_bo(struct fd_ringbuffer *ring, - struct drm_msm_gem_submit_cmd *cmd, struct fd_bo *bo) -{ - struct msm_ringbuffer *msm_ring = to_msm_ringbuffer(ring); - return msm_ring->bos[cmd->submit_idx].handle == bo->handle; -} - -static uint32_t offset_bytes(void *end, void *start) -{ - return ((char *)end) - ((char *)start); -} - -static struct drm_msm_gem_submit_cmd * get_cmd(struct fd_ringbuffer *ring, - struct fd_ringbuffer *target_ring, struct fd_bo *target_bo, - uint32_t submit_offset, uint32_t size, uint32_t type) -{ - struct msm_ringbuffer *msm_ring = to_msm_ringbuffer(ring); - struct drm_msm_gem_submit_cmd *cmd = NULL; - uint32_t i; - - /* figure out if we already have a cmd buf: */ - for (i = 0; i < msm_ring->nr_cmds; i++) { - cmd = &msm_ring->cmds[i]; - if ((cmd->submit_offset == submit_offset) && - (cmd->size == size) && - (cmd->type == type) && - check_cmd_bo(ring, cmd, target_bo)) - break; - cmd = NULL; - } - - /* create cmd buf if not: */ - if (!cmd) { - uint32_t idx = APPEND(msm_ring, cmds); - APPEND(msm_ring, rings); - msm_ring->rings[idx] = target_ring; - cmd = &msm_ring->cmds[idx]; - cmd->type = type; - cmd->submit_idx = bo2idx(ring, target_bo, FD_RELOC_READ); - cmd->submit_offset = submit_offset; - cmd->size = size; - } - - return cmd; -} - -static void * msm_ringbuffer_hostptr(struct fd_ringbuffer *ring) -{ - struct msm_ringbuffer *msm_ring = to_msm_ringbuffer(ring); - return fd_bo_map(msm_ring->ring_bo); -} - -static uint32_t find_next_reloc_idx(struct msm_ringbuffer *msm_ring, - uint32_t start, uint32_t offset) -{ - uint32_t i; - - /* a binary search would be more clever.. */ - for (i = start; i < msm_ring->nr_relocs; i++) { - struct drm_msm_gem_submit_reloc *reloc = &msm_ring->relocs[i]; - if (reloc->submit_offset >= offset) - return i; - } - - return i; -} - -static int msm_ringbuffer_flush(struct fd_ringbuffer *ring, uint32_t *last_start) -{ - struct msm_ringbuffer *msm_ring = to_msm_ringbuffer(ring); - struct fd_bo *ring_bo = msm_ring->ring_bo; - struct drm_msm_gem_submit req = { - .pipe = to_msm_pipe(ring->pipe)->pipe, - }; - struct msm_bo *msm_bo = NULL, *tmp; - uint32_t i, submit_offset, size; - int ret, id = ring->pipe->id; - - submit_offset = offset_bytes(last_start, ring->start); - size = offset_bytes(ring->cur, last_start); - - get_cmd(ring, ring, ring_bo, submit_offset, size, MSM_SUBMIT_CMD_BUF); - - /* needs to be after get_cmd() as that could create bos/cmds table: */ - req.bos = VOID2U64(msm_ring->bos), - req.nr_bos = msm_ring->nr_bos; - req.cmds = VOID2U64(msm_ring->cmds), - req.nr_cmds = msm_ring->nr_cmds; - - /* for each of the cmd's fix up their reloc's: */ - for (i = 0; i < msm_ring->nr_cmds; i++) { - struct drm_msm_gem_submit_cmd *cmd = &msm_ring->cmds[i]; - struct msm_ringbuffer *target_ring = to_msm_ringbuffer(msm_ring->rings[i]); - uint32_t a = find_next_reloc_idx(target_ring, 0, cmd->submit_offset); - uint32_t b = find_next_reloc_idx(target_ring, a, cmd->submit_offset + cmd->size); - cmd->relocs = VOID2U64(&target_ring->relocs[a]); - cmd->nr_relocs = (b > a) ? b - a : 0; - } - - DEBUG_MSG("nr_cmds=%u, nr_bos=%u\n", req.nr_cmds, req.nr_bos); - - ret = drmCommandWriteRead(ring->pipe->dev->fd, DRM_MSM_GEM_SUBMIT, - &req, sizeof(req)); - if (ret) - ERROR_MSG("submit failed: %d (%s)", ret, strerror(errno)); - - LIST_FOR_EACH_ENTRY_SAFE(msm_bo, tmp, &msm_ring->submit_list, list[id]) { - struct list_head *list = &msm_bo->list[id]; - list_delinit(list); - msm_bo->indexp1[id] = 0; - fd_bo_del(&msm_bo->base); - } - - /* for each of the cmd buffers, clear their reloc's: */ - for (i = 0; i < msm_ring->nr_cmds; i++) { - struct msm_ringbuffer *target_ring = to_msm_ringbuffer(msm_ring->rings[i]); - target_ring->nr_relocs = 0; - } - - msm_ring->nr_cmds = 0; - msm_ring->nr_bos = 0; - - return ret; -} - -static void msm_ringbuffer_emit_reloc(struct fd_ringbuffer *ring, - const struct fd_reloc *r) -{ - struct msm_ringbuffer *msm_ring = to_msm_ringbuffer(ring); - struct fd_ringbuffer *parent = ring->parent ? ring->parent : ring; - struct msm_bo *msm_bo = to_msm_bo(r->bo); - struct drm_msm_gem_submit_reloc *reloc; - uint32_t idx = APPEND(msm_ring, relocs); - uint32_t addr; - - reloc = &msm_ring->relocs[idx]; - - reloc->reloc_idx = bo2idx(parent, r->bo, r->flags); - reloc->reloc_offset = r->offset; - reloc->or = r->or; - reloc->shift = r->shift; - reloc->submit_offset = offset_bytes(ring->cur, ring->start); - - addr = msm_bo->presumed; - if (r->shift < 0) - addr >>= -r->shift; - else - addr <<= r->shift; - (*ring->cur++) = addr | r->or; -} - -static void msm_ringbuffer_emit_reloc_ring(struct fd_ringbuffer *ring, - struct fd_ringmarker *target, struct fd_ringmarker *end) -{ - struct fd_bo *target_bo = to_msm_ringbuffer(target->ring)->ring_bo; - struct drm_msm_gem_submit_cmd *cmd; - uint32_t submit_offset, size; - - submit_offset = offset_bytes(target->cur, target->ring->start); - size = offset_bytes(end->cur, target->cur); - - cmd = get_cmd(ring, target->ring, target_bo, submit_offset, size, - MSM_SUBMIT_CMD_IB_TARGET_BUF); - assert(cmd); - - msm_ringbuffer_emit_reloc(ring, &(struct fd_reloc){ - .bo = target_bo, - .flags = FD_RELOC_READ, - .offset = submit_offset, - }); -} - -static void msm_ringbuffer_destroy(struct fd_ringbuffer *ring) -{ - struct msm_ringbuffer *msm_ring = to_msm_ringbuffer(ring); - if (msm_ring->ring_bo) - fd_bo_del(msm_ring->ring_bo); - free(msm_ring); -} - -static struct fd_ringbuffer_funcs funcs = { - .hostptr = msm_ringbuffer_hostptr, - .flush = msm_ringbuffer_flush, - .emit_reloc = msm_ringbuffer_emit_reloc, - .emit_reloc_ring = msm_ringbuffer_emit_reloc_ring, - .destroy = msm_ringbuffer_destroy, -}; - -struct fd_ringbuffer * msm_ringbuffer_new(struct fd_pipe *pipe, - uint32_t size) -{ - struct msm_ringbuffer *msm_ring; - struct fd_ringbuffer *ring = NULL; - - msm_ring = calloc(1, sizeof(*msm_ring)); - if (!msm_ring) { - ERROR_MSG("allocation failed"); - goto fail; - } - - ring = &msm_ring->base; - ring->funcs = &funcs; - - list_inithead(&msm_ring->submit_list); - - msm_ring->ring_bo = fd_bo_new(pipe->dev, size, 0); - if (!msm_ring->ring_bo) { - ERROR_MSG("ringbuffer allocation failed"); - goto fail; - } - - return ring; -fail: - if (ring) - fd_ringbuffer_del(ring); - return NULL; -} diff -Nru libdrm-2.4.52/freedreno/README libdrm-2.4.52+really2.4.21/freedreno/README --- libdrm-2.4.52/freedreno/README 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/freedreno/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -Note that current msm kernel driver is a bit strange. It provides a -DRM interface for GEM, which is basically sufficient to have DRI2 -working. But it does not provide KMS. And interface to 2d and 3d -cores is via different other devices (/dev/kgsl-*). This is not -quite how I'd write a DRM driver, but at this stage it is useful for -xf86-video-freedreno and fdre (and eventual gallium driver) to be -able to work on existing kernel driver from QCOM, to allow to -capture cmdstream dumps from the binary blob drivers without having -to reboot. So libdrm_freedreno attempts to hide most of the crazy. -The intention is that when there is a proper kernel driver, it will -be mostly just changes in libdrm_freedreno to adapt the gallium -driver and xf86-video-freedreno (ignoring the fbdev->KMS changes). - -So don't look at freedreno as an example of how to write a libdrm -module or a DRM driver.. it is just an attempt to paper over a non- -standard kernel driver architecture. diff -Nru libdrm-2.4.52/include/drm/drm_fourcc.h libdrm-2.4.52+really2.4.21/include/drm/drm_fourcc.h --- libdrm-2.4.52/include/drm/drm_fourcc.h 2012-03-07 22:01:20.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/include/drm/drm_fourcc.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,130 +0,0 @@ -/* - * Copyright 2011 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifndef DRM_FOURCC_H -#define DRM_FOURCC_H - -#include - -#define fourcc_code(a,b,c,d) ((uint32_t)(a) | ((uint32_t)(b) << 8) | \ - ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24)) - -#define DRM_FORMAT_BIG_ENDIAN (1<<31) /* format is big endian instead of little endian */ - -/* color index */ -#define DRM_FORMAT_C8 fourcc_code('C', '8', ' ', ' ') /* [7:0] C */ - -/* 8 bpp RGB */ -#define DRM_FORMAT_RGB332 fourcc_code('R', 'G', 'B', '8') /* [7:0] R:G:B 3:3:2 */ -#define DRM_FORMAT_BGR233 fourcc_code('B', 'G', 'R', '8') /* [7:0] B:G:R 2:3:3 */ - -/* 16 bpp RGB */ -#define DRM_FORMAT_XRGB4444 fourcc_code('X', 'R', '1', '2') /* [15:0] x:R:G:B 4:4:4:4 little endian */ -#define DRM_FORMAT_XBGR4444 fourcc_code('X', 'B', '1', '2') /* [15:0] x:B:G:R 4:4:4:4 little endian */ -#define DRM_FORMAT_RGBX4444 fourcc_code('R', 'X', '1', '2') /* [15:0] R:G:B:x 4:4:4:4 little endian */ -#define DRM_FORMAT_BGRX4444 fourcc_code('B', 'X', '1', '2') /* [15:0] B:G:R:x 4:4:4:4 little endian */ - -#define DRM_FORMAT_ARGB4444 fourcc_code('A', 'R', '1', '2') /* [15:0] A:R:G:B 4:4:4:4 little endian */ -#define DRM_FORMAT_ABGR4444 fourcc_code('A', 'B', '1', '2') /* [15:0] A:B:G:R 4:4:4:4 little endian */ -#define DRM_FORMAT_RGBA4444 fourcc_code('R', 'A', '1', '2') /* [15:0] R:G:B:A 4:4:4:4 little endian */ -#define DRM_FORMAT_BGRA4444 fourcc_code('B', 'A', '1', '2') /* [15:0] B:G:R:A 4:4:4:4 little endian */ - -#define DRM_FORMAT_XRGB1555 fourcc_code('X', 'R', '1', '5') /* [15:0] x:R:G:B 1:5:5:5 little endian */ -#define DRM_FORMAT_XBGR1555 fourcc_code('X', 'B', '1', '5') /* [15:0] x:B:G:R 1:5:5:5 little endian */ -#define DRM_FORMAT_RGBX5551 fourcc_code('R', 'X', '1', '5') /* [15:0] R:G:B:x 5:5:5:1 little endian */ -#define DRM_FORMAT_BGRX5551 fourcc_code('B', 'X', '1', '5') /* [15:0] B:G:R:x 5:5:5:1 little endian */ - -#define DRM_FORMAT_ARGB1555 fourcc_code('A', 'R', '1', '5') /* [15:0] A:R:G:B 1:5:5:5 little endian */ -#define DRM_FORMAT_ABGR1555 fourcc_code('A', 'B', '1', '5') /* [15:0] A:B:G:R 1:5:5:5 little endian */ -#define DRM_FORMAT_RGBA5551 fourcc_code('R', 'A', '1', '5') /* [15:0] R:G:B:A 5:5:5:1 little endian */ -#define DRM_FORMAT_BGRA5551 fourcc_code('B', 'A', '1', '5') /* [15:0] B:G:R:A 5:5:5:1 little endian */ - -#define DRM_FORMAT_RGB565 fourcc_code('R', 'G', '1', '6') /* [15:0] R:G:B 5:6:5 little endian */ -#define DRM_FORMAT_BGR565 fourcc_code('B', 'G', '1', '6') /* [15:0] B:G:R 5:6:5 little endian */ - -/* 24 bpp RGB */ -#define DRM_FORMAT_RGB888 fourcc_code('R', 'G', '2', '4') /* [23:0] R:G:B little endian */ -#define DRM_FORMAT_BGR888 fourcc_code('B', 'G', '2', '4') /* [23:0] B:G:R little endian */ - -/* 32 bpp RGB */ -#define DRM_FORMAT_XRGB8888 fourcc_code('X', 'R', '2', '4') /* [31:0] x:R:G:B 8:8:8:8 little endian */ -#define DRM_FORMAT_XBGR8888 fourcc_code('X', 'B', '2', '4') /* [31:0] x:B:G:R 8:8:8:8 little endian */ -#define DRM_FORMAT_RGBX8888 fourcc_code('R', 'X', '2', '4') /* [31:0] R:G:B:x 8:8:8:8 little endian */ -#define DRM_FORMAT_BGRX8888 fourcc_code('B', 'X', '2', '4') /* [31:0] B:G:R:x 8:8:8:8 little endian */ - -#define DRM_FORMAT_ARGB8888 fourcc_code('A', 'R', '2', '4') /* [31:0] A:R:G:B 8:8:8:8 little endian */ -#define DRM_FORMAT_ABGR8888 fourcc_code('A', 'B', '2', '4') /* [31:0] A:B:G:R 8:8:8:8 little endian */ -#define DRM_FORMAT_RGBA8888 fourcc_code('R', 'A', '2', '4') /* [31:0] R:G:B:A 8:8:8:8 little endian */ -#define DRM_FORMAT_BGRA8888 fourcc_code('B', 'A', '2', '4') /* [31:0] B:G:R:A 8:8:8:8 little endian */ - -#define DRM_FORMAT_XRGB2101010 fourcc_code('X', 'R', '3', '0') /* [31:0] x:R:G:B 2:10:10:10 little endian */ -#define DRM_FORMAT_XBGR2101010 fourcc_code('X', 'B', '3', '0') /* [31:0] x:B:G:R 2:10:10:10 little endian */ -#define DRM_FORMAT_RGBX1010102 fourcc_code('R', 'X', '3', '0') /* [31:0] R:G:B:x 10:10:10:2 little endian */ -#define DRM_FORMAT_BGRX1010102 fourcc_code('B', 'X', '3', '0') /* [31:0] B:G:R:x 10:10:10:2 little endian */ - -#define DRM_FORMAT_ARGB2101010 fourcc_code('A', 'R', '3', '0') /* [31:0] A:R:G:B 2:10:10:10 little endian */ -#define DRM_FORMAT_ABGR2101010 fourcc_code('A', 'B', '3', '0') /* [31:0] A:B:G:R 2:10:10:10 little endian */ -#define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0') /* [31:0] R:G:B:A 10:10:10:2 little endian */ -#define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */ - -/* packed YCbCr */ -#define DRM_FORMAT_YUYV fourcc_code('Y', 'U', 'Y', 'V') /* [31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian */ -#define DRM_FORMAT_YVYU fourcc_code('Y', 'V', 'Y', 'U') /* [31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian */ -#define DRM_FORMAT_UYVY fourcc_code('U', 'Y', 'V', 'Y') /* [31:0] Y1:Cr0:Y0:Cb0 8:8:8:8 little endian */ -#define DRM_FORMAT_VYUY fourcc_code('V', 'Y', 'U', 'Y') /* [31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian */ - -#define DRM_FORMAT_AYUV fourcc_code('A', 'Y', 'U', 'V') /* [31:0] A:Y:Cb:Cr 8:8:8:8 little endian */ - -/* - * 2 plane YCbCr - * index 0 = Y plane, [7:0] Y - * index 1 = Cr:Cb plane, [15:0] Cr:Cb little endian - * or - * index 1 = Cb:Cr plane, [15:0] Cb:Cr little endian - */ -#define DRM_FORMAT_NV12 fourcc_code('N', 'V', '1', '2') /* 2x2 subsampled Cr:Cb plane */ -#define DRM_FORMAT_NV21 fourcc_code('N', 'V', '2', '1') /* 2x2 subsampled Cb:Cr plane */ -#define DRM_FORMAT_NV16 fourcc_code('N', 'V', '1', '6') /* 2x1 subsampled Cr:Cb plane */ -#define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */ - -/* - * 3 plane YCbCr - * index 0: Y plane, [7:0] Y - * index 1: Cb plane, [7:0] Cb - * index 2: Cr plane, [7:0] Cr - * or - * index 1: Cr plane, [7:0] Cr - * index 2: Cb plane, [7:0] Cb - */ -#define DRM_FORMAT_YUV410 fourcc_code('Y', 'U', 'V', '9') /* 4x4 subsampled Cb (1) and Cr (2) planes */ -#define DRM_FORMAT_YVU410 fourcc_code('Y', 'V', 'U', '9') /* 4x4 subsampled Cr (1) and Cb (2) planes */ -#define DRM_FORMAT_YUV411 fourcc_code('Y', 'U', '1', '1') /* 4x1 subsampled Cb (1) and Cr (2) planes */ -#define DRM_FORMAT_YVU411 fourcc_code('Y', 'V', '1', '1') /* 4x1 subsampled Cr (1) and Cb (2) planes */ -#define DRM_FORMAT_YUV420 fourcc_code('Y', 'U', '1', '2') /* 2x2 subsampled Cb (1) and Cr (2) planes */ -#define DRM_FORMAT_YVU420 fourcc_code('Y', 'V', '1', '2') /* 2x2 subsampled Cr (1) and Cb (2) planes */ -#define DRM_FORMAT_YUV422 fourcc_code('Y', 'U', '1', '6') /* 2x1 subsampled Cb (1) and Cr (2) planes */ -#define DRM_FORMAT_YVU422 fourcc_code('Y', 'V', '1', '6') /* 2x1 subsampled Cr (1) and Cb (2) planes */ -#define DRM_FORMAT_YUV444 fourcc_code('Y', 'U', '2', '4') /* non-subsampled Cb (1) and Cr (2) planes */ -#define DRM_FORMAT_YVU444 fourcc_code('Y', 'V', '2', '4') /* non-subsampled Cr (1) and Cb (2) planes */ - -#endif /* DRM_FOURCC_H */ diff -Nru libdrm-2.4.52/include/drm/drm.h libdrm-2.4.52+really2.4.21/include/drm/drm.h --- libdrm-2.4.52/include/drm/drm.h 2013-11-08 04:29:59.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/include/drm/drm.h 2010-06-07 01:11:46.000000000 +0000 @@ -181,7 +181,7 @@ _DRM_AGP = 3, /**< AGP/GART */ _DRM_SCATTER_GATHER = 4, /**< Scatter/gather memory for PCI DMA */ _DRM_CONSISTENT = 5, /**< Consistent memory for PCI DMA */ - _DRM_GEM = 6 /**< GEM object */ + _DRM_GEM = 6, /**< GEM object */ }; /** @@ -373,11 +373,7 @@ */ struct drm_buf_map { int count; /**< Length of the buffer list */ -#ifdef __cplusplus - void *virt; -#else void *virtual; /**< Mmap'd area in user-virtual */ -#endif struct drm_buf_pub *list; /**< Buffer information */ }; @@ -435,7 +431,7 @@ * DRM_IOCTL_UPDATE_DRAW ioctl argument type. */ typedef enum { - DRM_DRAWABLE_CLIPRECTS + DRM_DRAWABLE_CLIPRECTS, } drm_drawable_info_type_t; struct drm_update_draw { @@ -612,38 +608,6 @@ __u64 size; }; -/** DRM_IOCTL_GET_CAP ioctl argument type */ -struct drm_get_cap { - __u64 capability; - __u64 value; -}; - -/** - * DRM_CLIENT_CAP_STEREO_3D - * - * if set to 1, the DRM core will expose the stereo 3D capabilities of the - * monitor by advertising the supported 3D layouts in the flags of struct - * drm_mode_modeinfo. - */ -#define DRM_CLIENT_CAP_STEREO_3D 1 - -/** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ -struct drm_set_client_cap { - __u64 capability; - __u64 value; -}; - -#define DRM_CLOEXEC O_CLOEXEC -struct drm_prime_handle { - __u32 handle; - - /** Flags.. only applicable for handle->fd */ - __u32 flags; - - /** Returned dmabuf file descriptor */ - __s32 fd; -}; - #include "drm_mode.h" #define DRM_IOCTL_BASE 'd' @@ -664,8 +628,6 @@ #define DRM_IOCTL_GEM_CLOSE DRM_IOW (0x09, struct drm_gem_close) #define DRM_IOCTL_GEM_FLINK DRM_IOWR(0x0a, struct drm_gem_flink) #define DRM_IOCTL_GEM_OPEN DRM_IOWR(0x0b, struct drm_gem_open) -#define DRM_IOCTL_GET_CAP DRM_IOWR(0x0c, struct drm_get_cap) -#define DRM_IOCTL_SET_CLIENT_CAP DRM_IOW( 0x0d, struct drm_set_client_cap) #define DRM_IOCTL_SET_UNIQUE DRM_IOW( 0x10, struct drm_unique) #define DRM_IOCTL_AUTH_MAGIC DRM_IOW( 0x11, struct drm_auth) @@ -701,9 +663,6 @@ #define DRM_IOCTL_UNLOCK DRM_IOW( 0x2b, struct drm_lock) #define DRM_IOCTL_FINISH DRM_IOW( 0x2c, struct drm_lock) -#define DRM_IOCTL_PRIME_HANDLE_TO_FD DRM_IOWR(0x2d, struct drm_prime_handle) -#define DRM_IOCTL_PRIME_FD_TO_HANDLE DRM_IOWR(0x2e, struct drm_prime_handle) - #define DRM_IOCTL_AGP_ACQUIRE DRM_IO( 0x30) #define DRM_IOCTL_AGP_RELEASE DRM_IO( 0x31) #define DRM_IOCTL_AGP_ENABLE DRM_IOW( 0x32, struct drm_agp_mode) @@ -740,17 +699,6 @@ #define DRM_IOCTL_MODE_PAGE_FLIP DRM_IOWR(0xB0, struct drm_mode_crtc_page_flip) #define DRM_IOCTL_MODE_DIRTYFB DRM_IOWR(0xB1, struct drm_mode_fb_dirty_cmd) -#define DRM_IOCTL_MODE_CREATE_DUMB DRM_IOWR(0xB2, struct drm_mode_create_dumb) -#define DRM_IOCTL_MODE_MAP_DUMB DRM_IOWR(0xB3, struct drm_mode_map_dumb) -#define DRM_IOCTL_MODE_DESTROY_DUMB DRM_IOWR(0xB4, struct drm_mode_destroy_dumb) -#define DRM_IOCTL_MODE_GETPLANERESOURCES DRM_IOWR(0xB5, struct drm_mode_get_plane_res) -#define DRM_IOCTL_MODE_GETPLANE DRM_IOWR(0xB6, struct drm_mode_get_plane) -#define DRM_IOCTL_MODE_SETPLANE DRM_IOWR(0xB7, struct drm_mode_set_plane) -#define DRM_IOCTL_MODE_ADDFB2 DRM_IOWR(0xB8, struct drm_mode_fb_cmd2) -#define DRM_IOCTL_MODE_OBJ_GETPROPERTIES DRM_IOWR(0xB9, struct drm_mode_obj_get_properties) -#define DRM_IOCTL_MODE_OBJ_SETPROPERTY DRM_IOWR(0xBA, struct drm_mode_obj_set_property) -#define DRM_IOCTL_MODE_CURSOR2 DRM_IOWR(0xBB, struct drm_mode_cursor2) - /** * Device specific ioctls should only be in their respective headers * The device specific ioctl range is from 0x40 to 0x99. @@ -791,17 +739,6 @@ __u32 reserved; }; -#define DRM_CAP_DUMB_BUFFER 0x1 -#define DRM_CAP_VBLANK_HIGH_CRTC 0x2 -#define DRM_CAP_DUMB_PREFERRED_DEPTH 0x3 -#define DRM_CAP_DUMB_PREFER_SHADOW 0x4 -#define DRM_CAP_PRIME 0x5 -#define DRM_CAP_TIMESTAMP_MONOTONIC 0x6 -#define DRM_CAP_ASYNC_PAGE_FLIP 0x7 - -#define DRM_PRIME_CAP_IMPORT 0x1 -#define DRM_PRIME_CAP_EXPORT 0x2 - /* typedef area */ typedef struct drm_clip_rect drm_clip_rect_t; typedef struct drm_drawable_info drm_drawable_info_t; diff -Nru libdrm-2.4.52/include/drm/drm_mode.h libdrm-2.4.52+really2.4.21/include/drm/drm_mode.h --- libdrm-2.4.52/include/drm/drm_mode.h 2013-11-08 04:29:59.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/include/drm/drm_mode.h 2010-06-07 01:11:46.000000000 +0000 @@ -42,31 +42,20 @@ /* Video mode flags */ /* bit compatible with the xorg definitions. */ -#define DRM_MODE_FLAG_PHSYNC (1<<0) -#define DRM_MODE_FLAG_NHSYNC (1<<1) -#define DRM_MODE_FLAG_PVSYNC (1<<2) -#define DRM_MODE_FLAG_NVSYNC (1<<3) -#define DRM_MODE_FLAG_INTERLACE (1<<4) -#define DRM_MODE_FLAG_DBLSCAN (1<<5) -#define DRM_MODE_FLAG_CSYNC (1<<6) -#define DRM_MODE_FLAG_PCSYNC (1<<7) -#define DRM_MODE_FLAG_NCSYNC (1<<8) -#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */ -#define DRM_MODE_FLAG_BCAST (1<<10) -#define DRM_MODE_FLAG_PIXMUX (1<<11) -#define DRM_MODE_FLAG_DBLCLK (1<<12) -#define DRM_MODE_FLAG_CLKDIV2 (1<<13) -#define DRM_MODE_FLAG_3D_MASK (0x1f<<14) -#define DRM_MODE_FLAG_3D_NONE (0<<14) -#define DRM_MODE_FLAG_3D_FRAME_PACKING (1<<14) -#define DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE (2<<14) -#define DRM_MODE_FLAG_3D_LINE_ALTERNATIVE (3<<14) -#define DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL (4<<14) -#define DRM_MODE_FLAG_3D_L_DEPTH (5<<14) -#define DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH (6<<14) -#define DRM_MODE_FLAG_3D_TOP_AND_BOTTOM (7<<14) -#define DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF (8<<14) - +#define DRM_MODE_FLAG_PHSYNC (1<<0) +#define DRM_MODE_FLAG_NHSYNC (1<<1) +#define DRM_MODE_FLAG_PVSYNC (1<<2) +#define DRM_MODE_FLAG_NVSYNC (1<<3) +#define DRM_MODE_FLAG_INTERLACE (1<<4) +#define DRM_MODE_FLAG_DBLSCAN (1<<5) +#define DRM_MODE_FLAG_CSYNC (1<<6) +#define DRM_MODE_FLAG_PCSYNC (1<<7) +#define DRM_MODE_FLAG_NCSYNC (1<<8) +#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */ +#define DRM_MODE_FLAG_BCAST (1<<10) +#define DRM_MODE_FLAG_PIXMUX (1<<11) +#define DRM_MODE_FLAG_DBLCLK (1<<12) +#define DRM_MODE_FLAG_CLKDIV2 (1<<13) /* DPMS flags */ /* bit compatible with the xorg definitions. */ @@ -85,7 +74,6 @@ /* Dithering mode options */ #define DRM_MODE_DITHERING_OFF 0 #define DRM_MODE_DITHERING_ON 1 -#define DRM_MODE_DITHERING_AUTO 2 /* Dirty info options */ #define DRM_MODE_DIRTY_OFF 0 @@ -97,7 +85,7 @@ __u16 hdisplay, hsync_start, hsync_end, htotal, hskew; __u16 vdisplay, vsync_start, vsync_end, vtotal, vscan; - __u32 vrefresh; + __u32 vrefresh; /* vertical refresh * 1000 */ __u32 flags; __u32 type; @@ -131,43 +119,6 @@ struct drm_mode_modeinfo mode; }; -#define DRM_MODE_PRESENT_TOP_FIELD (1<<0) -#define DRM_MODE_PRESENT_BOTTOM_FIELD (1<<1) - -/* Planes blend with or override other bits on the CRTC */ -struct drm_mode_set_plane { - __u32 plane_id; - __u32 crtc_id; - __u32 fb_id; /* fb object contains surface format type */ - __u32 flags; - - /* Signed dest location allows it to be partially off screen */ - __s32 crtc_x, crtc_y; - __u32 crtc_w, crtc_h; - - /* Source values are 16.16 fixed point */ - __u32 src_x, src_y; - __u32 src_h, src_w; -}; - -struct drm_mode_get_plane { - __u32 plane_id; - - __u32 crtc_id; - __u32 fb_id; - - __u32 possible_crtcs; - __u32 gamma_size; - - __u32 count_format_types; - __u64 format_type_ptr; -}; - -struct drm_mode_get_plane_res { - __u64 plane_id_ptr; - __u32 count_planes; -}; - #define DRM_MODE_ENCODER_NONE 0 #define DRM_MODE_ENCODER_DAC 1 #define DRM_MODE_ENCODER_TMDS 2 @@ -209,7 +160,6 @@ #define DRM_MODE_CONNECTOR_HDMIA 11 #define DRM_MODE_CONNECTOR_HDMIB 12 #define DRM_MODE_CONNECTOR_TV 13 -#define DRM_MODE_CONNECTOR_eDP 14 struct drm_mode_get_connector { @@ -237,7 +187,6 @@ #define DRM_MODE_PROP_IMMUTABLE (1<<2) #define DRM_MODE_PROP_ENUM (1<<3) /* enumerated type with text strings */ #define DRM_MODE_PROP_BLOB (1<<4) -#define DRM_MODE_PROP_BITMASK (1<<5) /* bitmask of enumerated types */ struct drm_mode_property_enum { __u64 value; @@ -262,30 +211,6 @@ __u32 connector_id; }; -#define DRM_MODE_OBJECT_CRTC 0xcccccccc -#define DRM_MODE_OBJECT_CONNECTOR 0xc0c0c0c0 -#define DRM_MODE_OBJECT_ENCODER 0xe0e0e0e0 -#define DRM_MODE_OBJECT_MODE 0xdededede -#define DRM_MODE_OBJECT_PROPERTY 0xb0b0b0b0 -#define DRM_MODE_OBJECT_FB 0xfbfbfbfb -#define DRM_MODE_OBJECT_BLOB 0xbbbbbbbb -#define DRM_MODE_OBJECT_PLANE 0xeeeeeeee - -struct drm_mode_obj_get_properties { - __u64 props_ptr; - __u64 prop_values_ptr; - __u32 count_props; - __u32 obj_id; - __u32 obj_type; -}; - -struct drm_mode_obj_set_property { - __u64 value; - __u32 prop_id; - __u32 obj_id; - __u32 obj_type; -}; - struct drm_mode_get_blob { __u32 blob_id; __u32 length; @@ -302,33 +227,6 @@ __u32 handle; }; -#define DRM_MODE_FB_INTERLACED (1<<0) /* for interlaced framebuffers */ - -struct drm_mode_fb_cmd2 { - __u32 fb_id; - __u32 width, height; - __u32 pixel_format; /* fourcc code from drm_fourcc.h */ - __u32 flags; - - /* - * In case of planar formats, this ioctl allows up to 4 - * buffer objects with offsets and pitches per plane. - * The pitch and offset order is dictated by the fourcc, - * e.g. NV12 (http://fourcc.org/yuv.php#NV12) is described as: - * - * YUV 4:2:0 image with a plane of 8 bit Y samples - * followed by an interleaved U/V plane containing - * 8 bit 2x2 subsampled colour difference samples. - * - * So it would consist of Y as offset[0] and UV as - * offset[1]. Note that offset[0] will generally - * be 0. - */ - __u32 handles[4]; - __u32 pitches[4]; /* pitch for each plane */ - __u32 offsets[4]; /* offset of each plane */ -}; - #define DRM_MODE_FB_DIRTY_ANNOTATE_COPY 0x01 #define DRM_MODE_FB_DIRTY_ANNOTATE_FILL 0x02 #define DRM_MODE_FB_DIRTY_FLAGS 0x03 @@ -401,19 +299,6 @@ __u32 handle; }; -struct drm_mode_cursor2 { - __u32 flags; - __u32 crtc_id; - __s32 x; - __s32 y; - __u32 width; - __u32 height; - /* driver specific handle */ - __u32 handle; - __s32 hot_x; - __s32 hot_y; -}; - struct drm_mode_crtc_lut { __u32 crtc_id; __u32 gamma_size; @@ -425,8 +310,7 @@ }; #define DRM_MODE_PAGE_FLIP_EVENT 0x01 -#define DRM_MODE_PAGE_FLIP_ASYNC 0x02 -#define DRM_MODE_PAGE_FLIP_FLAGS (DRM_MODE_PAGE_FLIP_EVENT|DRM_MODE_PAGE_FLIP_ASYNC) +#define DRM_MODE_PAGE_FLIP_FLAGS DRM_MODE_PAGE_FLIP_EVENT /* * Request a page flip on the specified crtc. @@ -458,33 +342,4 @@ __u64 user_data; }; -/* create a dumb scanout buffer */ -struct drm_mode_create_dumb { - __u32 height; - __u32 width; - __u32 bpp; - __u32 flags; - /* handle, pitch, size will be returned */ - __u32 handle; - __u32 pitch; - __u64 size; -}; - -/* set up for mmap of a dumb scanout buffer */ -struct drm_mode_map_dumb { - /** Handle for the object being mapped. */ - __u32 handle; - __u32 pad; - /** - * Fake offset to use for subsequent mmap call - * - * This is a fixed-size type for 32/64 compatibility. - */ - __u64 offset; -}; - -struct drm_mode_destroy_dumb { - __u32 handle; -}; - #endif diff -Nru libdrm-2.4.52/include/drm/i915_drm.h libdrm-2.4.52+really2.4.21/include/drm/i915_drm.h --- libdrm-2.4.52/include/drm/i915_drm.h 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/include/drm/i915_drm.h 2010-06-07 23:33:16.000000000 +0000 @@ -27,37 +27,12 @@ #ifndef _I915_DRM_H_ #define _I915_DRM_H_ -#include +#include "drm.h" /* Please note that modifications to all structs defined here are * subject to backwards-compatibility constraints. */ -/** - * DOC: uevents generated by i915 on it's device node - * - * I915_L3_PARITY_UEVENT - Generated when the driver receives a parity mismatch - * event from the gpu l3 cache. Additional information supplied is ROW, - * BANK, SUBBANK, SLICE of the affected cacheline. Userspace should keep - * track of these events and if a specific cache-line seems to have a - * persistent error remap it with the l3 remapping tool supplied in - * intel-gpu-tools. The value supplied with the event is always 1. - * - * I915_ERROR_UEVENT - Generated upon error detection, currently only via - * hangcheck. The error detection event is a good indicator of when things - * began to go badly. The value supplied with the event is a 1 upon error - * detection, and a 0 upon reset completion, signifying no more error - * exists. NOTE: Disabling hangcheck or reset via module parameter will - * cause the related events to not be seen. - * - * I915_RESET_UEVENT - Event is generated just before an attempt to reset the - * the GPU. The value supplied with the event is always 1. NOTE: Disable - * reset via module parameter will cause this event to not be seen. - */ -#define I915_L3_PARITY_UEVENT "L3_PARITY_ERROR" -#define I915_ERROR_UEVENT "ERROR" -#define I915_RESET_UEVENT "RESET" - /* Each region is a minimum of 16k, and there are at most 255 of them. */ #define I915_NR_TEX_REGIONS 255 /* table size 2k - maximum due to use @@ -214,15 +189,6 @@ #define DRM_I915_OVERLAY_PUT_IMAGE 0x27 #define DRM_I915_OVERLAY_ATTRS 0x28 #define DRM_I915_GEM_EXECBUFFER2 0x29 -#define DRM_I915_GET_SPRITE_COLORKEY 0x2a -#define DRM_I915_SET_SPRITE_COLORKEY 0x2b -#define DRM_I915_GEM_WAIT 0x2c -#define DRM_I915_GEM_CONTEXT_CREATE 0x2d -#define DRM_I915_GEM_CONTEXT_DESTROY 0x2e -#define DRM_I915_GEM_SET_CACHING 0x2f -#define DRM_I915_GEM_GET_CACHING 0x30 -#define DRM_I915_REG_READ 0x31 -#define DRM_I915_GET_RESET_STATS 0x32 #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) #define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) @@ -240,15 +206,12 @@ #define DRM_IOCTL_I915_SET_VBLANK_PIPE DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SET_VBLANK_PIPE, drm_i915_vblank_pipe_t) #define DRM_IOCTL_I915_GET_VBLANK_PIPE DRM_IOR( DRM_COMMAND_BASE + DRM_I915_GET_VBLANK_PIPE, drm_i915_vblank_pipe_t) #define DRM_IOCTL_I915_VBLANK_SWAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t) -#define DRM_IOCTL_I915_HWS_ADDR DRM_IOW(DRM_COMMAND_BASE + DRM_I915_HWS_ADDR, struct drm_i915_gem_init) #define DRM_IOCTL_I915_GEM_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init) #define DRM_IOCTL_I915_GEM_EXECBUFFER DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer) #define DRM_IOCTL_I915_GEM_EXECBUFFER2 DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER2, struct drm_i915_gem_execbuffer2) #define DRM_IOCTL_I915_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin) #define DRM_IOCTL_I915_GEM_UNPIN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin) #define DRM_IOCTL_I915_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy) -#define DRM_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_SET_CACHING, struct drm_i915_gem_caching) -#define DRM_IOCTL_I915_GEM_GET_CACHING DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_GET_CACHING, struct drm_i915_gem_caching) #define DRM_IOCTL_I915_GEM_THROTTLE DRM_IO ( DRM_COMMAND_BASE + DRM_I915_GEM_THROTTLE) #define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT) #define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT) @@ -264,15 +227,8 @@ #define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture) #define DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GET_PIPE_FROM_CRTC_ID, struct drm_i915_get_pipe_from_crtc_id) #define DRM_IOCTL_I915_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MADVISE, struct drm_i915_gem_madvise) -#define DRM_IOCTL_I915_OVERLAY_PUT_IMAGE DRM_IOW(DRM_COMMAND_BASE + DRM_I915_OVERLAY_PUT_IMAGE, struct drm_intel_overlay_put_image) +#define DRM_IOCTL_I915_OVERLAY_PUT_IMAGE DRM_IOW(DRM_COMMAND_BASE + DRM_IOCTL_I915_OVERLAY_ATTRS, struct drm_intel_overlay_put_image) #define DRM_IOCTL_I915_OVERLAY_ATTRS DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_OVERLAY_ATTRS, struct drm_intel_overlay_attrs) -#define DRM_IOCTL_I915_SET_SPRITE_COLORKEY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_SET_SPRITE_COLORKEY, struct drm_intel_sprite_colorkey) -#define DRM_IOCTL_I915_GET_SPRITE_COLORKEY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_SET_SPRITE_COLORKEY, struct drm_intel_sprite_colorkey) -#define DRM_IOCTL_I915_GEM_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_WAIT, struct drm_i915_gem_wait) -#define DRM_IOCTL_I915_GEM_CONTEXT_CREATE DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_CREATE, struct drm_i915_gem_context_create) -#define DRM_IOCTL_I915_GEM_CONTEXT_DESTROY DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_DESTROY, struct drm_i915_gem_context_destroy) -#define DRM_IOCTL_I915_REG_READ DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_REG_READ, struct drm_i915_reg_read) -#define DRM_IOCTL_I915_GET_RESET_STATS DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GET_RESET_STATS, struct drm_i915_reset_stats) /* Allow drivers to submit batchbuffers directly to hardware, relying * on the security mechanisms provided by hardware. @@ -320,23 +276,6 @@ #define I915_PARAM_HAS_PAGEFLIPPING 8 #define I915_PARAM_HAS_EXECBUF2 9 #define I915_PARAM_HAS_BSD 10 -#define I915_PARAM_HAS_BLT 11 -#define I915_PARAM_HAS_RELAXED_FENCING 12 -#define I915_PARAM_HAS_COHERENT_RINGS 13 -#define I915_PARAM_HAS_EXEC_CONSTANTS 14 -#define I915_PARAM_HAS_RELAXED_DELTA 15 -#define I915_PARAM_HAS_GEN7_SOL_RESET 16 -#define I915_PARAM_HAS_LLC 17 -#define I915_PARAM_HAS_ALIASING_PPGTT 18 -#define I915_PARAM_HAS_WAIT_TIMEOUT 19 -#define I915_PARAM_HAS_SEMAPHORES 20 -#define I915_PARAM_HAS_PRIME_VMAP_FLUSH 21 -#define I915_PARAM_HAS_VEBOX 22 -#define I915_PARAM_HAS_SECURE_BATCHES 23 -#define I915_PARAM_HAS_PINNED_BATCHES 24 -#define I915_PARAM_HAS_EXEC_NO_RELOC 25 -#define I915_PARAM_HAS_EXEC_HANDLE_LUT 26 -#define I915_PARAM_HAS_WT 27 typedef struct drm_i915_getparam { int param; @@ -657,11 +596,7 @@ __u64 offset; #define EXEC_OBJECT_NEEDS_FENCE (1<<0) -#define EXEC_OBJECT_NEEDS_GTT (1<<1) -#define EXEC_OBJECT_WRITE (1<<2) -#define __EXEC_OBJECT_UNKNOWN_FLAGS -(EXEC_OBJECT_WRITE<<1) __u64 flags; - __u64 rsvd1; __u64 rsvd2; }; @@ -682,65 +617,13 @@ __u32 num_cliprects; /** This is a struct drm_clip_rect *cliprects */ __u64 cliprects_ptr; -#define I915_EXEC_RING_MASK (7<<0) -#define I915_EXEC_DEFAULT (0<<0) -#define I915_EXEC_RENDER (1<<0) -#define I915_EXEC_BSD (2<<0) -#define I915_EXEC_BLT (3<<0) -#define I915_EXEC_VEBOX (4<<0) - -/* Used for switching the constants addressing mode on gen4+ RENDER ring. - * Gen6+ only supports relative addressing to dynamic state (default) and - * absolute addressing. - * - * These flags are ignored for the BSD and BLT rings. - */ -#define I915_EXEC_CONSTANTS_MASK (3<<6) -#define I915_EXEC_CONSTANTS_REL_GENERAL (0<<6) /* default */ -#define I915_EXEC_CONSTANTS_ABSOLUTE (1<<6) -#define I915_EXEC_CONSTANTS_REL_SURFACE (2<<6) /* gen4/5 only */ +#define I915_EXEC_RENDER (1 << 0) +#define I915_EXEC_BSD (1 << 1) __u64 flags; - __u64 rsvd1; /* now used for context info */ + __u64 rsvd1; __u64 rsvd2; }; -/** Resets the SO write offset registers for transform feedback on gen7. */ -#define I915_EXEC_GEN7_SOL_RESET (1<<8) - -/** Request a privileged ("secure") batch buffer. Note only available for - * DRM_ROOT_ONLY | DRM_MASTER processes. - */ -#define I915_EXEC_SECURE (1<<9) - -/** Inform the kernel that the batch is and will always be pinned. This - * negates the requirement for a workaround to be performed to avoid - * an incoherent CS (such as can be found on 830/845). If this flag is - * not passed, the kernel will endeavour to make sure the batch is - * coherent with the CS before execution. If this flag is passed, - * userspace assumes the responsibility for ensuring the same. - */ -#define I915_EXEC_IS_PINNED (1<<10) - -/** Provide a hint to the kernel that the command stream and auxilliary - * state buffers already holds the correct presumed addresses and so the - * relocation process may be skipped if no buffers need to be moved in - * preparation for the execbuffer. - */ -#define I915_EXEC_NO_RELOC (1<<11) - -/** Use the reloc.handle as an index into the exec object array rather - * than as the per-file handle. - */ -#define I915_EXEC_HANDLE_LUT (1<<12) - -#define __I915_EXEC_UNKNOWN_FLAGS -(I915_EXEC_HANDLE_LUT<<1) - -#define I915_EXEC_CONTEXT_ID_MASK (0xffffffff) -#define i915_execbuffer2_set_context_id(eb2, context) \ - (eb2).rsvd1 = context & I915_EXEC_CONTEXT_ID_MASK -#define i915_execbuffer2_get_context_id(eb2) \ - ((eb2).rsvd1 & I915_EXEC_CONTEXT_ID_MASK) - struct drm_i915_gem_pin { /** Handle of the buffer to be pinned. */ __u32 handle; @@ -763,55 +646,10 @@ /** Handle of the buffer to check for busy */ __u32 handle; - /** Return busy status (1 if busy, 0 if idle). - * The high word is used to indicate on which rings the object - * currently resides: - * 16:31 - busy (r or r/w) rings (16 render, 17 bsd, 18 blt, etc) - */ + /** Return busy status (1 if busy, 0 if idle) */ __u32 busy; }; -/** - * I915_CACHING_NONE - * - * GPU access is not coherent with cpu caches. Default for machines without an - * LLC. - */ -#define I915_CACHING_NONE 0 -/** - * I915_CACHING_CACHED - * - * GPU access is coherent with cpu caches and furthermore the data is cached in - * last-level caches shared between cpu cores and the gpu GT. Default on - * machines with HAS_LLC. - */ -#define I915_CACHING_CACHED 1 -/** - * I915_CACHING_DISPLAY - * - * Special GPU caching mode which is coherent with the scanout engines. - * Transparently falls back to I915_CACHING_NONE on platforms where no special - * cache mode (like write-through or gfdt flushing) is available. The kernel - * automatically sets this mode when using a buffer as a scanout target. - * Userspace can manually set this mode to avoid a costly stall and clflush in - * the hotpath of drawing the first frame. - */ -#define I915_CACHING_DISPLAY 2 - -struct drm_i915_gem_caching { - /** - * Handle of the buffer to set/get the caching level of. */ - __u32 handle; - - /** - * Cacheing level to apply or return value - * - * bits0-15 are for generic caching control (i.e. the above defined - * values). bits16-31 are reserved for platform-specific variations - * (e.g. l3$ caching on gen7). */ - __u32 caching; -}; - #define I915_TILING_NONE 0 #define I915_TILING_X 1 #define I915_TILING_Y 2 @@ -977,76 +815,4 @@ __u32 gamma5; }; -/* - * Intel sprite handling - * - * Color keying works with a min/mask/max tuple. Both source and destination - * color keying is allowed. - * - * Source keying: - * Sprite pixels within the min & max values, masked against the color channels - * specified in the mask field, will be transparent. All other pixels will - * be displayed on top of the primary plane. For RGB surfaces, only the min - * and mask fields will be used; ranged compares are not allowed. - * - * Destination keying: - * Primary plane pixels that match the min value, masked against the color - * channels specified in the mask field, will be replaced by corresponding - * pixels from the sprite plane. - * - * Note that source & destination keying are exclusive; only one can be - * active on a given plane. - */ - -#define I915_SET_COLORKEY_NONE (1<<0) /* disable color key matching */ -#define I915_SET_COLORKEY_DESTINATION (1<<1) -#define I915_SET_COLORKEY_SOURCE (1<<2) -struct drm_intel_sprite_colorkey { - __u32 plane_id; - __u32 min_value; - __u32 channel_mask; - __u32 max_value; - __u32 flags; -}; - -struct drm_i915_gem_wait { - /** Handle of BO we shall wait on */ - __u32 bo_handle; - __u32 flags; - /** Number of nanoseconds to wait, Returns time remaining. */ - __s64 timeout_ns; -}; - -struct drm_i915_gem_context_create { - /* output: id of new context*/ - __u32 ctx_id; - __u32 pad; -}; - -struct drm_i915_gem_context_destroy { - __u32 ctx_id; - __u32 pad; -}; - -struct drm_i915_reg_read { - __u64 offset; - __u64 val; /* Return value */ -}; - -struct drm_i915_reset_stats { - __u32 ctx_id; - __u32 flags; - - /* All resets since boot/module reload, for all contexts */ - __u32 reset_count; - - /* Number of batches lost when active in GPU, for this context */ - __u32 batch_active; - - /* Number of batches lost pending for execution, for this context */ - __u32 batch_pending; - - __u32 pad; -}; - -#endif /* _I915_DRM_H_ */ +#endif /* _I915_DRM_H_ */ diff -Nru libdrm-2.4.52/include/drm/Makefile libdrm-2.4.52+really2.4.21/include/drm/Makefile --- libdrm-2.4.52/include/drm/Makefile 2014-01-20 19:04:49.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/include/drm/Makefile 2010-06-10 16:04:04.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. +# Makefile.in generated by automake 1.11.1 from Makefile.am. # include/drm/Makefile. Generated from Makefile.in by configure. -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -39,51 +40,6 @@ # better solutions are welcome. -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/libdrm pkgincludedir = $(includedir)/libdrm pkglibdir = $(libdir)/libdrm @@ -100,46 +56,31 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = x86_64-unknown-linux-gnu -host_triplet = x86_64-unknown-linux-gnu -am__append_1 = vmwgfx_drm.h +build_triplet = i686-pc-linux-gnu +host_triplet = i686-pc-linux-gnu +#am__append_1 = vmwgfx_drm.h subdir = include/drm -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(am__klibdrminclude_HEADERS_DIST) +DIST_COMMON = $(am__klibdrminclude_HEADERS_DIST) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_$(V)) -am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) -am__v_P_0 = false -am__v_P_1 = : AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = +am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ -am__v_at_1 = SOURCES = DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__klibdrminclude_HEADERS_DIST = drm.h drm_mode.h drm_fourcc.h \ - drm_sarea.h i915_drm.h mga_drm.h nouveau_drm.h r128_drm.h \ - radeon_drm.h savage_drm.h sis_drm.h via_drm.h mach64_drm.h \ - qxl_drm.h vmwgfx_drm.h +am__klibdrminclude_HEADERS_DIST = drm.h drm_mode.h drm_sarea.h \ + i915_drm.h mga_drm.h nouveau_drm.h r128_drm.h radeon_drm.h \ + savage_drm.h sis_drm.h via_drm.h mach64_drm.h vmwgfx_drm.h am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -161,55 +102,31 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } am__installdirs = "$(DESTDIR)$(klibdrmincludedir)" HEADERS = $(klibdrminclude_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = ${SHELL} /home/kwg/Projects/drm/build-aux/missing aclocal-1.13 +ACLOCAL = ${SHELL} /home/anholt/src/drm/missing --run aclocal-1.11 ALLOCA = -AMTAR = $${TAR-tar} +AMTAR = ${SHELL} /home/anholt/src/drm/missing --run tar AM_DEFAULT_VERBOSITY = 0 AR = ar -AUTOCONF = ${SHELL} /home/kwg/Projects/drm/build-aux/missing autoconf -AUTOHEADER = ${SHELL} /home/kwg/Projects/drm/build-aux/missing autoheader -AUTOMAKE = ${SHELL} /home/kwg/Projects/drm/build-aux/missing automake-1.13 +AUTOCONF = ${SHELL} /home/anholt/src/drm/missing --run autoconf +AUTOHEADER = ${SHELL} /home/anholt/src/drm/missing --run autoheader +AUTOMAKE = ${SHELL} /home/anholt/src/drm/missing --run automake-1.11 AWK = gawk -CAIRO_CFLAGS = -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/libpng16 -CAIRO_LIBS = -lcairo +CAIRO_CFLAGS = -I/home/anholt/src/prefix/include/cairo -I/home/anholt/src/prefix/include/pixman-1 -I/home/anholt/src/prefix/include -I/usr/include/freetype2 -I/usr/include/libpng12 +CAIRO_LIBS = -L/home/anholt/src/prefix/lib -lcairo CC = gcc CCDEPMODE = depmode=gcc3 CFLAGS = -g -O2 -CLOCK_LIB = +CLOCK_LIB = -lrt CPP = gcc -E CPPFLAGS = CYGPATH_W = echo DEFS = -DHAVE_CONFIG_H DEPDIR = .deps -DLLTOOL = false DSYMUTIL = DUMPBIN = ECHO_C = @@ -224,20 +141,17 @@ INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} INSTALL_STRIP_PROGRAM = $(install_sh) -c -s -LD = /usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64 +LD = /usr/bin/ld LDFLAGS = LIBOBJS = LIBS = LIBTOOL = $(SHELL) $(top_builddir)/libtool -LIBUDEV_CFLAGS = -LIBUDEV_LIBS = -ludev +LIBUDEV_CFLAGS = +LIBUDEV_LIBS = -ludev LIPO = LN_S = ln -s LTLIBOBJS = -MAINT = -MAKEINFO = ${SHELL} /home/kwg/Projects/drm/build-aux/missing makeinfo -MANIFEST_TOOL = : -MANPAGES_STYLESHEET = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl +MAKEINFO = ${SHELL} /home/anholt/src/drm/missing --run makeinfo MKDIR_P = /bin/mkdir -p NM = /usr/bin/nm -B NMEDIT = @@ -246,89 +160,83 @@ OTOOL = OTOOL64 = PACKAGE = libdrm -PACKAGE_BUGREPORT = https://bugs.freedesktop.org/enter_bug.cgi?product=DRI +PACKAGE_BUGREPORT = dri-devel@lists.sourceforge.net PACKAGE_NAME = libdrm -PACKAGE_STRING = libdrm 2.4.52 +PACKAGE_STRING = libdrm 2.4.21 PACKAGE_TARNAME = libdrm PACKAGE_URL = -PACKAGE_VERSION = 2.4.52 +PACKAGE_VERSION = 2.4.21 PATH_SEPARATOR = : -PCIACCESS_CFLAGS = -PCIACCESS_LIBS = -lpciaccess PKG_CONFIG = /usr/bin/pkg-config PKG_CONFIG_LIBDIR = -PKG_CONFIG_PATH = -PTHREADSTUBS_CFLAGS = -PTHREADSTUBS_LIBS = +PKG_CONFIG_PATH = /home/anholt/src/prefix/lib/pkgconfig +PTHREADSTUBS_CFLAGS = +PTHREADSTUBS_LIBS = RANLIB = ranlib SED = /bin/sed SET_MAKE = SHELL = /bin/sh STRIP = strip -VALGRIND_CFLAGS = -I/usr/include/valgrind -VALGRIND_LIBS = -L/usr/lib64/valgrind -lcoregrind-amd64-linux -lvex-amd64-linux -lgcc -VERSION = 2.4.52 -WARN_CFLAGS = -Wall -Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wstrict-aliasing=2 -Winit-self -Wdeclaration-after-statement -Wold-style-definition -Wno-missing-field-initializers -Wno-unused-parameter -Wno-attributes -Wno-long-long -Winline -XSLTPROC = /usr/bin/xsltproc -abs_builddir = /home/kwg/Projects/drm/include/drm -abs_srcdir = /home/kwg/Projects/drm/include/drm -abs_top_builddir = /home/kwg/Projects/drm -abs_top_srcdir = /home/kwg/Projects/drm -ac_ct_AR = ar +VERSION = 2.4.21 +WARN_CFLAGS = -Wall -Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations -Wdeclaration-after-statement -Wold-style-definition -Wno-missing-field-initializers -Wno-unused-parameter -Wno-attributes -Wno-long-long -Winline +abs_builddir = /home/anholt/src/drm/include/drm +abs_srcdir = /home/anholt/src/drm/include/drm +abs_top_builddir = /home/anholt/src/drm +abs_top_srcdir = /home/anholt/src/drm ac_ct_CC = gcc ac_ct_DUMPBIN = am__include = include am__leading_dot = . am__quote = -am__tar = $${TAR-tar} chof - "$$tardir" -am__untar = $${TAR-tar} xf - +am__tar = ${AMTAR} chof - "$$tardir" +am__untar = ${AMTAR} xf - bindir = ${exec_prefix}/bin -build = x86_64-unknown-linux-gnu +build = i686-pc-linux-gnu build_alias = -build_cpu = x86_64 +build_cpu = i686 build_os = linux-gnu -build_vendor = unknown +build_vendor = pc builddir = . datadir = ${datarootdir} datarootdir = ${prefix}/share docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} dvidir = ${docdir} exec_prefix = ${prefix} -host = x86_64-unknown-linux-gnu +host = i686-pc-linux-gnu host_alias = -host_cpu = x86_64 +host_cpu = i686 host_os = linux-gnu -host_vendor = unknown +host_vendor = pc htmldir = ${docdir} includedir = ${prefix}/include infodir = ${datarootdir}/info -install_sh = ${SHELL} /home/kwg/Projects/drm/build-aux/install-sh +install_sh = ${SHELL} /home/anholt/src/drm/install-sh kernel_source = -libdir = /usr/lib64 +libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale localstatedir = ${prefix}/var +lt_ECHO = /bin/echo mandir = ${datarootdir}/man -mkdir_p = $(MKDIR_P) +mkdir_p = /bin/mkdir -p oldincludedir = /usr/include pdfdir = ${docdir} -pkgconfigdir = /usr/lib64/pkgconfig -prefix = /usr +pkgconfigdir = ${exec_prefix}/lib/pkgconfig +prefix = /home/anholt/src/prefix program_transform_name = s,x,x, psdir = ${docdir} sbindir = ${exec_prefix}/sbin sharedstatedir = ${prefix}/com srcdir = . -sysconfdir = /etc +sysconfdir = ${prefix}/etc target_alias = top_build_prefix = ../../ top_builddir = ../.. top_srcdir = ../.. klibdrmincludedir = ${includedir}/libdrm -klibdrminclude_HEADERS = drm.h drm_mode.h drm_fourcc.h drm_sarea.h \ - i915_drm.h mga_drm.h nouveau_drm.h r128_drm.h radeon_drm.h \ - savage_drm.h sis_drm.h via_drm.h mach64_drm.h qxl_drm.h \ - $(am__append_1) +klibdrminclude_HEADERS = drm.h drm_mode.h drm_sarea.h i915_drm.h \ + mga_drm.h nouveau_drm.h r128_drm.h radeon_drm.h savage_drm.h \ + sis_drm.h via_drm.h mach64_drm.h $(am__append_1) all: all-am .SUFFIXES: @@ -370,11 +278,8 @@ -rm -rf .libs _libs install-klibdrmincludeHEADERS: $(klibdrminclude_HEADERS) @$(NORMAL_INSTALL) + test -z "$(klibdrmincludedir)" || $(MKDIR_P) "$(DESTDIR)$(klibdrmincludedir)" @list='$(klibdrminclude_HEADERS)'; test -n "$(klibdrmincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(klibdrmincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(klibdrmincludedir)" || exit 1; \ - fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -388,17 +293,30 @@ @$(NORMAL_UNINSTALL) @list='$(klibdrminclude_HEADERS)'; test -n "$(klibdrmincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(klibdrmincludedir)'; $(am__uninstall_files_from_dir) + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(klibdrmincludedir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(klibdrmincludedir)" && rm -f $$files + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - $(am__define_uniq_tagged_files); \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -410,11 +328,15 @@ $$unique; \ fi; \ fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -423,21 +345,6 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -489,15 +396,10 @@ installcheck: installcheck-am install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: @@ -577,19 +479,18 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool cscopelist-am ctags ctags-am distclean \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-klibdrmincludeHEADERS \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-klibdrmincludeHEADERS +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool ctags distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-klibdrmincludeHEADERS install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-klibdrmincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru libdrm-2.4.52/include/drm/Makefile.am libdrm-2.4.52+really2.4.21/include/drm/Makefile.am --- libdrm-2.4.52/include/drm/Makefile.am 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/include/drm/Makefile.am 2010-06-07 01:11:46.000000000 +0000 @@ -26,7 +26,6 @@ klibdrminclude_HEADERS = \ drm.h \ drm_mode.h \ - drm_fourcc.h \ drm_sarea.h \ i915_drm.h \ mga_drm.h \ @@ -36,8 +35,8 @@ savage_drm.h \ sis_drm.h \ via_drm.h \ - mach64_drm.h \ - qxl_drm.h + mach64_drm.h + if HAVE_VMWGFX klibdrminclude_HEADERS += vmwgfx_drm.h diff -Nru libdrm-2.4.52/include/drm/Makefile.in libdrm-2.4.52+really2.4.21/include/drm/Makefile.in --- libdrm-2.4.52/include/drm/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/include/drm/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,597 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Copyright 2005 Adam Jackson. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# on the rights to use, copy, modify, merge, publish, distribute, sub -# license, and/or sell copies of the Software, and to permit persons to whom -# the Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL -# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -# XXX airlied says, nothing besides *_drm.h and drm*.h should be necessary. -# however, r300 and via need their reg headers installed in order to build. -# better solutions are welcome. - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VMWGFX_TRUE@am__append_1 = vmwgfx_drm.h -subdir = include/drm -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(am__klibdrminclude_HEADERS_DIST) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__klibdrminclude_HEADERS_DIST = drm.h drm_mode.h drm_fourcc.h \ - drm_sarea.h i915_drm.h mga_drm.h nouveau_drm.h r128_drm.h \ - radeon_drm.h savage_drm.h sis_drm.h via_drm.h mach64_drm.h \ - qxl_drm.h vmwgfx_drm.h -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(klibdrmincludedir)" -HEADERS = $(klibdrminclude_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -klibdrmincludedir = ${includedir}/libdrm -klibdrminclude_HEADERS = drm.h drm_mode.h drm_fourcc.h drm_sarea.h \ - i915_drm.h mga_drm.h nouveau_drm.h r128_drm.h radeon_drm.h \ - savage_drm.h sis_drm.h via_drm.h mach64_drm.h qxl_drm.h \ - $(am__append_1) -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/drm/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign include/drm/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-klibdrmincludeHEADERS: $(klibdrminclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(klibdrminclude_HEADERS)'; test -n "$(klibdrmincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(klibdrmincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(klibdrmincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(klibdrmincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(klibdrmincludedir)" || exit $$?; \ - done - -uninstall-klibdrmincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(klibdrminclude_HEADERS)'; test -n "$(klibdrmincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(klibdrmincludedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(klibdrmincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-klibdrmincludeHEADERS - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-klibdrmincludeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool cscopelist-am ctags ctags-am distclean \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-klibdrmincludeHEADERS \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-klibdrmincludeHEADERS - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/include/drm/nouveau_drm.h libdrm-2.4.52+really2.4.21/include/drm/nouveau_drm.h --- libdrm-2.4.52/include/drm/nouveau_drm.h 2011-03-12 22:49:34.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/include/drm/nouveau_drm.h 2010-06-07 01:11:46.000000000 +0000 @@ -79,9 +79,6 @@ #define NOUVEAU_GETPARAM_CHIPSET_ID 11 #define NOUVEAU_GETPARAM_VM_VRAM_BASE 12 #define NOUVEAU_GETPARAM_GRAPH_UNITS 13 -#define NOUVEAU_GETPARAM_PTIMER_TIME 14 -#define NOUVEAU_GETPARAM_HAS_BO_USAGE 15 -#define NOUVEAU_GETPARAM_HAS_PAGEFLIP 16 struct drm_nouveau_getparam { uint64_t param; uint64_t value; @@ -97,12 +94,6 @@ #define NOUVEAU_GEM_DOMAIN_GART (1 << 2) #define NOUVEAU_GEM_DOMAIN_MAPPABLE (1 << 3) -#define NOUVEAU_GEM_TILE_LAYOUT_MASK 0x0000ff00 -#define NOUVEAU_GEM_TILE_16BPP 0x00000001 -#define NOUVEAU_GEM_TILE_32BPP 0x00000002 -#define NOUVEAU_GEM_TILE_ZETA 0x00000004 -#define NOUVEAU_GEM_TILE_NONCONTIG 0x00000008 - struct drm_nouveau_gem_info { uint32_t handle; uint32_t domain; diff -Nru libdrm-2.4.52/include/drm/qxl_drm.h libdrm-2.4.52+really2.4.21/include/drm/qxl_drm.h --- libdrm-2.4.52/include/drm/qxl_drm.h 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/include/drm/qxl_drm.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,152 +0,0 @@ -/* - * Copyright 2013 Red Hat - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ -#ifndef QXL_DRM_H -#define QXL_DRM_H - -#include -#include "drm/drm.h" - -/* Please note that modifications to all structs defined here are - * subject to backwards-compatibility constraints. - * - * Do not use pointers, use uint64_t instead for 32 bit / 64 bit user/kernel - * compatibility Keep fields aligned to their size - */ - -#define QXL_GEM_DOMAIN_CPU 0 -#define QXL_GEM_DOMAIN_VRAM 1 -#define QXL_GEM_DOMAIN_SURFACE 2 - -#define DRM_QXL_ALLOC 0x00 -#define DRM_QXL_MAP 0x01 -#define DRM_QXL_EXECBUFFER 0x02 -#define DRM_QXL_UPDATE_AREA 0x03 -#define DRM_QXL_GETPARAM 0x04 -#define DRM_QXL_CLIENTCAP 0x05 - -#define DRM_QXL_ALLOC_SURF 0x06 - -struct drm_qxl_alloc { - uint32_t size; - uint32_t handle; /* 0 is an invalid handle */ -}; - -struct drm_qxl_map { - uint64_t offset; /* use for mmap system call */ - uint32_t handle; - uint32_t pad; -}; - -/* - * dest is the bo we are writing the relocation into - * src is bo we are relocating. - * *(dest_handle.base_addr + dest_offset) = physical_address(src_handle.addr + - * src_offset) - */ -#define QXL_RELOC_TYPE_BO 1 -#define QXL_RELOC_TYPE_SURF 2 - -struct drm_qxl_reloc { - uint64_t src_offset; /* offset into src_handle or src buffer */ - uint64_t dst_offset; /* offset in dest handle */ - uint32_t src_handle; /* dest handle to compute address from */ - uint32_t dst_handle; /* 0 if to command buffer */ - uint32_t reloc_type; - uint32_t pad; -}; - -struct drm_qxl_command { - uint64_t command; /* void* */ - uint64_t relocs; /* struct drm_qxl_reloc* */ - uint32_t type; - uint32_t command_size; - uint32_t relocs_num; - uint32_t pad; -}; - -/* XXX: call it drm_qxl_commands? */ -struct drm_qxl_execbuffer { - uint32_t flags; /* for future use */ - uint32_t commands_num; - uint64_t commands; /* struct drm_qxl_command* */ -}; - -struct drm_qxl_update_area { - uint32_t handle; - uint32_t top; - uint32_t left; - uint32_t bottom; - uint32_t right; - uint32_t pad; -}; - -#define QXL_PARAM_NUM_SURFACES 1 /* rom->n_surfaces */ -#define QXL_PARAM_MAX_RELOCS 2 -struct drm_qxl_getparam { - uint64_t param; - uint64_t value; -}; - -/* these are one bit values */ -struct drm_qxl_clientcap { - uint32_t index; - uint32_t pad; -}; - -struct drm_qxl_alloc_surf { - uint32_t format; - uint32_t width; - uint32_t height; - int32_t stride; - uint32_t handle; - uint32_t pad; -}; - -#define DRM_IOCTL_QXL_ALLOC \ - DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_ALLOC, struct drm_qxl_alloc) - -#define DRM_IOCTL_QXL_MAP \ - DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_MAP, struct drm_qxl_map) - -#define DRM_IOCTL_QXL_EXECBUFFER \ - DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_EXECBUFFER,\ - struct drm_qxl_execbuffer) - -#define DRM_IOCTL_QXL_UPDATE_AREA \ - DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_UPDATE_AREA,\ - struct drm_qxl_update_area) - -#define DRM_IOCTL_QXL_GETPARAM \ - DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_GETPARAM,\ - struct drm_qxl_getparam) - -#define DRM_IOCTL_QXL_CLIENTCAP \ - DRM_IOW(DRM_COMMAND_BASE + DRM_QXL_CLIENTCAP,\ - struct drm_qxl_clientcap) - -#define DRM_IOCTL_QXL_ALLOC_SURF \ - DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_ALLOC_SURF,\ - struct drm_qxl_alloc_surf) - -#endif diff -Nru libdrm-2.4.52/include/drm/radeon_drm.h libdrm-2.4.52+really2.4.21/include/drm/radeon_drm.h --- libdrm-2.4.52/include/drm/radeon_drm.h 2013-12-29 06:05:33.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/include/drm/radeon_drm.h 2010-06-07 01:11:46.000000000 +0000 @@ -509,7 +509,6 @@ #define DRM_RADEON_GEM_SET_TILING 0x28 #define DRM_RADEON_GEM_GET_TILING 0x29 #define DRM_RADEON_GEM_BUSY 0x2a -#define DRM_RADEON_GEM_VA 0x2b #define DRM_IOCTL_RADEON_CP_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t) #define DRM_IOCTL_RADEON_CP_START DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_START) @@ -551,7 +550,6 @@ #define DRM_IOCTL_RADEON_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_SET_TILING, struct drm_radeon_gem_set_tiling) #define DRM_IOCTL_RADEON_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_GET_TILING, struct drm_radeon_gem_get_tiling) #define DRM_IOCTL_RADEON_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_BUSY, struct drm_radeon_gem_busy) -#define DRM_IOCTL_RADEON_GEM_VA DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_VA, struct drm_radeon_gem_va) typedef struct drm_radeon_init { enum { @@ -804,24 +802,13 @@ uint32_t flags; }; -#define RADEON_TILING_MACRO 0x1 -#define RADEON_TILING_MICRO 0x2 -#define RADEON_TILING_SWAP_16BIT 0x4 -#define RADEON_TILING_R600_NO_SCANOUT RADEON_TILING_SWAP_16BIT -#define RADEON_TILING_SWAP_32BIT 0x8 -/* this object requires a surface when mapped - i.e. front buffer */ -#define RADEON_TILING_SURFACE 0x10 -#define RADEON_TILING_MICRO_SQUARE 0x20 -#define RADEON_TILING_EG_BANKW_SHIFT 8 -#define RADEON_TILING_EG_BANKW_MASK 0xf -#define RADEON_TILING_EG_BANKH_SHIFT 12 -#define RADEON_TILING_EG_BANKH_MASK 0xf -#define RADEON_TILING_EG_MACRO_TILE_ASPECT_SHIFT 16 -#define RADEON_TILING_EG_MACRO_TILE_ASPECT_MASK 0xf -#define RADEON_TILING_EG_TILE_SPLIT_SHIFT 24 -#define RADEON_TILING_EG_TILE_SPLIT_MASK 0xf -#define RADEON_TILING_EG_STENCIL_TILE_SPLIT_SHIFT 28 -#define RADEON_TILING_EG_STENCIL_TILE_SPLIT_MASK 0xf +#define RADEON_TILING_MACRO 0x1 +#define RADEON_TILING_MICRO 0x2 +#define RADEON_TILING_SWAP_16BIT 0x4 +#define RADEON_TILING_SWAP_32BIT 0x8 +#define RADEON_TILING_SURFACE 0x10 /* this object requires a surface + * when mapped - i.e. front buffer */ +#define RADEON_TILING_MICRO_SQUARE 0x20 struct drm_radeon_gem_set_tiling { uint32_t handle; @@ -885,43 +872,8 @@ uint64_t data_ptr; }; -#define RADEON_VA_MAP 1 -#define RADEON_VA_UNMAP 2 - -#define RADEON_VA_RESULT_OK 0 -#define RADEON_VA_RESULT_ERROR 1 -#define RADEON_VA_RESULT_VA_EXIST 2 - -#define RADEON_VM_PAGE_VALID (1 << 0) -#define RADEON_VM_PAGE_READABLE (1 << 1) -#define RADEON_VM_PAGE_WRITEABLE (1 << 2) -#define RADEON_VM_PAGE_SYSTEM (1 << 3) -#define RADEON_VM_PAGE_SNOOPED (1 << 4) - -struct drm_radeon_gem_va { - uint32_t handle; - uint32_t operation; - uint32_t vm_id; - uint32_t flags; - uint64_t offset; -}; - #define RADEON_CHUNK_ID_RELOCS 0x01 #define RADEON_CHUNK_ID_IB 0x02 -#define RADEON_CHUNK_ID_FLAGS 0x03 -#define RADEON_CHUNK_ID_CONST_IB 0x04 - -/* The first dword of RADEON_CHUNK_ID_FLAGS is a uint32 of these flags: */ -#define RADEON_CS_KEEP_TILING_FLAGS 0x01 -#define RADEON_CS_USE_VM 0x02 -#define RADEON_CS_END_OF_FRAME 0x04 /* a hint from userspace which CS is the last one */ -/* The second dword of RADEON_CHUNK_ID_FLAGS is a uint32 that sets the ring type */ -#define RADEON_CS_RING_GFX 0 -#define RADEON_CS_RING_COMPUTE 1 -#define RADEON_CS_RING_DMA 2 -#define RADEON_CS_RING_UVD 3 -/* The third dword of RADEON_CHUNK_ID_FLAGS is a sint32 that sets the priority */ -/* 0 = normal, + = higher priority, - = lower priority */ struct drm_radeon_cs_chunk { uint32_t chunk_id; @@ -929,8 +881,6 @@ uint64_t chunk_data; }; -/* drm_radeon_cs_reloc.flags */ - struct drm_radeon_cs_reloc { uint32_t handle; uint32_t read_domains; @@ -952,38 +902,6 @@ #define RADEON_INFO_NUM_GB_PIPES 0x01 #define RADEON_INFO_NUM_Z_PIPES 0x02 #define RADEON_INFO_ACCEL_WORKING 0x03 -#define RADEON_INFO_CRTC_FROM_ID 0x04 -#define RADEON_INFO_ACCEL_WORKING2 0x05 -#define RADEON_INFO_TILING_CONFIG 0x06 -#define RADEON_INFO_WANT_HYPERZ 0x07 -#define RADEON_INFO_WANT_CMASK 0x08 /* get access to CMASK on r300 */ -#define RADEON_INFO_CLOCK_CRYSTAL_FREQ 0x09 /* clock crystal frequency */ -#define RADEON_INFO_NUM_BACKENDS 0x0a /* DB/backends for r600+ - need for OQ */ -#define RADEON_INFO_NUM_TILE_PIPES 0x0b /* tile pipes for r600+ */ -#define RADEON_INFO_FUSION_GART_WORKING 0x0c /* fusion writes to GTT were broken before this */ -#define RADEON_INFO_BACKEND_MAP 0x0d /* pipe to backend map, needed by mesa */ -/* virtual address start, va < start are reserved by the kernel */ -#define RADEON_INFO_VA_START 0x0e -/* maximum size of ib using the virtual memory cs */ -#define RADEON_INFO_IB_VM_MAX_SIZE 0x0f -/* max pipes - needed for compute shaders */ -#define RADEON_INFO_MAX_PIPES 0x10 -/* timestamp for GL_ARB_timer_query (OpenGL), returns the current GPU clock */ -#define RADEON_INFO_TIMESTAMP 0x11 -/* max shader engines (SE) - needed for geometry shaders, etc. */ -#define RADEON_INFO_MAX_SE 0x12 -/* max SH per SE */ -#define RADEON_INFO_MAX_SH_PER_SE 0x13 -/* fast fb access is enabled */ -#define RADEON_INFO_FASTFB_WORKING 0x14 -/* query if a RADEON_CS_RING_* submission is supported */ -#define RADEON_INFO_RING_WORKING 0x15 -/* SI tile mode array */ -#define RADEON_INFO_SI_TILE_MODE_ARRAY 0x16 -/* query if CP DMA is supported on the compute ring */ -#define RADEON_INFO_SI_CP_DMA_COMPUTE 0x17 -/* CIK macrotile mode array */ -#define RADEON_INFO_CIK_MACROTILE_MODE_ARRAY 0x18 struct drm_radeon_info { uint32_t request; @@ -991,31 +909,4 @@ uint64_t value; }; -/* Those correspond to the tile index to use, this is to explicitly state - * the API that is implicitly defined by the tile mode array. - */ -#define SI_TILE_MODE_COLOR_LINEAR_ALIGNED 8 -#define SI_TILE_MODE_COLOR_1D 13 -#define SI_TILE_MODE_COLOR_1D_SCANOUT 9 -#define SI_TILE_MODE_COLOR_2D_8BPP 14 -#define SI_TILE_MODE_COLOR_2D_16BPP 15 -#define SI_TILE_MODE_COLOR_2D_32BPP 16 -#define SI_TILE_MODE_COLOR_2D_64BPP 17 -#define SI_TILE_MODE_COLOR_2D_SCANOUT_16BPP 11 -#define SI_TILE_MODE_COLOR_2D_SCANOUT_32BPP 12 -#define SI_TILE_MODE_DEPTH_STENCIL_1D 4 -#define SI_TILE_MODE_DEPTH_STENCIL_2D 0 -#define SI_TILE_MODE_DEPTH_STENCIL_2D_2AA 3 -#define SI_TILE_MODE_DEPTH_STENCIL_2D_4AA 3 -#define SI_TILE_MODE_DEPTH_STENCIL_2D_8AA 2 - -#define CIK_TILE_MODE_COLOR_2D 14 -#define CIK_TILE_MODE_COLOR_2D_SCANOUT 10 -#define CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_64 0 -#define CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_128 1 -#define CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_256 2 -#define CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_512 3 -#define CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_ROW_SIZE 4 -#define CIK_TILE_MODE_DEPTH_STENCIL_1D 5 - #endif diff -Nru libdrm-2.4.52/include/drm/vmwgfx_drm.h libdrm-2.4.52+really2.4.21/include/drm/vmwgfx_drm.h --- libdrm-2.4.52/include/drm/vmwgfx_drm.h 2011-03-12 22:49:34.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/include/drm/vmwgfx_drm.h 2010-06-07 01:11:46.000000000 +0000 @@ -50,8 +50,6 @@ #define DRM_VMW_EXECBUF 12 #define DRM_VMW_FIFO_DEBUG 13 #define DRM_VMW_FENCE_WAIT 14 -/* guarded by minor version >= 2 */ -#define DRM_VMW_UPDATE_LAYOUT 15 /*************************************************************************/ @@ -90,49 +88,6 @@ /*************************************************************************/ /** - * DRM_VMW_EXTENSION - Query device extensions. - */ - -/** - * struct drm_vmw_extension_rep - * - * @exists: The queried extension exists. - * @driver_ioctl_offset: Ioctl number of the first ioctl in the extension. - * @driver_sarea_offset: Offset to any space in the DRI SAREA - * used by the extension. - * @major: Major version number of the extension. - * @minor: Minor version number of the extension. - * @pl: Patch level version number of the extension. - * - * Output argument to the DRM_VMW_EXTENSION Ioctl. - */ - -struct drm_vmw_extension_rep { - int32_t exists; - uint32_t driver_ioctl_offset; - uint32_t driver_sarea_offset; - uint32_t major; - uint32_t minor; - uint32_t pl; - uint32_t pad64; -}; - -/** - * union drm_vmw_extension_arg - * - * @extension - Ascii name of the extension to be queried. //In - * @rep - Reply as defined above. //Out - * - * Argument to the DRM_VMW_EXTENSION Ioctl. - */ - -union drm_vmw_extension_arg { - char extension[DRM_VMW_EXT_NAME_LEN]; - struct drm_vmw_extension_rep rep; -}; - -/*************************************************************************/ -/** * DRM_VMW_CREATE_CONTEXT - Create a host context. * * Allocates a device unique context id, and queues a create context command @@ -587,28 +542,4 @@ * sure that the stream has been stopped. */ -/*************************************************************************/ -/** - * DRM_VMW_UPDATE_LAYOUT - Update layout - * - * Updates the prefered modes and connection status for connectors. The - * command conisits of one drm_vmw_update_layout_arg pointing out a array - * of num_outputs drm_vmw_rect's. - */ - -/** - * struct drm_vmw_update_layout_arg - * - * @num_outputs: number of active - * @rects: pointer to array of drm_vmw_rect - * - * Input argument to the DRM_VMW_UPDATE_LAYOUT Ioctl. - */ - -struct drm_vmw_update_layout_arg { - uint32_t num_outputs; - uint32_t pad64; - uint64_t rects; -}; - #endif diff -Nru libdrm-2.4.52/include/Makefile.in libdrm-2.4.52+really2.4.21/include/Makefile.in --- libdrm-2.4.52/include/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/include/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,623 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = drm -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign include/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(am__recursive_targets) install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic clean-libtool cscopelist-am ctags \ - ctags-am distclean distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/intel/intel_aub.h libdrm-2.4.52+really2.4.21/intel/intel_aub.h --- libdrm-2.4.52/intel/intel_aub.h 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/intel_aub.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,153 +0,0 @@ -/* - * Copyright © 2010 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Authors: - * Eric Anholt - * - */ - -/** @file intel_aub.h - * - * The AUB file is a file format used by Intel's internal simulation - * and other validation tools. It can be used at various levels by a - * driver to input state to the simulated hardware or a replaying - * debugger. - * - * We choose to dump AUB files using the trace block format for ease - * of implementation -- dump out the blocks of memory as plain blobs - * and insert ring commands to execute the batchbuffer blob. - */ - -#ifndef _INTEL_AUB_H -#define _INTEL_AUB_H - -#define AUB_MI_NOOP (0) -#define AUB_MI_BATCH_BUFFER_START (0x31 << 23) -#define AUB_PIPE_CONTROL (0x7a000002) - -/* DW0: instruction type. */ - -#define CMD_AUB (7 << 29) - -#define CMD_AUB_HEADER (CMD_AUB | (1 << 23) | (0x05 << 16)) -/* DW1 */ -# define AUB_HEADER_MAJOR_SHIFT 24 -# define AUB_HEADER_MINOR_SHIFT 16 - -#define CMD_AUB_TRACE_HEADER_BLOCK (CMD_AUB | (1 << 23) | (0x41 << 16)) -#define CMD_AUB_DUMP_BMP (CMD_AUB | (1 << 23) | (0x9e << 16)) - -/* DW1 */ -#define AUB_TRACE_OPERATION_MASK 0x000000ff -#define AUB_TRACE_OP_COMMENT 0x00000000 -#define AUB_TRACE_OP_DATA_WRITE 0x00000001 -#define AUB_TRACE_OP_COMMAND_WRITE 0x00000002 -#define AUB_TRACE_OP_MMIO_WRITE 0x00000003 -// operation = TRACE_DATA_WRITE, Type -#define AUB_TRACE_TYPE_MASK 0x0000ff00 -#define AUB_TRACE_TYPE_NOTYPE (0 << 8) -#define AUB_TRACE_TYPE_BATCH (1 << 8) -#define AUB_TRACE_TYPE_VERTEX_BUFFER (5 << 8) -#define AUB_TRACE_TYPE_2D_MAP (6 << 8) -#define AUB_TRACE_TYPE_CUBE_MAP (7 << 8) -#define AUB_TRACE_TYPE_VOLUME_MAP (9 << 8) -#define AUB_TRACE_TYPE_1D_MAP (10 << 8) -#define AUB_TRACE_TYPE_CONSTANT_BUFFER (11 << 8) -#define AUB_TRACE_TYPE_CONSTANT_URB (12 << 8) -#define AUB_TRACE_TYPE_INDEX_BUFFER (13 << 8) -#define AUB_TRACE_TYPE_GENERAL (14 << 8) -#define AUB_TRACE_TYPE_SURFACE (15 << 8) - - -// operation = TRACE_COMMAND_WRITE, Type = -#define AUB_TRACE_TYPE_RING_HWB (1 << 8) -#define AUB_TRACE_TYPE_RING_PRB0 (2 << 8) -#define AUB_TRACE_TYPE_RING_PRB1 (3 << 8) -#define AUB_TRACE_TYPE_RING_PRB2 (4 << 8) - -// Address space -#define AUB_TRACE_ADDRESS_SPACE_MASK 0x00ff0000 -#define AUB_TRACE_MEMTYPE_GTT (0 << 16) -#define AUB_TRACE_MEMTYPE_LOCAL (1 << 16) -#define AUB_TRACE_MEMTYPE_NONLOCAL (2 << 16) -#define AUB_TRACE_MEMTYPE_PCI (3 << 16) -#define AUB_TRACE_MEMTYPE_GTT_ENTRY (4 << 16) - -/* DW2 */ - -/** - * aub_state_struct_type enum values are encoded with the top 16 bits - * representing the type to be delivered to the .aub file, and the bottom 16 - * bits representing the subtype. This macro performs the encoding. - */ -#define ENCODE_SS_TYPE(type, subtype) (((type) << 16) | (subtype)) - -enum aub_state_struct_type { - AUB_TRACE_VS_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 1), - AUB_TRACE_GS_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 2), - AUB_TRACE_CLIP_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 3), - AUB_TRACE_SF_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 4), - AUB_TRACE_WM_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 5), - AUB_TRACE_CC_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 6), - AUB_TRACE_CLIP_VP_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 7), - AUB_TRACE_SF_VP_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 8), - AUB_TRACE_CC_VP_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0x9), - AUB_TRACE_SAMPLER_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0xa), - AUB_TRACE_KERNEL_INSTRUCTIONS = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0xb), - AUB_TRACE_SCRATCH_SPACE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0xc), - AUB_TRACE_SAMPLER_DEFAULT_COLOR = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0xd), - - AUB_TRACE_SCISSOR_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0x15), - AUB_TRACE_BLEND_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0x16), - AUB_TRACE_DEPTH_STENCIL_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_GENERAL, 0x17), - - AUB_TRACE_VERTEX_BUFFER = ENCODE_SS_TYPE(AUB_TRACE_TYPE_VERTEX_BUFFER, 0), - AUB_TRACE_BINDING_TABLE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_SURFACE, 0x100), - AUB_TRACE_SURFACE_STATE = ENCODE_SS_TYPE(AUB_TRACE_TYPE_SURFACE, 0x200), - AUB_TRACE_VS_CONSTANTS = ENCODE_SS_TYPE(AUB_TRACE_TYPE_CONSTANT_BUFFER, 0), - AUB_TRACE_WM_CONSTANTS = ENCODE_SS_TYPE(AUB_TRACE_TYPE_CONSTANT_BUFFER, 1), -}; - -#undef ENCODE_SS_TYPE - -/** - * Decode a aub_state_struct_type value to determine the type that should be - * stored in the .aub file. - */ -static inline uint32_t AUB_TRACE_TYPE(enum aub_state_struct_type ss_type) -{ - return (ss_type & 0xFFFF0000) >> 16; -} - -/** - * Decode a state_struct_type value to determine the subtype that should be - * stored in the .aub file. - */ -static inline uint32_t AUB_TRACE_SUBTYPE(enum aub_state_struct_type ss_type) -{ - return ss_type & 0xFFFF; -} - -/* DW3: address */ -/* DW4: len */ - -#endif /* _INTEL_AUB_H */ diff -Nru libdrm-2.4.52/intel/intel_bufmgr.c libdrm-2.4.52+really2.4.21/intel/intel_bufmgr.c --- libdrm-2.4.52/intel/intel_bufmgr.c 2014-01-13 22:11:53.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/intel_bufmgr.c 2010-06-07 23:33:16.000000000 +0000 @@ -36,10 +36,8 @@ #include #include #include -#include #include "intel_bufmgr.h" #include "intel_bufmgr_priv.h" -#include "xf86drm.h" /** @file intel_bufmgr.c * @@ -96,7 +94,19 @@ drm_intel_bo_subdata(drm_intel_bo *bo, unsigned long offset, unsigned long size, const void *data) { - return bo->bufmgr->bo_subdata(bo, offset, size, data); + int ret; + + if (bo->bufmgr->bo_subdata) + return bo->bufmgr->bo_subdata(bo, offset, size, data); + if (size == 0 || data == NULL) + return 0; + + ret = drm_intel_bo_map(bo, 1); + if (ret) + return ret; + memcpy((unsigned char *)bo->virtual + offset, data, size); + drm_intel_bo_unmap(bo); + return 0; } int @@ -104,7 +114,7 @@ unsigned long size, void *data) { int ret; - if (bo->bufmgr->bo_get_subdata) + if (bo->bufmgr->bo_subdata) return bo->bufmgr->bo_get_subdata(bo, offset, size, data); if (size == 0 || data == NULL) @@ -138,21 +148,14 @@ int drm_intel_bo_mrb_exec(drm_intel_bo *bo, int used, drm_clip_rect_t *cliprects, int num_cliprects, int DR4, - unsigned int rings) + int ring_flag) { if (bo->bufmgr->bo_mrb_exec) return bo->bufmgr->bo_mrb_exec(bo, used, cliprects, num_cliprects, DR4, - rings); + ring_flag); - switch (rings) { - case I915_EXEC_DEFAULT: - case I915_EXEC_RENDER: - return bo->bufmgr->bo_exec(bo, used, - cliprects, num_cliprects, DR4); - default: - return -ENODEV; - } + return -ENODEV; } void drm_intel_bufmgr_set_debug(drm_intel_bufmgr *bufmgr, int enable_debug) @@ -271,51 +274,3 @@ return bufmgr->get_pipe_from_crtc_id(bufmgr, crtc_id); return -1; } - -static size_t -drm_intel_probe_agp_aperture_size(int fd) -{ - struct pci_device *pci_dev; - size_t size = 0; - int ret; - - ret = pci_system_init(); - if (ret) - goto err; - - /* XXX handle multiple adaptors? */ - pci_dev = pci_device_find_by_slot(0, 0, 2, 0); - if (pci_dev == NULL) - goto err; - - ret = pci_device_probe(pci_dev); - if (ret) - goto err; - - size = pci_dev->regions[2].size; -err: - pci_system_cleanup (); - return size; -} - -int drm_intel_get_aperture_sizes(int fd, - size_t *mappable, - size_t *total) -{ - - struct drm_i915_gem_get_aperture aperture; - int ret; - - ret = drmIoctl(fd, DRM_IOCTL_I915_GEM_GET_APERTURE, &aperture); - if (ret) - return ret; - - *mappable = 0; - /* XXX add a query for the kernel value? */ - if (*mappable == 0) - *mappable = drm_intel_probe_agp_aperture_size(fd); - if (*mappable == 0) - *mappable = 64 * 1024 * 1024; /* minimum possible value */ - *total = aperture.aper_size; - return 0; -} diff -Nru libdrm-2.4.52/intel/intel_bufmgr_fake.c libdrm-2.4.52+really2.4.21/intel/intel_bufmgr_fake.c --- libdrm-2.4.52/intel/intel_bufmgr_fake.c 2014-01-13 22:48:51.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/intel_bufmgr_fake.c 2010-06-07 01:11:45.000000000 +0000 @@ -1121,23 +1121,6 @@ return ret; } -static int -drm_intel_fake_bo_subdata(drm_intel_bo *bo, unsigned long offset, - unsigned long size, const void *data) -{ - int ret; - - if (size == 0 || data == NULL) - return 0; - - ret = drm_intel_bo_map(bo, 1); - if (ret) - return ret; - memcpy((unsigned char *)bo->virtual + offset, data, size); - drm_intel_bo_unmap(bo); - return 0; -} - static void drm_intel_fake_kick_all_locked(drm_intel_bufmgr_fake *bufmgr_fake) { @@ -1616,7 +1599,6 @@ bufmgr_fake->bufmgr.bo_unreference = drm_intel_fake_bo_unreference; bufmgr_fake->bufmgr.bo_map = drm_intel_fake_bo_map; bufmgr_fake->bufmgr.bo_unmap = drm_intel_fake_bo_unmap; - bufmgr_fake->bufmgr.bo_subdata = drm_intel_fake_bo_subdata; bufmgr_fake->bufmgr.bo_wait_rendering = drm_intel_fake_bo_wait_rendering; bufmgr_fake->bufmgr.bo_emit_reloc = drm_intel_fake_emit_reloc; diff -Nru libdrm-2.4.52/intel/intel_bufmgr_gem.c libdrm-2.4.52+really2.4.21/intel/intel_bufmgr_gem.c --- libdrm-2.4.52/intel/intel_bufmgr_gem.c 2014-01-20 18:58:15.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/intel_bufmgr_gem.c 2010-06-10 16:02:14.000000000 +0000 @@ -1,7 +1,7 @@ /************************************************************************** * * Copyright © 2007 Red Hat Inc. - * Copyright © 2007-2012 Intel Corporation + * Copyright © 2007 Intel Corporation * Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND., USA * All Rights Reserved. * @@ -51,31 +51,16 @@ #include #include #include -#include #include "errno.h" -#ifndef ETIME -#define ETIME ETIMEDOUT -#endif #include "libdrm_lists.h" #include "intel_bufmgr.h" #include "intel_bufmgr_priv.h" #include "intel_chipset.h" -#include "intel_aub.h" #include "string.h" #include "i915_drm.h" -#ifdef HAVE_VALGRIND -#include -#include -#define VG(x) x -#else -#define VG(x) -#endif - -#define VG_CLEAR(s) VG(memset(&s, 0, sizeof(s))) - #define DBG(...) do { \ if (bufmgr_gem->bufmgr.debug) \ fprintf(stderr, __VA_ARGS__); \ @@ -108,29 +93,13 @@ /** Array of lists of cached gem objects of power-of-two sizes */ struct drm_intel_gem_bo_bucket cache_bucket[14 * 4]; int num_buckets; - time_t time; - - drmMMListHead named; - drmMMListHead vma_cache; - int vma_count, vma_open, vma_max; uint64_t gtt_size; int available_fences; int pci_device; int gen; - unsigned int has_bsd : 1; - unsigned int has_blt : 1; - unsigned int has_relaxed_fencing : 1; - unsigned int has_llc : 1; - unsigned int has_wait_timeout : 1; - unsigned int bo_reuse : 1; - unsigned int no_exec : 1; - unsigned int has_vebox : 1; - bool fenced_relocs; - - char *aub_filename; - FILE *aub_file; - uint32_t aub_offset; + char bo_reuse; + char fenced_relocs; } drm_intel_bufmgr_gem; #define DRM_INTEL_RELOC_FENCE (1<<0) @@ -149,11 +118,8 @@ /** * Kenel-assigned global name for this object - * - * List contains both flink named and prime fd'd objects */ unsigned int global_name; - drmMMListHead name_list; /** * Index of the buffer within the validation list while preparing a @@ -166,7 +132,6 @@ */ uint32_t tiling_mode; uint32_t swizzle_mode; - unsigned long stride; time_t free_time; @@ -182,8 +147,6 @@ void *mem_virtual; /** GTT virtual address for the buffer, saved across map/unmap cycles */ void *gtt_virtual; - int map_count; - drmMMListHead vma_list; /** BO cache list */ drmMMListHead head; @@ -192,33 +155,24 @@ * Boolean of whether this BO and its children have been included in * the current drm_intel_bufmgr_check_aperture_space() total. */ - bool included_in_check_aperture; + char included_in_check_aperture; /** * Boolean of whether this buffer has been used as a relocation * target and had its size accounted for, and thus can't have any * further relocations added to it. */ - bool used_as_reloc_target; + char used_as_reloc_target; /** * Boolean of whether we have encountered an error whilst building the relocation tree. */ - bool has_error; + char has_error; /** * Boolean of whether this buffer can be re-used */ - bool reusable; - - /** - * Boolean of whether the GPU is definitely not accessing the buffer. - * - * This is only valid when reusable, since non-reusable - * buffers are those that have been shared wth other - * processes, so we don't know their state. - */ - bool idle; + char reusable; /** * Size in bytes of this buffer and its relocation descendents. @@ -233,14 +187,6 @@ * relocations. */ int reloc_tree_fences; - - /** Flags that we may need to do the SW_FINSIH ioctl on unmap. */ - bool mapped_cpu_write; - - uint32_t aub_offset; - - drm_intel_aub_annotation *aub_annotations; - unsigned aub_annotation_count; }; static unsigned int @@ -254,9 +200,8 @@ uint32_t * swizzle_mode); static int -drm_intel_gem_bo_set_tiling_internal(drm_intel_bo *bo, - uint32_t tiling_mode, - uint32_t stride); +drm_intel_gem_bo_set_tiling(drm_intel_bo *bo, uint32_t * tiling_mode, + uint32_t stride); static void drm_intel_gem_bo_unreference_locked_timed(drm_intel_bo *bo, time_t time); @@ -293,10 +238,6 @@ return size; } - /* Do we need to allocate every page for the fence? */ - if (bufmgr_gem->has_relaxed_fencing) - return ROUND_UP_TO(size, 4096); - for (i = min_size; i < size; i <<= 1) ; @@ -310,7 +251,7 @@ */ static unsigned long drm_intel_gem_bo_tile_pitch(drm_intel_bufmgr_gem *bufmgr_gem, - unsigned long pitch, uint32_t *tiling_mode) + unsigned long pitch, uint32_t tiling_mode) { unsigned long tile_width; unsigned long i; @@ -318,12 +259,10 @@ /* If untiled, then just align it so that we can do rendering * to it with the 3D engine. */ - if (*tiling_mode == I915_TILING_NONE) + if (tiling_mode == I915_TILING_NONE) return ALIGN(pitch, 64); - if (*tiling_mode == I915_TILING_X - || (IS_915(bufmgr_gem->pci_device) - && *tiling_mode == I915_TILING_Y)) + if (tiling_mode == I915_TILING_X) tile_width = 512; else tile_width = 128; @@ -332,14 +271,6 @@ if (bufmgr_gem->gen >= 4) return ROUND_UP_TO(pitch, tile_width); - /* The older hardware has a maximum pitch of 8192 with tiled - * surfaces, so fallback to untiled if it's too large. - */ - if (pitch > 8192) { - *tiling_mode = I915_TILING_NONE; - return ALIGN(pitch, 64); - } - /* Pre-965 needs power of two tile width */ for (i = tile_width; i < pitch; i <<= 1) ; @@ -391,7 +322,7 @@ (unsigned long long)bo_gem->relocs[j].offset, target_gem->gem_handle, target_gem->name, - target_bo->offset64, + target_bo->offset, bo_gem->relocs[j].delta); } } @@ -402,6 +333,7 @@ { drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; + assert(atomic_read(&bo_gem->refcount) > 0); atomic_inc(&bo_gem->refcount); } @@ -518,23 +450,8 @@ * aperture. Optimal packing is for wimps. */ size = bo_gem->bo.size; - if (bufmgr_gem->gen < 4 && bo_gem->tiling_mode != I915_TILING_NONE) { - int min_size; - - if (bufmgr_gem->has_relaxed_fencing) { - if (bufmgr_gem->gen == 3) - min_size = 1024*1024; - else - min_size = 512*1024; - - while (min_size < size) - min_size *= 2; - } else - min_size = size; - - /* Account for worst-case alignment. */ - size = 2 * min_size; - } + if (bufmgr_gem->gen < 4 && bo_gem->tiling_mode != I915_TILING_NONE) + size *= 2; bo_gem->reloc_tree_size = size; } @@ -554,7 +471,7 @@ bo_gem->reloc_target_info = malloc(max_relocs * sizeof(drm_intel_reloc_target)); if (bo_gem->relocs == NULL || bo_gem->reloc_target_info == NULL) { - bo_gem->has_error = true; + bo_gem->has_error = 1; free (bo_gem->relocs); bo_gem->relocs = NULL; @@ -576,19 +493,13 @@ struct drm_i915_gem_busy busy; int ret; - if (bo_gem->reusable && bo_gem->idle) - return false; - - VG_CLEAR(busy); + memset(&busy, 0, sizeof(busy)); busy.handle = bo_gem->gem_handle; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_BUSY, &busy); - if (ret == 0) { - bo_gem->idle = !busy.busy; - return busy.busy; - } else { - return false; - } + do { + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_BUSY, &busy); + } while (ret == -1 && errno == EINTR); + return (ret == 0 && busy.busy); } @@ -598,11 +509,10 @@ { struct drm_i915_gem_madvise madv; - VG_CLEAR(madv); madv.handle = bo_gem->gem_handle; madv.madv = state; madv.retained = 1; - drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_MADVISE, &madv); + ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_MADVISE, &madv); return madv.retained; } @@ -639,21 +549,19 @@ drm_intel_gem_bo_alloc_internal(drm_intel_bufmgr *bufmgr, const char *name, unsigned long size, - unsigned long flags, - uint32_t tiling_mode, - unsigned long stride) + unsigned long flags) { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bufmgr; drm_intel_bo_gem *bo_gem; unsigned int page_size = getpagesize(); int ret; struct drm_intel_gem_bo_bucket *bucket; - bool alloc_from_cache; + int alloc_from_cache; unsigned long bo_size; - bool for_render = false; + int for_render = 0; if (flags & BO_ALLOC_FOR_RENDER) - for_render = true; + for_render = 1; /* Round the allocated size up to a power of two number of pages. */ bucket = drm_intel_gem_bo_bucket_for_size(bufmgr_gem, size); @@ -672,7 +580,7 @@ pthread_mutex_lock(&bufmgr_gem->lock); /* Get a buffer out of the cache if available */ retry: - alloc_from_cache = false; + alloc_from_cache = 0; if (bucket != NULL && !DRMLISTEMPTY(&bucket->head)) { if (for_render) { /* Allocate new render-target BOs from the tail (MRU) @@ -682,7 +590,7 @@ bo_gem = DRMLISTENTRY(drm_intel_bo_gem, bucket->head.prev, head); DRMLISTDEL(&bo_gem->head); - alloc_from_cache = true; + alloc_from_cache = 1; } else { /* For non-render-target BOs (where we're probably * going to map it first thing in order to fill it @@ -694,7 +602,7 @@ bo_gem = DRMLISTENTRY(drm_intel_bo_gem, bucket->head.next, head); if (!drm_intel_gem_bo_busy(&bo_gem->bo)) { - alloc_from_cache = true; + alloc_from_cache = 1; DRMLISTDEL(&bo_gem->head); } } @@ -707,13 +615,6 @@ bucket); goto retry; } - - if (drm_intel_gem_bo_set_tiling_internal(&bo_gem->bo, - tiling_mode, - stride)) { - drm_intel_gem_bo_free(&bo_gem->bo); - goto retry; - } } } pthread_mutex_unlock(&bufmgr_gem->lock); @@ -726,13 +627,14 @@ return NULL; bo_gem->bo.size = bo_size; - - VG_CLEAR(create); + memset(&create, 0, sizeof(create)); create.size = bo_size; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_CREATE, - &create); + do { + ret = ioctl(bufmgr_gem->fd, + DRM_IOCTL_I915_GEM_CREATE, + &create); + } while (ret == -1 && errno == EINTR); bo_gem->gem_handle = create.handle; bo_gem->bo.handle = bo_gem->gem_handle; if (ret != 0) { @@ -740,31 +642,17 @@ return NULL; } bo_gem->bo.bufmgr = bufmgr; - - bo_gem->tiling_mode = I915_TILING_NONE; - bo_gem->swizzle_mode = I915_BIT_6_SWIZZLE_NONE; - bo_gem->stride = 0; - - if (drm_intel_gem_bo_set_tiling_internal(&bo_gem->bo, - tiling_mode, - stride)) { - drm_intel_gem_bo_free(&bo_gem->bo); - return NULL; - } - - DRMINITLISTHEAD(&bo_gem->name_list); - DRMINITLISTHEAD(&bo_gem->vma_list); } bo_gem->name = name; atomic_set(&bo_gem->refcount, 1); bo_gem->validate_index = -1; bo_gem->reloc_tree_fences = 0; - bo_gem->used_as_reloc_target = false; - bo_gem->has_error = false; - bo_gem->reusable = true; - bo_gem->aub_annotations = NULL; - bo_gem->aub_annotation_count = 0; + bo_gem->used_as_reloc_target = 0; + bo_gem->has_error = 0; + bo_gem->tiling_mode = I915_TILING_NONE; + bo_gem->swizzle_mode = I915_BIT_6_SWIZZLE_NONE; + bo_gem->reusable = 1; drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem); @@ -781,8 +669,7 @@ unsigned int alignment) { return drm_intel_gem_bo_alloc_internal(bufmgr, name, size, - BO_ALLOC_FOR_RENDER, - I915_TILING_NONE, 0); + BO_ALLOC_FOR_RENDER); } static drm_intel_bo * @@ -791,8 +678,7 @@ unsigned long size, unsigned int alignment) { - return drm_intel_gem_bo_alloc_internal(bufmgr, name, size, 0, - I915_TILING_NONE, 0); + return drm_intel_gem_bo_alloc_internal(bufmgr, name, size, 0); } static drm_intel_bo * @@ -801,11 +687,13 @@ unsigned long *pitch, unsigned long flags) { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr; + drm_intel_bo *bo; unsigned long size, stride; uint32_t tiling; + int ret; do { - unsigned long aligned_y, height_alignment; + unsigned long aligned_y; tiling = *tiling_mode; @@ -821,30 +709,32 @@ * too so we try to be careful. */ aligned_y = y; - height_alignment = 2; - - if ((bufmgr_gem->gen == 2) && tiling != I915_TILING_NONE) - height_alignment = 16; - else if (tiling == I915_TILING_X - || (IS_915(bufmgr_gem->pci_device) - && tiling == I915_TILING_Y)) - height_alignment = 8; + if (tiling == I915_TILING_NONE) + aligned_y = ALIGN(y, 2); + else if (tiling == I915_TILING_X) + aligned_y = ALIGN(y, 8); else if (tiling == I915_TILING_Y) - height_alignment = 32; - aligned_y = ALIGN(y, height_alignment); + aligned_y = ALIGN(y, 32); stride = x * cpp; - stride = drm_intel_gem_bo_tile_pitch(bufmgr_gem, stride, tiling_mode); + stride = drm_intel_gem_bo_tile_pitch(bufmgr_gem, stride, tiling); size = stride * aligned_y; size = drm_intel_gem_bo_tile_size(bufmgr_gem, size, tiling_mode); } while (*tiling_mode != tiling); - *pitch = stride; - if (tiling == I915_TILING_NONE) - stride = 0; + bo = drm_intel_gem_bo_alloc_internal(bufmgr, name, size, flags); + if (!bo) + return NULL; + + ret = drm_intel_gem_bo_set_tiling(bo, tiling_mode, stride); + if (ret != 0) { + drm_intel_gem_bo_unreference(bo); + return NULL; + } + + *pitch = stride; - return drm_intel_gem_bo_alloc_internal(bufmgr, name, size, flags, - tiling, stride); + return bo; } /** @@ -863,81 +753,46 @@ int ret; struct drm_gem_open open_arg; struct drm_i915_gem_get_tiling get_tiling; - drmMMListHead *list; - /* At the moment most applications only have a few named bo. - * For instance, in a DRI client only the render buffers passed - * between X and the client are named. And since X returns the - * alternating names for the front/back buffer a linear search - * provides a sufficiently fast match. - */ - for (list = bufmgr_gem->named.next; - list != &bufmgr_gem->named; - list = list->next) { - bo_gem = DRMLISTENTRY(drm_intel_bo_gem, list, name_list); - if (bo_gem->global_name == handle) { - drm_intel_gem_bo_reference(&bo_gem->bo); - return &bo_gem->bo; - } - } + bo_gem = calloc(1, sizeof(*bo_gem)); + if (!bo_gem) + return NULL; - VG_CLEAR(open_arg); + memset(&open_arg, 0, sizeof(open_arg)); open_arg.name = handle; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_GEM_OPEN, - &open_arg); + do { + ret = ioctl(bufmgr_gem->fd, + DRM_IOCTL_GEM_OPEN, + &open_arg); + } while (ret == -1 && errno == EINTR); if (ret != 0) { - DBG("Couldn't reference %s handle 0x%08x: %s\n", - name, handle, strerror(errno)); + fprintf(stderr, "Couldn't reference %s handle 0x%08x: %s\n", + name, handle, strerror(errno)); + free(bo_gem); return NULL; } - /* Now see if someone has used a prime handle to get this - * object from the kernel before by looking through the list - * again for a matching gem_handle - */ - for (list = bufmgr_gem->named.next; - list != &bufmgr_gem->named; - list = list->next) { - bo_gem = DRMLISTENTRY(drm_intel_bo_gem, list, name_list); - if (bo_gem->gem_handle == open_arg.handle) { - drm_intel_gem_bo_reference(&bo_gem->bo); - return &bo_gem->bo; - } - } - - bo_gem = calloc(1, sizeof(*bo_gem)); - if (!bo_gem) - return NULL; - bo_gem->bo.size = open_arg.size; bo_gem->bo.offset = 0; - bo_gem->bo.offset64 = 0; bo_gem->bo.virtual = NULL; bo_gem->bo.bufmgr = bufmgr; bo_gem->name = name; atomic_set(&bo_gem->refcount, 1); bo_gem->validate_index = -1; bo_gem->gem_handle = open_arg.handle; - bo_gem->bo.handle = open_arg.handle; bo_gem->global_name = handle; - bo_gem->reusable = false; + bo_gem->reusable = 0; - VG_CLEAR(get_tiling); + memset(&get_tiling, 0, sizeof(get_tiling)); get_tiling.handle = bo_gem->gem_handle; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_GET_TILING, - &get_tiling); + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_GET_TILING, &get_tiling); if (ret != 0) { drm_intel_gem_bo_unreference(&bo_gem->bo); return NULL; } bo_gem->tiling_mode = get_tiling.tiling_mode; bo_gem->swizzle_mode = get_tiling.swizzle_mode; - /* XXX stride is unknown */ drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem); - DRMINITLISTHEAD(&bo_gem->vma_list); - DRMLISTADDTAIL(&bo_gem->name_list, &bufmgr_gem->named); DBG("bo_create_from_handle: %d (%s)\n", handle, bo_gem->name); return &bo_gem->bo; @@ -951,52 +806,29 @@ struct drm_gem_close close; int ret; - DRMLISTDEL(&bo_gem->vma_list); - if (bo_gem->mem_virtual) { - VG(VALGRIND_FREELIKE_BLOCK(bo_gem->mem_virtual, 0)); + if (bo_gem->mem_virtual) munmap(bo_gem->mem_virtual, bo_gem->bo.size); - bufmgr_gem->vma_count--; - } - if (bo_gem->gtt_virtual) { + if (bo_gem->gtt_virtual) munmap(bo_gem->gtt_virtual, bo_gem->bo.size); - bufmgr_gem->vma_count--; - } /* Close this object */ - VG_CLEAR(close); + memset(&close, 0, sizeof(close)); close.handle = bo_gem->gem_handle; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_GEM_CLOSE, &close); + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_GEM_CLOSE, &close); if (ret != 0) { - DBG("DRM_IOCTL_GEM_CLOSE %d failed (%s): %s\n", - bo_gem->gem_handle, bo_gem->name, strerror(errno)); + fprintf(stderr, + "DRM_IOCTL_GEM_CLOSE %d failed (%s): %s\n", + bo_gem->gem_handle, bo_gem->name, strerror(errno)); } - free(bo_gem->aub_annotations); free(bo); } -static void -drm_intel_gem_bo_mark_mmaps_incoherent(drm_intel_bo *bo) -{ -#if HAVE_VALGRIND - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - - if (bo_gem->mem_virtual) - VALGRIND_MAKE_MEM_NOACCESS(bo_gem->mem_virtual, bo->size); - - if (bo_gem->gtt_virtual) - VALGRIND_MAKE_MEM_NOACCESS(bo_gem->gtt_virtual, bo->size); -#endif -} - /** Frees all cached buffers significantly older than @time. */ static void drm_intel_gem_cleanup_bo_cache(drm_intel_bufmgr_gem *bufmgr_gem, time_t time) { int i; - if (bufmgr_gem->time == time) - return; - for (i = 0; i < bufmgr_gem->num_buckets; i++) { struct drm_intel_gem_bo_bucket *bucket = &bufmgr_gem->cache_bucket[i]; @@ -1014,69 +846,6 @@ drm_intel_gem_bo_free(&bo_gem->bo); } } - - bufmgr_gem->time = time; -} - -static void drm_intel_gem_bo_purge_vma_cache(drm_intel_bufmgr_gem *bufmgr_gem) -{ - int limit; - - DBG("%s: cached=%d, open=%d, limit=%d\n", __FUNCTION__, - bufmgr_gem->vma_count, bufmgr_gem->vma_open, bufmgr_gem->vma_max); - - if (bufmgr_gem->vma_max < 0) - return; - - /* We may need to evict a few entries in order to create new mmaps */ - limit = bufmgr_gem->vma_max - 2*bufmgr_gem->vma_open; - if (limit < 0) - limit = 0; - - while (bufmgr_gem->vma_count > limit) { - drm_intel_bo_gem *bo_gem; - - bo_gem = DRMLISTENTRY(drm_intel_bo_gem, - bufmgr_gem->vma_cache.next, - vma_list); - assert(bo_gem->map_count == 0); - DRMLISTDELINIT(&bo_gem->vma_list); - - if (bo_gem->mem_virtual) { - munmap(bo_gem->mem_virtual, bo_gem->bo.size); - bo_gem->mem_virtual = NULL; - bufmgr_gem->vma_count--; - } - if (bo_gem->gtt_virtual) { - munmap(bo_gem->gtt_virtual, bo_gem->bo.size); - bo_gem->gtt_virtual = NULL; - bufmgr_gem->vma_count--; - } - } -} - -static void drm_intel_gem_bo_close_vma(drm_intel_bufmgr_gem *bufmgr_gem, - drm_intel_bo_gem *bo_gem) -{ - bufmgr_gem->vma_open--; - DRMLISTADDTAIL(&bo_gem->vma_list, &bufmgr_gem->vma_cache); - if (bo_gem->mem_virtual) - bufmgr_gem->vma_count++; - if (bo_gem->gtt_virtual) - bufmgr_gem->vma_count++; - drm_intel_gem_bo_purge_vma_cache(bufmgr_gem); -} - -static void drm_intel_gem_bo_open_vma(drm_intel_bufmgr_gem *bufmgr_gem, - drm_intel_bo_gem *bo_gem) -{ - bufmgr_gem->vma_open++; - DRMLISTDEL(&bo_gem->vma_list); - if (bo_gem->mem_virtual) - bufmgr_gem->vma_count--; - if (bo_gem->gtt_virtual) - bufmgr_gem->vma_count--; - drm_intel_gem_bo_purge_vma_cache(bufmgr_gem); } static void @@ -1085,6 +854,7 @@ drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; struct drm_intel_gem_bo_bucket *bucket; + uint32_t tiling_mode; int i; /* Unreference all the target buffers */ @@ -1096,7 +866,7 @@ } } bo_gem->reloc_count = 0; - bo_gem->used_as_reloc_target = false; + bo_gem->used_as_reloc_target = 0; DBG("bo_unreference final: %d (%s)\n", bo_gem->gem_handle, bo_gem->name); @@ -1111,19 +881,11 @@ bo_gem->relocs = NULL; } - /* Clear any left-over mappings */ - if (bo_gem->map_count) { - DBG("bo freed with non-zero map-count %d\n", bo_gem->map_count); - bo_gem->map_count = 0; - drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); - drm_intel_gem_bo_mark_mmaps_incoherent(bo); - } - - DRMLISTDEL(&bo_gem->name_list); - bucket = drm_intel_gem_bo_bucket_for_size(bufmgr_gem, bo->size); /* Put the buffer into our internal cache for reuse if we can. */ + tiling_mode = I915_TILING_NONE; if (bufmgr_gem->bo_reuse && bo_gem->reusable && bucket != NULL && + drm_intel_gem_bo_set_tiling(bo, &tiling_mode, 0) == 0 && drm_intel_gem_bo_madvise_internal(bufmgr_gem, bo_gem, I915_MADV_DONTNEED)) { bo_gem->free_time = time; @@ -1132,6 +894,8 @@ bo_gem->validate_index = -1; DRMLISTADDTAIL(&bo_gem->head, &bucket->head); + + drm_intel_gem_cleanup_bo_cache(bufmgr_gem, time); } else { drm_intel_gem_bo_free(bo); } @@ -1161,7 +925,6 @@ pthread_mutex_lock(&bufmgr_gem->lock); drm_intel_gem_bo_unreference_final(bo, time.tv_sec); - drm_intel_gem_cleanup_bo_cache(bufmgr_gem, time.tv_sec); pthread_mutex_unlock(&bufmgr_gem->lock); } } @@ -1175,97 +938,96 @@ pthread_mutex_lock(&bufmgr_gem->lock); - if (bo_gem->map_count++ == 0) - drm_intel_gem_bo_open_vma(bufmgr_gem, bo_gem); - + /* Allow recursive mapping. Mesa may recursively map buffers with + * nested display loops. + */ if (!bo_gem->mem_virtual) { struct drm_i915_gem_mmap mmap_arg; - DBG("bo_map: %d (%s), map_count=%d\n", - bo_gem->gem_handle, bo_gem->name, bo_gem->map_count); + DBG("bo_map: %d (%s)\n", bo_gem->gem_handle, bo_gem->name); - VG_CLEAR(mmap_arg); + memset(&mmap_arg, 0, sizeof(mmap_arg)); mmap_arg.handle = bo_gem->gem_handle; mmap_arg.offset = 0; mmap_arg.size = bo->size; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_MMAP, - &mmap_arg); + do { + ret = ioctl(bufmgr_gem->fd, + DRM_IOCTL_I915_GEM_MMAP, + &mmap_arg); + } while (ret == -1 && errno == EINTR); if (ret != 0) { ret = -errno; - DBG("%s:%d: Error mapping buffer %d (%s): %s .\n", - __FILE__, __LINE__, bo_gem->gem_handle, - bo_gem->name, strerror(errno)); - if (--bo_gem->map_count == 0) - drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); + fprintf(stderr, + "%s:%d: Error mapping buffer %d (%s): %s .\n", + __FILE__, __LINE__, bo_gem->gem_handle, + bo_gem->name, strerror(errno)); pthread_mutex_unlock(&bufmgr_gem->lock); return ret; } - VG(VALGRIND_MALLOCLIKE_BLOCK(mmap_arg.addr_ptr, mmap_arg.size, 0, 1)); bo_gem->mem_virtual = (void *)(uintptr_t) mmap_arg.addr_ptr; } DBG("bo_map: %d (%s) -> %p\n", bo_gem->gem_handle, bo_gem->name, bo_gem->mem_virtual); bo->virtual = bo_gem->mem_virtual; - VG_CLEAR(set_domain); set_domain.handle = bo_gem->gem_handle; set_domain.read_domains = I915_GEM_DOMAIN_CPU; if (write_enable) set_domain.write_domain = I915_GEM_DOMAIN_CPU; else set_domain.write_domain = 0; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_SET_DOMAIN, - &set_domain); + do { + ret = ioctl(bufmgr_gem->fd, + DRM_IOCTL_I915_GEM_SET_DOMAIN, + &set_domain); + } while (ret == -1 && errno == EINTR); if (ret != 0) { - DBG("%s:%d: Error setting to CPU domain %d: %s\n", - __FILE__, __LINE__, bo_gem->gem_handle, - strerror(errno)); + ret = -errno; + fprintf(stderr, "%s:%d: Error setting to CPU domain %d: %s\n", + __FILE__, __LINE__, bo_gem->gem_handle, + strerror(errno)); + pthread_mutex_unlock(&bufmgr_gem->lock); + return ret; } - if (write_enable) - bo_gem->mapped_cpu_write = true; - - drm_intel_gem_bo_mark_mmaps_incoherent(bo); - VG(VALGRIND_MAKE_MEM_DEFINED(bo_gem->mem_virtual, bo->size)); pthread_mutex_unlock(&bufmgr_gem->lock); return 0; } -static int -map_gtt(drm_intel_bo *bo) +int drm_intel_gem_bo_map_gtt(drm_intel_bo *bo) { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; + struct drm_i915_gem_set_domain set_domain; int ret; - if (bo_gem->map_count++ == 0) - drm_intel_gem_bo_open_vma(bufmgr_gem, bo_gem); + pthread_mutex_lock(&bufmgr_gem->lock); /* Get a mapping of the buffer if we haven't before. */ if (bo_gem->gtt_virtual == NULL) { struct drm_i915_gem_mmap_gtt mmap_arg; - DBG("bo_map_gtt: mmap %d (%s), map_count=%d\n", - bo_gem->gem_handle, bo_gem->name, bo_gem->map_count); + DBG("bo_map_gtt: mmap %d (%s)\n", bo_gem->gem_handle, + bo_gem->name); - VG_CLEAR(mmap_arg); + memset(&mmap_arg, 0, sizeof(mmap_arg)); mmap_arg.handle = bo_gem->gem_handle; /* Get the fake offset back... */ - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_MMAP_GTT, - &mmap_arg); + do { + ret = ioctl(bufmgr_gem->fd, + DRM_IOCTL_I915_GEM_MMAP_GTT, + &mmap_arg); + } while (ret == -1 && errno == EINTR); if (ret != 0) { ret = -errno; - DBG("%s:%d: Error preparing buffer map %d (%s): %s .\n", - __FILE__, __LINE__, - bo_gem->gem_handle, bo_gem->name, - strerror(errno)); - if (--bo_gem->map_count == 0) - drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); + fprintf(stderr, + "%s:%d: Error preparing buffer map %d (%s): %s .\n", + __FILE__, __LINE__, + bo_gem->gem_handle, bo_gem->name, + strerror(errno)); + pthread_mutex_unlock(&bufmgr_gem->lock); return ret; } @@ -1276,12 +1038,12 @@ if (bo_gem->gtt_virtual == MAP_FAILED) { bo_gem->gtt_virtual = NULL; ret = -errno; - DBG("%s:%d: Error mapping buffer %d (%s): %s .\n", - __FILE__, __LINE__, - bo_gem->gem_handle, bo_gem->name, - strerror(errno)); - if (--bo_gem->map_count == 0) - drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); + fprintf(stderr, + "%s:%d: Error mapping buffer %d (%s): %s .\n", + __FILE__, __LINE__, + bo_gem->gem_handle, bo_gem->name, + strerror(errno)); + pthread_mutex_unlock(&bufmgr_gem->lock); return ret; } } @@ -1291,93 +1053,41 @@ DBG("bo_map_gtt: %d (%s) -> %p\n", bo_gem->gem_handle, bo_gem->name, bo_gem->gtt_virtual); - return 0; -} - -int drm_intel_gem_bo_map_gtt(drm_intel_bo *bo) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - struct drm_i915_gem_set_domain set_domain; - int ret; - - pthread_mutex_lock(&bufmgr_gem->lock); - - ret = map_gtt(bo); - if (ret) { - pthread_mutex_unlock(&bufmgr_gem->lock); - return ret; - } - - /* Now move it to the GTT domain so that the GPU and CPU - * caches are flushed and the GPU isn't actively using the - * buffer. - * - * The pagefault handler does this domain change for us when - * it has unbound the BO from the GTT, but it's up to us to - * tell it when we're about to use things if we had done - * rendering and it still happens to be bound to the GTT. - */ - VG_CLEAR(set_domain); + /* Now move it to the GTT domain so that the CPU caches are flushed */ set_domain.handle = bo_gem->gem_handle; set_domain.read_domains = I915_GEM_DOMAIN_GTT; set_domain.write_domain = I915_GEM_DOMAIN_GTT; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_SET_DOMAIN, - &set_domain); + do { + ret = ioctl(bufmgr_gem->fd, + DRM_IOCTL_I915_GEM_SET_DOMAIN, + &set_domain); + } while (ret == -1 && errno == EINTR); + if (ret != 0) { - DBG("%s:%d: Error setting domain %d: %s\n", - __FILE__, __LINE__, bo_gem->gem_handle, - strerror(errno)); + ret = -errno; + fprintf(stderr, "%s:%d: Error setting domain %d: %s\n", + __FILE__, __LINE__, bo_gem->gem_handle, + strerror(errno)); } - drm_intel_gem_bo_mark_mmaps_incoherent(bo); - VG(VALGRIND_MAKE_MEM_DEFINED(bo_gem->gtt_virtual, bo->size)); pthread_mutex_unlock(&bufmgr_gem->lock); - return 0; + return ret; } -/** - * Performs a mapping of the buffer object like the normal GTT - * mapping, but avoids waiting for the GPU to be done reading from or - * rendering to the buffer. - * - * This is used in the implementation of GL_ARB_map_buffer_range: The - * user asks to create a buffer, then does a mapping, fills some - * space, runs a drawing command, then asks to map it again without - * synchronizing because it guarantees that it won't write over the - * data that the GPU is busy using (or, more specifically, that if it - * does write over the data, it acknowledges that rendering is - * undefined). - */ - -int drm_intel_gem_bo_map_unsynchronized(drm_intel_bo *bo) +int drm_intel_gem_bo_unmap_gtt(drm_intel_bo *bo) { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; -#ifdef HAVE_VALGRIND drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; -#endif - int ret; - - /* If the CPU cache isn't coherent with the GTT, then use a - * regular synchronized mapping. The problem is that we don't - * track where the buffer was last used on the CPU side in - * terms of drm_intel_bo_map vs drm_intel_gem_bo_map_gtt, so - * we would potentially corrupt the buffer even when the user - * does reasonable things. - */ - if (!bufmgr_gem->has_llc) - return drm_intel_gem_bo_map_gtt(bo); + int ret = 0; - pthread_mutex_lock(&bufmgr_gem->lock); + if (bo == NULL) + return 0; - ret = map_gtt(bo); - if (ret == 0) { - drm_intel_gem_bo_mark_mmaps_incoherent(bo); - VG(VALGRIND_MAKE_MEM_DEFINED(bo_gem->gtt_virtual, bo->size)); - } + assert(bo_gem->gtt_virtual != NULL); + pthread_mutex_lock(&bufmgr_gem->lock); + bo->virtual = NULL; pthread_mutex_unlock(&bufmgr_gem->lock); return ret; @@ -1387,59 +1097,33 @@ { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - int ret = 0; + struct drm_i915_gem_sw_finish sw_finish; + int ret; if (bo == NULL) return 0; - pthread_mutex_lock(&bufmgr_gem->lock); + assert(bo_gem->mem_virtual != NULL); - if (bo_gem->map_count <= 0) { - DBG("attempted to unmap an unmapped bo\n"); - pthread_mutex_unlock(&bufmgr_gem->lock); - /* Preserve the old behaviour of just treating this as a - * no-op rather than reporting the error. - */ - return 0; - } + pthread_mutex_lock(&bufmgr_gem->lock); - if (bo_gem->mapped_cpu_write) { - struct drm_i915_gem_sw_finish sw_finish; + /* Cause a flush to happen if the buffer's pinned for scanout, so the + * results show up in a timely manner. + */ + sw_finish.handle = bo_gem->gem_handle; + do { + ret = ioctl(bufmgr_gem->fd, + DRM_IOCTL_I915_GEM_SW_FINISH, + &sw_finish); + } while (ret == -1 && errno == EINTR); + ret = ret == -1 ? -errno : 0; - /* Cause a flush to happen if the buffer's pinned for - * scanout, so the results show up in a timely manner. - * Unlike GTT set domains, this only does work if the - * buffer should be scanout-related. - */ - VG_CLEAR(sw_finish); - sw_finish.handle = bo_gem->gem_handle; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_SW_FINISH, - &sw_finish); - ret = ret == -1 ? -errno : 0; - - bo_gem->mapped_cpu_write = false; - } - - /* We need to unmap after every innovation as we cannot track - * an open vma for every bo as that will exhaasut the system - * limits and cause later failures. - */ - if (--bo_gem->map_count == 0) { - drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); - drm_intel_gem_bo_mark_mmaps_incoherent(bo); - bo->virtual = NULL; - } + bo->virtual = NULL; pthread_mutex_unlock(&bufmgr_gem->lock); return ret; } -int drm_intel_gem_bo_unmap_gtt(drm_intel_bo *bo) -{ - return drm_intel_gem_bo_unmap(bo); -} - static int drm_intel_gem_bo_subdata(drm_intel_bo *bo, unsigned long offset, unsigned long size, const void *data) @@ -1449,19 +1133,22 @@ struct drm_i915_gem_pwrite pwrite; int ret; - VG_CLEAR(pwrite); + memset(&pwrite, 0, sizeof(pwrite)); pwrite.handle = bo_gem->gem_handle; pwrite.offset = offset; pwrite.size = size; pwrite.data_ptr = (uint64_t) (uintptr_t) data; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_PWRITE, - &pwrite); + do { + ret = ioctl(bufmgr_gem->fd, + DRM_IOCTL_I915_GEM_PWRITE, + &pwrite); + } while (ret == -1 && errno == EINTR); if (ret != 0) { ret = -errno; - DBG("%s:%d: Error writing data to buffer %d: (%d %d) %s .\n", - __FILE__, __LINE__, bo_gem->gem_handle, (int)offset, - (int)size, strerror(errno)); + fprintf(stderr, + "%s:%d: Error writing data to buffer %d: (%d %d) %s .\n", + __FILE__, __LINE__, bo_gem->gem_handle, (int)offset, + (int)size, strerror(errno)); } return ret; @@ -1474,11 +1161,9 @@ struct drm_i915_get_pipe_from_crtc_id get_pipe_from_crtc_id; int ret; - VG_CLEAR(get_pipe_from_crtc_id); get_pipe_from_crtc_id.crtc_id = crtc_id; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID, - &get_pipe_from_crtc_id); + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID, + &get_pipe_from_crtc_id); if (ret != 0) { /* We return -1 here to signal that we don't * know which pipe is associated with this crtc. @@ -1501,81 +1186,32 @@ struct drm_i915_gem_pread pread; int ret; - VG_CLEAR(pread); + memset(&pread, 0, sizeof(pread)); pread.handle = bo_gem->gem_handle; pread.offset = offset; pread.size = size; pread.data_ptr = (uint64_t) (uintptr_t) data; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_PREAD, - &pread); + do { + ret = ioctl(bufmgr_gem->fd, + DRM_IOCTL_I915_GEM_PREAD, + &pread); + } while (ret == -1 && errno == EINTR); if (ret != 0) { ret = -errno; - DBG("%s:%d: Error reading data from buffer %d: (%d %d) %s .\n", - __FILE__, __LINE__, bo_gem->gem_handle, (int)offset, - (int)size, strerror(errno)); + fprintf(stderr, + "%s:%d: Error reading data from buffer %d: (%d %d) %s .\n", + __FILE__, __LINE__, bo_gem->gem_handle, (int)offset, + (int)size, strerror(errno)); } return ret; } -/** Waits for all GPU rendering with the object to have completed. */ +/** Waits for all GPU rendering to the object to have completed. */ static void drm_intel_gem_bo_wait_rendering(drm_intel_bo *bo) { - drm_intel_gem_bo_start_gtt_access(bo, 1); -} - -/** - * Waits on a BO for the given amount of time. - * - * @bo: buffer object to wait for - * @timeout_ns: amount of time to wait in nanoseconds. - * If value is less than 0, an infinite wait will occur. - * - * Returns 0 if the wait was successful ie. the last batch referencing the - * object has completed within the allotted time. Otherwise some negative return - * value describes the error. Of particular interest is -ETIME when the wait has - * failed to yield the desired result. - * - * Similar to drm_intel_gem_bo_wait_rendering except a timeout parameter allows - * the operation to give up after a certain amount of time. Another subtle - * difference is the internal locking semantics are different (this variant does - * not hold the lock for the duration of the wait). This makes the wait subject - * to a larger userspace race window. - * - * The implementation shall wait until the object is no longer actively - * referenced within a batch buffer at the time of the call. The wait will - * not guarantee that the buffer is re-issued via another thread, or an flinked - * handle. Userspace must make sure this race does not occur if such precision - * is important. - */ -int drm_intel_gem_bo_wait(drm_intel_bo *bo, int64_t timeout_ns) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - struct drm_i915_gem_wait wait; - int ret; - - if (!bufmgr_gem->has_wait_timeout) { - DBG("%s:%d: Timed wait is not supported. Falling back to " - "infinite wait\n", __FILE__, __LINE__); - if (timeout_ns) { - drm_intel_gem_bo_wait_rendering(bo); - return 0; - } else { - return drm_intel_gem_bo_busy(bo) ? -ETIME : 0; - } - } - - wait.bo_handle = bo_gem->gem_handle; - wait.timeout_ns = timeout_ns; - wait.flags = 0; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_WAIT, &wait); - if (ret == -1) - return -errno; - - return ret; + drm_intel_gem_bo_start_gtt_access(bo, 0); } /** @@ -1593,18 +1229,20 @@ struct drm_i915_gem_set_domain set_domain; int ret; - VG_CLEAR(set_domain); set_domain.handle = bo_gem->gem_handle; set_domain.read_domains = I915_GEM_DOMAIN_GTT; set_domain.write_domain = write_enable ? I915_GEM_DOMAIN_GTT : 0; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_SET_DOMAIN, - &set_domain); + do { + ret = ioctl(bufmgr_gem->fd, + DRM_IOCTL_I915_GEM_SET_DOMAIN, + &set_domain); + } while (ret == -1 && errno == EINTR); if (ret != 0) { - DBG("%s:%d: Error setting memory domains %d (%08x %08x): %s .\n", - __FILE__, __LINE__, bo_gem->gem_handle, - set_domain.read_domains, set_domain.write_domain, - strerror(errno)); + fprintf(stderr, + "%s:%d: Error setting memory domains %d (%08x %08x): %s .\n", + __FILE__, __LINE__, bo_gem->gem_handle, + set_domain.read_domains, set_domain.write_domain, + strerror(errno)); } } @@ -1617,7 +1255,6 @@ free(bufmgr_gem->exec2_objects); free(bufmgr_gem->exec_objects); free(bufmgr_gem->exec_bos); - free(bufmgr_gem->aub_filename); pthread_mutex_destroy(&bufmgr_gem->lock); @@ -1652,28 +1289,26 @@ do_bo_emit_reloc(drm_intel_bo *bo, uint32_t offset, drm_intel_bo *target_bo, uint32_t target_offset, uint32_t read_domains, uint32_t write_domain, - bool need_fence) + int need_fence) { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; drm_intel_bo_gem *target_bo_gem = (drm_intel_bo_gem *) target_bo; - bool fenced_command; if (bo_gem->has_error) return -ENOMEM; if (target_bo_gem->has_error) { - bo_gem->has_error = true; + bo_gem->has_error = 1; return -ENOMEM; } + if (target_bo_gem->tiling_mode == I915_TILING_NONE) + need_fence = 0; + /* We never use HW fences for rendering on 965+ */ if (bufmgr_gem->gen >= 4) - need_fence = false; - - fenced_command = need_fence; - if (target_bo_gem->tiling_mode == I915_TILING_NONE) - need_fence = false; + need_fence = 0; /* Create a new relocation list if needed */ if (bo_gem->relocs == NULL && drm_intel_setup_reloc_list(bo)) @@ -1691,7 +1326,7 @@ */ assert(!bo_gem->used_as_reloc_target); if (target_bo_gem != bo_gem) { - target_bo_gem->used_as_reloc_target = true; + target_bo_gem->used_as_reloc_target = 1; bo_gem->reloc_tree_size += target_bo_gem->reloc_tree_size; } /* An object needing a fence is a tiled buffer, so it won't have @@ -1701,18 +1336,20 @@ target_bo_gem->reloc_tree_fences = 1; bo_gem->reloc_tree_fences += target_bo_gem->reloc_tree_fences; + /* Flag the target to disallow further relocations in it. */ + bo_gem->relocs[bo_gem->reloc_count].offset = offset; bo_gem->relocs[bo_gem->reloc_count].delta = target_offset; bo_gem->relocs[bo_gem->reloc_count].target_handle = target_bo_gem->gem_handle; bo_gem->relocs[bo_gem->reloc_count].read_domains = read_domains; bo_gem->relocs[bo_gem->reloc_count].write_domain = write_domain; - bo_gem->relocs[bo_gem->reloc_count].presumed_offset = target_bo->offset64; + bo_gem->relocs[bo_gem->reloc_count].presumed_offset = target_bo->offset; bo_gem->reloc_target_info[bo_gem->reloc_count].bo = target_bo; if (target_bo != bo) drm_intel_gem_bo_reference(target_bo); - if (fenced_command) + if (need_fence) bo_gem->reloc_target_info[bo_gem->reloc_count].flags = DRM_INTEL_RELOC_FENCE; else @@ -1742,50 +1379,7 @@ uint32_t read_domains, uint32_t write_domain) { return do_bo_emit_reloc(bo, offset, target_bo, target_offset, - read_domains, write_domain, true); -} - -int -drm_intel_gem_bo_get_reloc_count(drm_intel_bo *bo) -{ - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - - return bo_gem->reloc_count; -} - -/** - * Removes existing relocation entries in the BO after "start". - * - * This allows a user to avoid a two-step process for state setup with - * counting up all the buffer objects and doing a - * drm_intel_bufmgr_check_aperture_space() before emitting any of the - * relocations for the state setup. Instead, save the state of the - * batchbuffer including drm_intel_gem_get_reloc_count(), emit all the - * state, and then check if it still fits in the aperture. - * - * Any further drm_intel_bufmgr_check_aperture_space() queries - * involving this buffer in the tree are undefined after this call. - */ -void -drm_intel_gem_bo_clear_relocs(drm_intel_bo *bo, int start) -{ - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - int i; - struct timespec time; - - clock_gettime(CLOCK_MONOTONIC, &time); - - assert(bo_gem->reloc_count >= start); - /* Unreference the cleared target buffers */ - for (i = start; i < bo_gem->reloc_count; i++) { - drm_intel_bo_gem *target_bo_gem = (drm_intel_bo_gem *) bo_gem->reloc_target_info[i].bo; - if (&target_bo_gem->bo != bo) { - bo_gem->reloc_tree_fences -= target_bo_gem->reloc_tree_fences; - drm_intel_gem_bo_unreference_locked_timed(&target_bo_gem->bo, - time.tv_sec); - } - } - bo_gem->reloc_count = start; + read_domains, write_domain, 1); } /** @@ -1808,8 +1402,6 @@ if (target_bo == bo) continue; - drm_intel_gem_bo_mark_mmaps_incoherent(bo); - /* Continue walking the tree depth-first. */ drm_intel_gem_bo_process_reloc(target_bo); @@ -1834,8 +1426,6 @@ if (target_bo == bo) continue; - drm_intel_gem_bo_mark_mmaps_incoherent(bo); - /* Continue walking the tree depth-first. */ drm_intel_gem_bo_process_reloc2(target_bo); @@ -1858,12 +1448,11 @@ drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; /* Update the buffer offset */ - if (bufmgr_gem->exec_objects[i].offset != bo->offset64) { + if (bufmgr_gem->exec_objects[i].offset != bo->offset) { DBG("BO %d (%s) migrated: 0x%08lx -> 0x%08llx\n", - bo_gem->gem_handle, bo_gem->name, bo->offset64, + bo_gem->gem_handle, bo_gem->name, bo->offset, (unsigned long long)bufmgr_gem->exec_objects[i]. offset); - bo->offset64 = bufmgr_gem->exec_objects[i].offset; bo->offset = bufmgr_gem->exec_objects[i].offset; } } @@ -1879,312 +1468,18 @@ drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo; /* Update the buffer offset */ - if (bufmgr_gem->exec2_objects[i].offset != bo->offset64) { + if (bufmgr_gem->exec2_objects[i].offset != bo->offset) { DBG("BO %d (%s) migrated: 0x%08lx -> 0x%08llx\n", - bo_gem->gem_handle, bo_gem->name, bo->offset64, + bo_gem->gem_handle, bo_gem->name, bo->offset, (unsigned long long)bufmgr_gem->exec2_objects[i].offset); - bo->offset64 = bufmgr_gem->exec2_objects[i].offset; bo->offset = bufmgr_gem->exec2_objects[i].offset; } } } -static void -aub_out(drm_intel_bufmgr_gem *bufmgr_gem, uint32_t data) -{ - fwrite(&data, 1, 4, bufmgr_gem->aub_file); -} - -static void -aub_out_data(drm_intel_bufmgr_gem *bufmgr_gem, void *data, size_t size) -{ - fwrite(data, 1, size, bufmgr_gem->aub_file); -} - -static void -aub_write_bo_data(drm_intel_bo *bo, uint32_t offset, uint32_t size) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - uint32_t *data; - unsigned int i; - - data = malloc(bo->size); - drm_intel_bo_get_subdata(bo, offset, size, data); - - /* Easy mode: write out bo with no relocations */ - if (!bo_gem->reloc_count) { - aub_out_data(bufmgr_gem, data, size); - free(data); - return; - } - - /* Otherwise, handle the relocations while writing. */ - for (i = 0; i < size / 4; i++) { - int r; - for (r = 0; r < bo_gem->reloc_count; r++) { - struct drm_i915_gem_relocation_entry *reloc; - drm_intel_reloc_target *info; - - reloc = &bo_gem->relocs[r]; - info = &bo_gem->reloc_target_info[r]; - - if (reloc->offset == offset + i * 4) { - drm_intel_bo_gem *target_gem; - uint32_t val; - - target_gem = (drm_intel_bo_gem *)info->bo; - - val = reloc->delta; - val += target_gem->aub_offset; - - aub_out(bufmgr_gem, val); - data[i] = val; - break; - } - } - if (r == bo_gem->reloc_count) { - /* no relocation, just the data */ - aub_out(bufmgr_gem, data[i]); - } - } - - free(data); -} - -static void -aub_bo_get_address(drm_intel_bo *bo) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - - /* Give the object a graphics address in the AUB file. We - * don't just use the GEM object address because we do AUB - * dumping before execution -- we want to successfully log - * when the hardware might hang, and we might even want to aub - * capture for a driver trying to execute on a different - * generation of hardware by disabling the actual kernel exec - * call. - */ - bo_gem->aub_offset = bufmgr_gem->aub_offset; - bufmgr_gem->aub_offset += bo->size; - /* XXX: Handle aperture overflow. */ - assert(bufmgr_gem->aub_offset < 256 * 1024 * 1024); -} - -static void -aub_write_trace_block(drm_intel_bo *bo, uint32_t type, uint32_t subtype, - uint32_t offset, uint32_t size) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - - aub_out(bufmgr_gem, - CMD_AUB_TRACE_HEADER_BLOCK | - ((bufmgr_gem->gen >= 8 ? 6 : 5) - 2)); - aub_out(bufmgr_gem, - AUB_TRACE_MEMTYPE_GTT | type | AUB_TRACE_OP_DATA_WRITE); - aub_out(bufmgr_gem, subtype); - aub_out(bufmgr_gem, bo_gem->aub_offset + offset); - aub_out(bufmgr_gem, size); - if (bufmgr_gem->gen >= 8) - aub_out(bufmgr_gem, 0); - aub_write_bo_data(bo, offset, size); -} - -/** - * Break up large objects into multiple writes. Otherwise a 128kb VBO - * would overflow the 16 bits of size field in the packet header and - * everything goes badly after that. - */ -static void -aub_write_large_trace_block(drm_intel_bo *bo, uint32_t type, uint32_t subtype, - uint32_t offset, uint32_t size) -{ - uint32_t block_size; - uint32_t sub_offset; - - for (sub_offset = 0; sub_offset < size; sub_offset += block_size) { - block_size = size - sub_offset; - - if (block_size > 8 * 4096) - block_size = 8 * 4096; - - aub_write_trace_block(bo, type, subtype, offset + sub_offset, - block_size); - } -} - -static void -aub_write_bo(drm_intel_bo *bo) -{ - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - uint32_t offset = 0; - unsigned i; - - aub_bo_get_address(bo); - - /* Write out each annotated section separately. */ - for (i = 0; i < bo_gem->aub_annotation_count; ++i) { - drm_intel_aub_annotation *annotation = - &bo_gem->aub_annotations[i]; - uint32_t ending_offset = annotation->ending_offset; - if (ending_offset > bo->size) - ending_offset = bo->size; - if (ending_offset > offset) { - aub_write_large_trace_block(bo, annotation->type, - annotation->subtype, - offset, - ending_offset - offset); - offset = ending_offset; - } - } - - /* Write out any remaining unannotated data */ - if (offset < bo->size) { - aub_write_large_trace_block(bo, AUB_TRACE_TYPE_NOTYPE, 0, - offset, bo->size - offset); - } -} - -/* - * Make a ringbuffer on fly and dump it - */ -static void -aub_build_dump_ringbuffer(drm_intel_bufmgr_gem *bufmgr_gem, - uint32_t batch_buffer, int ring_flag) -{ - uint32_t ringbuffer[4096]; - int ring = AUB_TRACE_TYPE_RING_PRB0; /* The default ring */ - int ring_count = 0; - - if (ring_flag == I915_EXEC_BSD) - ring = AUB_TRACE_TYPE_RING_PRB1; - else if (ring_flag == I915_EXEC_BLT) - ring = AUB_TRACE_TYPE_RING_PRB2; - - /* Make a ring buffer to execute our batchbuffer. */ - memset(ringbuffer, 0, sizeof(ringbuffer)); - if (bufmgr_gem->gen >= 8) { - ringbuffer[ring_count++] = AUB_MI_BATCH_BUFFER_START | (3 - 2); - ringbuffer[ring_count++] = batch_buffer; - ringbuffer[ring_count++] = 0; - } else { - ringbuffer[ring_count++] = AUB_MI_BATCH_BUFFER_START; - ringbuffer[ring_count++] = batch_buffer; - } - - /* Write out the ring. This appears to trigger execution of - * the ring in the simulator. - */ - aub_out(bufmgr_gem, - CMD_AUB_TRACE_HEADER_BLOCK | - ((bufmgr_gem->gen >= 8 ? 6 : 5) - 2)); - aub_out(bufmgr_gem, - AUB_TRACE_MEMTYPE_GTT | ring | AUB_TRACE_OP_COMMAND_WRITE); - aub_out(bufmgr_gem, 0); /* general/surface subtype */ - aub_out(bufmgr_gem, bufmgr_gem->aub_offset); - aub_out(bufmgr_gem, ring_count * 4); - if (bufmgr_gem->gen >= 8) - aub_out(bufmgr_gem, 0); - - /* FIXME: Need some flush operations here? */ - aub_out_data(bufmgr_gem, ringbuffer, ring_count * 4); - - /* Update offset pointer */ - bufmgr_gem->aub_offset += 4096; -} - -void -drm_intel_gem_bo_aub_dump_bmp(drm_intel_bo *bo, - int x1, int y1, int width, int height, - enum aub_dump_bmp_format format, - int pitch, int offset) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo; - uint32_t cpp; - - switch (format) { - case AUB_DUMP_BMP_FORMAT_8BIT: - cpp = 1; - break; - case AUB_DUMP_BMP_FORMAT_ARGB_4444: - cpp = 2; - break; - case AUB_DUMP_BMP_FORMAT_ARGB_0888: - case AUB_DUMP_BMP_FORMAT_ARGB_8888: - cpp = 4; - break; - default: - printf("Unknown AUB dump format %d\n", format); - return; - } - - if (!bufmgr_gem->aub_file) - return; - - aub_out(bufmgr_gem, CMD_AUB_DUMP_BMP | 4); - aub_out(bufmgr_gem, (y1 << 16) | x1); - aub_out(bufmgr_gem, - (format << 24) | - (cpp << 19) | - pitch / 4); - aub_out(bufmgr_gem, (height << 16) | width); - aub_out(bufmgr_gem, bo_gem->aub_offset + offset); - aub_out(bufmgr_gem, - ((bo_gem->tiling_mode != I915_TILING_NONE) ? (1 << 2) : 0) | - ((bo_gem->tiling_mode == I915_TILING_Y) ? (1 << 3) : 0)); -} - -static void -aub_exec(drm_intel_bo *bo, int ring_flag, int used) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - int i; - bool batch_buffer_needs_annotations; - - if (!bufmgr_gem->aub_file) - return; - - /* If batch buffer is not annotated, annotate it the best we - * can. - */ - batch_buffer_needs_annotations = bo_gem->aub_annotation_count == 0; - if (batch_buffer_needs_annotations) { - drm_intel_aub_annotation annotations[2] = { - { AUB_TRACE_TYPE_BATCH, 0, used }, - { AUB_TRACE_TYPE_NOTYPE, 0, bo->size } - }; - drm_intel_bufmgr_gem_set_aub_annotations(bo, annotations, 2); - } - - /* Write out all buffers to AUB memory */ - for (i = 0; i < bufmgr_gem->exec_count; i++) { - aub_write_bo(bufmgr_gem->exec_bos[i]); - } - - /* Remove any annotations we added */ - if (batch_buffer_needs_annotations) - drm_intel_bufmgr_gem_set_aub_annotations(bo, NULL, 0); - - /* Dump ring buffer */ - aub_build_dump_ringbuffer(bufmgr_gem, bo_gem->aub_offset, ring_flag); - - fflush(bufmgr_gem->aub_file); - - /* - * One frame has been dumped. So reset the aub_offset for the next frame. - * - * FIXME: Can we do this? - */ - bufmgr_gem->aub_offset = 0x10000; -} - -static int -drm_intel_gem_bo_exec(drm_intel_bo *bo, int used, - drm_clip_rect_t * cliprects, int num_cliprects, int DR4) +static int +drm_intel_gem_bo_exec(drm_intel_bo *bo, int used, + drm_clip_rect_t * cliprects, int num_cliprects, int DR4) { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; @@ -2203,7 +1498,6 @@ */ drm_intel_add_validate_buffer(bo); - VG_CLEAR(execbuf); execbuf.buffers_ptr = (uintptr_t) bufmgr_gem->exec_objects; execbuf.buffer_count = bufmgr_gem->exec_count; execbuf.batch_start_offset = 0; @@ -2213,21 +1507,25 @@ execbuf.DR1 = 0; execbuf.DR4 = DR4; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_EXECBUFFER, - &execbuf); + do { + ret = ioctl(bufmgr_gem->fd, + DRM_IOCTL_I915_GEM_EXECBUFFER, + &execbuf); + } while (ret != 0 && errno == EINTR); + if (ret != 0) { ret = -errno; if (errno == ENOSPC) { - DBG("Execbuffer fails to pin. " - "Estimate: %u. Actual: %u. Available: %u\n", - drm_intel_gem_estimate_batch_space(bufmgr_gem->exec_bos, - bufmgr_gem-> - exec_count), - drm_intel_gem_compute_batch_space(bufmgr_gem->exec_bos, - bufmgr_gem-> - exec_count), - (unsigned int)bufmgr_gem->gtt_size); + fprintf(stderr, + "Execbuffer fails to pin. " + "Estimate: %u. Actual: %u. Available: %u\n", + drm_intel_gem_estimate_batch_space(bufmgr_gem->exec_bos, + bufmgr_gem-> + exec_count), + drm_intel_gem_compute_batch_space(bufmgr_gem->exec_bos, + bufmgr_gem-> + exec_count), + (unsigned int)bufmgr_gem->gtt_size); } } drm_intel_update_buffer_offsets(bufmgr_gem); @@ -2239,8 +1537,6 @@ drm_intel_bo *bo = bufmgr_gem->exec_bos[i]; drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - bo_gem->idle = false; - /* Disconnect the buffer from the validate list */ bo_gem->validate_index = -1; bufmgr_gem->exec_bos[i] = NULL; @@ -2252,34 +1548,16 @@ } static int -do_exec2(drm_intel_bo *bo, int used, drm_intel_context *ctx, - drm_clip_rect_t *cliprects, int num_cliprects, int DR4, - unsigned int flags) +drm_intel_gem_bo_mrb_exec2(drm_intel_bo *bo, int used, + drm_clip_rect_t *cliprects, int num_cliprects, int DR4, + int ring_flag) { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bo->bufmgr; struct drm_i915_gem_execbuffer2 execbuf; - int ret = 0; - int i; + int ret, i; - switch (flags & 0x7) { - default: + if ((ring_flag != I915_EXEC_RENDER) && (ring_flag != I915_EXEC_BSD)) return -EINVAL; - case I915_EXEC_BLT: - if (!bufmgr_gem->has_blt) - return -EINVAL; - break; - case I915_EXEC_BSD: - if (!bufmgr_gem->has_bsd) - return -EINVAL; - break; - case I915_EXEC_VEBOX: - if (!bufmgr_gem->has_vebox) - return -EINVAL; - break; - case I915_EXEC_RENDER: - case I915_EXEC_DEFAULT: - break; - } pthread_mutex_lock(&bufmgr_gem->lock); /* Update indices and set up the validate list. */ @@ -2290,7 +1568,6 @@ */ drm_intel_add_validate_buffer2(bo, 0); - VG_CLEAR(execbuf); execbuf.buffers_ptr = (uintptr_t)bufmgr_gem->exec2_objects; execbuf.buffer_count = bufmgr_gem->exec_count; execbuf.batch_start_offset = 0; @@ -2299,36 +1576,30 @@ execbuf.num_cliprects = num_cliprects; execbuf.DR1 = 0; execbuf.DR4 = DR4; - execbuf.flags = flags; - if (ctx == NULL) - i915_execbuffer2_set_context_id(execbuf, 0); - else - i915_execbuffer2_set_context_id(execbuf, ctx->ctx_id); + execbuf.flags = ring_flag; + execbuf.rsvd1 = 0; execbuf.rsvd2 = 0; - aub_exec(bo, flags, used); - - if (bufmgr_gem->no_exec) - goto skip_execution; + do { + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, + &execbuf); + } while (ret != 0 && errno == EINTR); - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_EXECBUFFER2, - &execbuf); if (ret != 0) { ret = -errno; - if (ret == -ENOSPC) { - DBG("Execbuffer fails to pin. " - "Estimate: %u. Actual: %u. Available: %u\n", - drm_intel_gem_estimate_batch_space(bufmgr_gem->exec_bos, - bufmgr_gem->exec_count), - drm_intel_gem_compute_batch_space(bufmgr_gem->exec_bos, - bufmgr_gem->exec_count), - (unsigned int) bufmgr_gem->gtt_size); + if (ret == -ENOMEM) { + fprintf(stderr, + "Execbuffer fails to pin. " + "Estimate: %u. Actual: %u. Available: %u\n", + drm_intel_gem_estimate_batch_space(bufmgr_gem->exec_bos, + bufmgr_gem->exec_count), + drm_intel_gem_compute_batch_space(bufmgr_gem->exec_bos, + bufmgr_gem->exec_count), + (unsigned int) bufmgr_gem->gtt_size); } } drm_intel_update_buffer_offsets2(bufmgr_gem); -skip_execution: if (bufmgr_gem->bufmgr.debug) drm_intel_gem_dump_validation_list(bufmgr_gem); @@ -2336,8 +1607,6 @@ drm_intel_bo *bo = bufmgr_gem->exec_bos[i]; drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo; - bo_gem->idle = false; - /* Disconnect the buffer from the validate list */ bo_gem->validate_index = -1; bufmgr_gem->exec_bos[i] = NULL; @@ -2353,24 +1622,9 @@ drm_clip_rect_t *cliprects, int num_cliprects, int DR4) { - return do_exec2(bo, used, NULL, cliprects, num_cliprects, DR4, - I915_EXEC_RENDER); -} - -static int -drm_intel_gem_bo_mrb_exec2(drm_intel_bo *bo, int used, - drm_clip_rect_t *cliprects, int num_cliprects, int DR4, - unsigned int flags) -{ - return do_exec2(bo, used, NULL, cliprects, num_cliprects, DR4, - flags); -} - -int -drm_intel_gem_bo_context_exec(drm_intel_bo *bo, drm_intel_context *ctx, - int used, unsigned int flags) -{ - return do_exec2(bo, used, ctx, NULL, 0, 0, flags); + return drm_intel_gem_bo_mrb_exec2(bo, used, + cliprects, num_cliprects, DR4, + I915_EXEC_RENDER); } static int @@ -2381,17 +1635,19 @@ struct drm_i915_gem_pin pin; int ret; - VG_CLEAR(pin); + memset(&pin, 0, sizeof(pin)); pin.handle = bo_gem->gem_handle; pin.alignment = alignment; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_PIN, - &pin); + do { + ret = ioctl(bufmgr_gem->fd, + DRM_IOCTL_I915_GEM_PIN, + &pin); + } while (ret == -1 && errno == EINTR); + if (ret != 0) return -errno; - bo->offset64 = pin.offset; bo->offset = pin.offset; return 0; } @@ -2404,10 +1660,10 @@ struct drm_i915_gem_unpin unpin; int ret; - VG_CLEAR(unpin); + memset(&unpin, 0, sizeof(unpin)); unpin.handle = bo_gem->gem_handle; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_UNPIN, &unpin); + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_UNPIN, &unpin); if (ret != 0) return -errno; @@ -2415,60 +1671,34 @@ } static int -drm_intel_gem_bo_set_tiling_internal(drm_intel_bo *bo, - uint32_t tiling_mode, - uint32_t stride) +drm_intel_gem_bo_set_tiling(drm_intel_bo *bo, uint32_t * tiling_mode, + uint32_t stride) { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; struct drm_i915_gem_set_tiling set_tiling; int ret; - if (bo_gem->global_name == 0 && - tiling_mode == bo_gem->tiling_mode && - stride == bo_gem->stride) + if (bo_gem->global_name == 0 && *tiling_mode == bo_gem->tiling_mode) return 0; memset(&set_tiling, 0, sizeof(set_tiling)); + set_tiling.handle = bo_gem->gem_handle; + do { - /* set_tiling is slightly broken and overwrites the - * input on the error path, so we have to open code - * rmIoctl. - */ - set_tiling.handle = bo_gem->gem_handle; - set_tiling.tiling_mode = tiling_mode; + set_tiling.tiling_mode = *tiling_mode; set_tiling.stride = stride; ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SET_TILING, &set_tiling); - } while (ret == -1 && (errno == EINTR || errno == EAGAIN)); - if (ret == -1) - return -errno; - - bo_gem->tiling_mode = set_tiling.tiling_mode; - bo_gem->swizzle_mode = set_tiling.swizzle_mode; - bo_gem->stride = set_tiling.stride; - return 0; -} - -static int -drm_intel_gem_bo_set_tiling(drm_intel_bo *bo, uint32_t * tiling_mode, - uint32_t stride) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - int ret; - - /* Linear buffers have no stride. By ensuring that we only ever use - * stride 0 with linear buffers, we simplify our code. - */ - if (*tiling_mode == I915_TILING_NONE) - stride = 0; - - ret = drm_intel_gem_bo_set_tiling_internal(bo, *tiling_mode, stride); - if (ret == 0) + } while (ret == -1 && errno == EINTR); + if (ret == 0) { + bo_gem->tiling_mode = set_tiling.tiling_mode; + bo_gem->swizzle_mode = set_tiling.swizzle_mode; drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem); + } else + ret = -errno; *tiling_mode = bo_gem->tiling_mode; return ret; @@ -2485,127 +1715,23 @@ return 0; } -drm_intel_bo * -drm_intel_bo_gem_create_from_prime(drm_intel_bufmgr *bufmgr, int prime_fd, int size) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bufmgr; - int ret; - uint32_t handle; - drm_intel_bo_gem *bo_gem; - struct drm_i915_gem_get_tiling get_tiling; - drmMMListHead *list; - - ret = drmPrimeFDToHandle(bufmgr_gem->fd, prime_fd, &handle); - - /* - * See if the kernel has already returned this buffer to us. Just as - * for named buffers, we must not create two bo's pointing at the same - * kernel object - */ - for (list = bufmgr_gem->named.next; - list != &bufmgr_gem->named; - list = list->next) { - bo_gem = DRMLISTENTRY(drm_intel_bo_gem, list, name_list); - if (bo_gem->gem_handle == handle) { - drm_intel_gem_bo_reference(&bo_gem->bo); - return &bo_gem->bo; - } - } - - if (ret) { - fprintf(stderr,"ret is %d %d\n", ret, errno); - return NULL; - } - - bo_gem = calloc(1, sizeof(*bo_gem)); - if (!bo_gem) - return NULL; - - /* Determine size of bo. The fd-to-handle ioctl really should - * return the size, but it doesn't. If we have kernel 3.12 or - * later, we can lseek on the prime fd to get the size. Older - * kernels will just fail, in which case we fall back to the - * provided (estimated or guess size). */ - ret = lseek(prime_fd, 0, SEEK_END); - if (ret != -1) - bo_gem->bo.size = ret; - else - bo_gem->bo.size = size; - - bo_gem->bo.handle = handle; - bo_gem->bo.bufmgr = bufmgr; - - bo_gem->gem_handle = handle; - - atomic_set(&bo_gem->refcount, 1); - - bo_gem->name = "prime"; - bo_gem->validate_index = -1; - bo_gem->reloc_tree_fences = 0; - bo_gem->used_as_reloc_target = false; - bo_gem->has_error = false; - bo_gem->reusable = false; - - DRMINITLISTHEAD(&bo_gem->vma_list); - DRMLISTADDTAIL(&bo_gem->name_list, &bufmgr_gem->named); - - VG_CLEAR(get_tiling); - get_tiling.handle = bo_gem->gem_handle; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_GET_TILING, - &get_tiling); - if (ret != 0) { - drm_intel_gem_bo_unreference(&bo_gem->bo); - return NULL; - } - bo_gem->tiling_mode = get_tiling.tiling_mode; - bo_gem->swizzle_mode = get_tiling.swizzle_mode; - /* XXX stride is unknown */ - drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem); - - return &bo_gem->bo; -} - -int -drm_intel_bo_gem_export_to_prime(drm_intel_bo *bo, int *prime_fd) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - - if (DRMLISTEMPTY(&bo_gem->name_list)) - DRMLISTADDTAIL(&bo_gem->name_list, &bufmgr_gem->named); - - if (drmPrimeHandleToFD(bufmgr_gem->fd, bo_gem->gem_handle, - DRM_CLOEXEC, prime_fd) != 0) - return -errno; - - bo_gem->reusable = false; - - return 0; -} - static int drm_intel_gem_bo_flink(drm_intel_bo *bo, uint32_t * name) { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; + struct drm_gem_flink flink; int ret; if (!bo_gem->global_name) { - struct drm_gem_flink flink; - - VG_CLEAR(flink); + memset(&flink, 0, sizeof(flink)); flink.handle = bo_gem->gem_handle; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_GEM_FLINK, &flink); + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_GEM_FLINK, &flink); if (ret != 0) return -errno; - bo_gem->global_name = flink.name; - bo_gem->reusable = false; - - if (DRMLISTEMPTY(&bo_gem->name_list)) - DRMLISTADDTAIL(&bo_gem->name_list, &bufmgr_gem->named); + bo_gem->reusable = 0; } *name = bo_gem->global_name; @@ -2624,7 +1750,7 @@ { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bufmgr; - bufmgr_gem->bo_reuse = true; + bufmgr_gem->bo_reuse = 1; } /** @@ -2640,7 +1766,7 @@ drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr; if (bufmgr_gem->bufmgr.bo_exec == drm_intel_gem_bo_exec2) - bufmgr_gem->fenced_relocs = true; + bufmgr_gem->fenced_relocs = 1; } /** @@ -2658,7 +1784,7 @@ return 0; total += bo->size; - bo_gem->included_in_check_aperture = true; + bo_gem->included_in_check_aperture = 1; for (i = 0; i < bo_gem->reloc_count; i++) total += @@ -2706,7 +1832,7 @@ if (bo == NULL || !bo_gem->included_in_check_aperture) return; - bo_gem->included_in_check_aperture = false; + bo_gem->included_in_check_aperture = 0; for (i = 0; i < bo_gem->reloc_count; i++) drm_intel_gem_bo_clear_aperture_space_flag(bo_gem-> @@ -2823,7 +1949,7 @@ { drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - bo_gem->reusable = false; + bo_gem->reusable = 0; return 0; } @@ -2906,281 +2032,6 @@ } } -void -drm_intel_bufmgr_gem_set_vma_cache_size(drm_intel_bufmgr *bufmgr, int limit) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr; - - bufmgr_gem->vma_max = limit; - - drm_intel_gem_bo_purge_vma_cache(bufmgr_gem); -} - -/** - * Get the PCI ID for the device. This can be overridden by setting the - * INTEL_DEVID_OVERRIDE environment variable to the desired ID. - */ -static int -get_pci_device_id(drm_intel_bufmgr_gem *bufmgr_gem) -{ - char *devid_override; - int devid; - int ret; - drm_i915_getparam_t gp; - - if (geteuid() == getuid()) { - devid_override = getenv("INTEL_DEVID_OVERRIDE"); - if (devid_override) { - bufmgr_gem->no_exec = true; - return strtod(devid_override, NULL); - } - } - - VG_CLEAR(devid); - VG_CLEAR(gp); - gp.param = I915_PARAM_CHIPSET_ID; - gp.value = &devid; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); - if (ret) { - fprintf(stderr, "get chip id failed: %d [%d]\n", ret, errno); - fprintf(stderr, "param: %d, val: %d\n", gp.param, *gp.value); - } - return devid; -} - -int -drm_intel_bufmgr_gem_get_devid(drm_intel_bufmgr *bufmgr) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr; - - return bufmgr_gem->pci_device; -} - -/** - * Sets the AUB filename. - * - * This function has to be called before drm_intel_bufmgr_gem_set_aub_dump() - * for it to have any effect. - */ -void -drm_intel_bufmgr_gem_set_aub_filename(drm_intel_bufmgr *bufmgr, - const char *filename) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr; - - free(bufmgr_gem->aub_filename); - if (filename) - bufmgr_gem->aub_filename = strdup(filename); -} - -/** - * Sets up AUB dumping. - * - * This is a trace file format that can be used with the simulator. - * Packets are emitted in a format somewhat like GPU command packets. - * You can set up a GTT and upload your objects into the referenced - * space, then send off batchbuffers and get BMPs out the other end. - */ -void -drm_intel_bufmgr_gem_set_aub_dump(drm_intel_bufmgr *bufmgr, int enable) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr; - int entry = 0x200003; - int i; - int gtt_size = 0x10000; - const char *filename; - - if (!enable) { - if (bufmgr_gem->aub_file) { - fclose(bufmgr_gem->aub_file); - bufmgr_gem->aub_file = NULL; - } - return; - } - - if (geteuid() != getuid()) - return; - - if (bufmgr_gem->aub_filename) - filename = bufmgr_gem->aub_filename; - else - filename = "intel.aub"; - bufmgr_gem->aub_file = fopen(filename, "w+"); - if (!bufmgr_gem->aub_file) - return; - - /* Start allocating objects from just after the GTT. */ - bufmgr_gem->aub_offset = gtt_size; - - /* Start with a (required) version packet. */ - aub_out(bufmgr_gem, CMD_AUB_HEADER | (13 - 2)); - aub_out(bufmgr_gem, - (4 << AUB_HEADER_MAJOR_SHIFT) | - (0 << AUB_HEADER_MINOR_SHIFT)); - for (i = 0; i < 8; i++) { - aub_out(bufmgr_gem, 0); /* app name */ - } - aub_out(bufmgr_gem, 0); /* timestamp */ - aub_out(bufmgr_gem, 0); /* timestamp */ - aub_out(bufmgr_gem, 0); /* comment len */ - - /* Set up the GTT. The max we can handle is 256M */ - aub_out(bufmgr_gem, CMD_AUB_TRACE_HEADER_BLOCK | ((bufmgr_gem->gen >= 8 ? 6 : 5) - 2)); - aub_out(bufmgr_gem, AUB_TRACE_MEMTYPE_NONLOCAL | 0 | AUB_TRACE_OP_DATA_WRITE); - aub_out(bufmgr_gem, 0); /* subtype */ - aub_out(bufmgr_gem, 0); /* offset */ - aub_out(bufmgr_gem, gtt_size); /* size */ - if (bufmgr_gem->gen >= 8) - aub_out(bufmgr_gem, 0); - for (i = 0x000; i < gtt_size; i += 4, entry += 0x1000) { - aub_out(bufmgr_gem, entry); - } -} - -drm_intel_context * -drm_intel_gem_context_create(drm_intel_bufmgr *bufmgr) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr; - struct drm_i915_gem_context_create create; - drm_intel_context *context = NULL; - int ret; - - context = calloc(1, sizeof(*context)); - if (!context) - return NULL; - - VG_CLEAR(create); - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &create); - if (ret != 0) { - DBG("DRM_IOCTL_I915_GEM_CONTEXT_CREATE failed: %s\n", - strerror(errno)); - free(context); - return NULL; - } - - context->ctx_id = create.ctx_id; - context->bufmgr = bufmgr; - - return context; -} - -void -drm_intel_gem_context_destroy(drm_intel_context *ctx) -{ - drm_intel_bufmgr_gem *bufmgr_gem; - struct drm_i915_gem_context_destroy destroy; - int ret; - - if (ctx == NULL) - return; - - VG_CLEAR(destroy); - - bufmgr_gem = (drm_intel_bufmgr_gem *)ctx->bufmgr; - destroy.ctx_id = ctx->ctx_id; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_CONTEXT_DESTROY, - &destroy); - if (ret != 0) - fprintf(stderr, "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY failed: %s\n", - strerror(errno)); - - free(ctx); -} - -int -drm_intel_get_reset_stats(drm_intel_context *ctx, - uint32_t *reset_count, - uint32_t *active, - uint32_t *pending) -{ - drm_intel_bufmgr_gem *bufmgr_gem; - struct drm_i915_reset_stats stats; - int ret; - - if (ctx == NULL) - return -EINVAL; - - memset(&stats, 0, sizeof(stats)); - - bufmgr_gem = (drm_intel_bufmgr_gem *)ctx->bufmgr; - stats.ctx_id = ctx->ctx_id; - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GET_RESET_STATS, - &stats); - if (ret == 0) { - if (reset_count != NULL) - *reset_count = stats.reset_count; - - if (active != NULL) - *active = stats.batch_active; - - if (pending != NULL) - *pending = stats.batch_pending; - } - - return ret; -} - -int -drm_intel_reg_read(drm_intel_bufmgr *bufmgr, - uint32_t offset, - uint64_t *result) -{ - drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr; - struct drm_i915_reg_read reg_read; - int ret; - - VG_CLEAR(reg_read); - reg_read.offset = offset; - - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_REG_READ, ®_read); - - *result = reg_read.val; - return ret; -} - - -/** - * Annotate the given bo for use in aub dumping. - * - * \param annotations is an array of drm_intel_aub_annotation objects - * describing the type of data in various sections of the bo. Each - * element of the array specifies the type and subtype of a section of - * the bo, and the past-the-end offset of that section. The elements - * of \c annotations must be sorted so that ending_offset is - * increasing. - * - * \param count is the number of elements in the \c annotations array. - * If \c count is zero, then \c annotations will not be dereferenced. - * - * Annotations are copied into a private data structure, so caller may - * re-use the memory pointed to by \c annotations after the call - * returns. - * - * Annotations are stored for the lifetime of the bo; to reset to the - * default state (no annotations), call this function with a \c count - * of zero. - */ -void -drm_intel_bufmgr_gem_set_aub_annotations(drm_intel_bo *bo, - drm_intel_aub_annotation *annotations, - unsigned count) -{ - drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; - unsigned size = sizeof(*annotations) * count; - drm_intel_aub_annotation *new_annotations = - count > 0 ? realloc(bo_gem->aub_annotations, size) : NULL; - if (new_annotations == NULL) { - free(bo_gem->aub_annotations); - bo_gem->aub_annotations = NULL; - bo_gem->aub_annotation_count = 0; - return; - } - memcpy(new_annotations, annotations, size); - bo_gem->aub_annotations = new_annotations; - bo_gem->aub_annotation_count = count; -} - /** * Initializes the GEM buffer manager, which uses the kernel to allocate, map, * and manage map buffer objections. @@ -3193,8 +2044,8 @@ drm_intel_bufmgr_gem *bufmgr_gem; struct drm_i915_gem_get_aperture aperture; drm_i915_getparam_t gp; - int ret, tmp; - bool exec2 = false; + int ret; + int exec2 = 0, has_bsd = 0; bufmgr_gem = calloc(1, sizeof(*bufmgr_gem)); if (bufmgr_gem == NULL) @@ -3207,9 +2058,7 @@ return NULL; } - ret = drmIoctl(bufmgr_gem->fd, - DRM_IOCTL_I915_GEM_GET_APERTURE, - &aperture); + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_GET_APERTURE, &aperture); if (ret == 0) bufmgr_gem->gtt_size = aperture.aper_available_size; @@ -3223,79 +2072,37 @@ (int)bufmgr_gem->gtt_size / 1024); } - bufmgr_gem->pci_device = get_pci_device_id(bufmgr_gem); + gp.param = I915_PARAM_CHIPSET_ID; + gp.value = &bufmgr_gem->pci_device; + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); + if (ret) { + fprintf(stderr, "get chip id failed: %d [%d]\n", ret, errno); + fprintf(stderr, "param: %d, val: %d\n", gp.param, *gp.value); + } - if (IS_GEN2(bufmgr_gem->pci_device)) + if (IS_GEN2(bufmgr_gem)) bufmgr_gem->gen = 2; - else if (IS_GEN3(bufmgr_gem->pci_device)) + else if (IS_GEN3(bufmgr_gem)) bufmgr_gem->gen = 3; - else if (IS_GEN4(bufmgr_gem->pci_device)) + else if (IS_GEN4(bufmgr_gem)) bufmgr_gem->gen = 4; - else if (IS_GEN5(bufmgr_gem->pci_device)) - bufmgr_gem->gen = 5; - else if (IS_GEN6(bufmgr_gem->pci_device)) + else bufmgr_gem->gen = 6; - else if (IS_GEN7(bufmgr_gem->pci_device)) - bufmgr_gem->gen = 7; - else if (IS_GEN8(bufmgr_gem->pci_device)) - bufmgr_gem->gen = 8; - else { - free(bufmgr_gem); - return NULL; - } - - if (IS_GEN3(bufmgr_gem->pci_device) && - bufmgr_gem->gtt_size > 256*1024*1024) { - /* The unmappable part of gtt on gen 3 (i.e. above 256MB) can't - * be used for tiled blits. To simplify the accounting, just - * substract the unmappable part (fixed to 256MB on all known - * gen3 devices) if the kernel advertises it. */ - bufmgr_gem->gtt_size -= 256*1024*1024; - } - - VG_CLEAR(gp); - gp.value = &tmp; gp.param = I915_PARAM_HAS_EXECBUF2; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); if (!ret) - exec2 = true; + exec2 = 1; gp.param = I915_PARAM_HAS_BSD; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); - bufmgr_gem->has_bsd = ret == 0; - - gp.param = I915_PARAM_HAS_BLT; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); - bufmgr_gem->has_blt = ret == 0; - - gp.param = I915_PARAM_HAS_RELAXED_FENCING; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); - bufmgr_gem->has_relaxed_fencing = ret == 0; - - gp.param = I915_PARAM_HAS_WAIT_TIMEOUT; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); - bufmgr_gem->has_wait_timeout = ret == 0; - - gp.param = I915_PARAM_HAS_LLC; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); - if (ret != 0) { - /* Kernel does not supports HAS_LLC query, fallback to GPU - * generation detection and assume that we have LLC on GEN6/7 - */ - bufmgr_gem->has_llc = (IS_GEN6(bufmgr_gem->pci_device) | - IS_GEN7(bufmgr_gem->pci_device)); - } else - bufmgr_gem->has_llc = *gp.value; - - gp.param = I915_PARAM_HAS_VEBOX; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); - bufmgr_gem->has_vebox = (ret == 0) & (*gp.value > 0); + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); + if (!ret) + has_bsd = 1; if (bufmgr_gem->gen < 4) { gp.param = I915_PARAM_NUM_FENCES_AVAIL; gp.value = &bufmgr_gem->available_fences; - ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GETPARAM, &gp); if (ret) { fprintf(stderr, "get fences failed: %d [%d]\n", ret, errno); @@ -3347,7 +2154,8 @@ /* Use the new one if available */ if (exec2) { bufmgr_gem->bufmgr.bo_exec = drm_intel_gem_bo_exec2; - bufmgr_gem->bufmgr.bo_mrb_exec = drm_intel_gem_bo_mrb_exec2; + if (has_bsd) + bufmgr_gem->bufmgr.bo_mrb_exec = drm_intel_gem_bo_mrb_exec2; } else bufmgr_gem->bufmgr.bo_exec = drm_intel_gem_bo_exec; bufmgr_gem->bufmgr.bo_busy = drm_intel_gem_bo_busy; @@ -3362,11 +2170,7 @@ drm_intel_gem_get_pipe_from_crtc_id; bufmgr_gem->bufmgr.bo_references = drm_intel_gem_bo_references; - DRMINITLISTHEAD(&bufmgr_gem->named); init_cache_buckets(bufmgr_gem); - DRMINITLISTHEAD(&bufmgr_gem->vma_cache); - bufmgr_gem->vma_max = -1; /* unlimited by default */ - return &bufmgr_gem->bufmgr; } diff -Nru libdrm-2.4.52/intel/intel_bufmgr.h libdrm-2.4.52+really2.4.21/intel/intel_bufmgr.h --- libdrm-2.4.52/intel/intel_bufmgr.h 2014-01-20 18:58:15.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/intel_bufmgr.h 2010-06-07 23:33:16.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright © 2008-2012 Intel Corporation + * Copyright © 2008 Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,14 +34,9 @@ #ifndef INTEL_BUFMGR_H #define INTEL_BUFMGR_H -#include #include -#include - -struct drm_clip_rect; typedef struct _drm_intel_bufmgr drm_intel_bufmgr; -typedef struct _drm_intel_context drm_intel_context; typedef struct _drm_intel_bo drm_intel_bo; struct _drm_intel_bo { @@ -61,8 +56,9 @@ unsigned long align; /** - * Deprecated field containing (possibly the low 32-bits of) the last - * seen virtual card address. Use offset64 instead. + * Last seen card virtual address (offset from the beginning of the + * aperture) for the object. This should be used to fill relocation + * entries when calling drm_intel_bo_emit_reloc() */ unsigned long offset; @@ -70,11 +66,7 @@ * Virtual address for accessing the buffer data. Only valid while * mapped. */ -#ifdef __cplusplus - void *virt; -#else void *virtual; -#endif /** Buffer manager context associated with this buffer object */ drm_intel_bufmgr *bufmgr; @@ -83,28 +75,8 @@ * MM-specific handle for accessing object */ int handle; - - /** - * Last seen card virtual address (offset from the beginning of the - * aperture) for the object. This should be used to fill relocation - * entries when calling drm_intel_bo_emit_reloc() - */ - uint64_t offset64; -}; - -enum aub_dump_bmp_format { - AUB_DUMP_BMP_FORMAT_8BIT = 1, - AUB_DUMP_BMP_FORMAT_ARGB_4444 = 4, - AUB_DUMP_BMP_FORMAT_ARGB_0888 = 6, - AUB_DUMP_BMP_FORMAT_ARGB_8888 = 7, }; -typedef struct _drm_intel_aub_annotation { - uint32_t type; - uint32_t subtype; - uint32_t ending_offset; -} drm_intel_aub_annotation; - #define BO_ALLOC_FOR_RENDER (1<<0) drm_intel_bo *drm_intel_bo_alloc(drm_intel_bufmgr *bufmgr, const char *name, @@ -133,10 +105,10 @@ void drm_intel_bufmgr_set_debug(drm_intel_bufmgr *bufmgr, int enable_debug); void drm_intel_bufmgr_destroy(drm_intel_bufmgr *bufmgr); int drm_intel_bo_exec(drm_intel_bo *bo, int used, - struct drm_clip_rect *cliprects, int num_cliprects, int DR4); + drm_clip_rect_t * cliprects, int num_cliprects, int DR4); int drm_intel_bo_mrb_exec(drm_intel_bo *bo, int used, - struct drm_clip_rect *cliprects, int num_cliprects, int DR4, - unsigned int flags); + drm_clip_rect_t *cliprects, int num_cliprects, int DR4, + int ring_flag); int drm_intel_bufmgr_check_aperture_space(drm_intel_bo ** bo_array, int count); int drm_intel_bo_emit_reloc(drm_intel_bo *bo, uint32_t offset, @@ -167,44 +139,12 @@ unsigned int handle); void drm_intel_bufmgr_gem_enable_reuse(drm_intel_bufmgr *bufmgr); void drm_intel_bufmgr_gem_enable_fenced_relocs(drm_intel_bufmgr *bufmgr); -void drm_intel_bufmgr_gem_set_vma_cache_size(drm_intel_bufmgr *bufmgr, - int limit); -int drm_intel_gem_bo_map_unsynchronized(drm_intel_bo *bo); int drm_intel_gem_bo_map_gtt(drm_intel_bo *bo); int drm_intel_gem_bo_unmap_gtt(drm_intel_bo *bo); - -int drm_intel_gem_bo_get_reloc_count(drm_intel_bo *bo); -void drm_intel_gem_bo_clear_relocs(drm_intel_bo *bo, int start); void drm_intel_gem_bo_start_gtt_access(drm_intel_bo *bo, int write_enable); -void -drm_intel_bufmgr_gem_set_aub_filename(drm_intel_bufmgr *bufmgr, - const char *filename); -void drm_intel_bufmgr_gem_set_aub_dump(drm_intel_bufmgr *bufmgr, int enable); -void drm_intel_gem_bo_aub_dump_bmp(drm_intel_bo *bo, - int x1, int y1, int width, int height, - enum aub_dump_bmp_format format, - int pitch, int offset); -void -drm_intel_bufmgr_gem_set_aub_annotations(drm_intel_bo *bo, - drm_intel_aub_annotation *annotations, - unsigned count); - int drm_intel_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, int crtc_id); -int drm_intel_get_aperture_sizes(int fd, size_t *mappable, size_t *total); -int drm_intel_bufmgr_gem_get_devid(drm_intel_bufmgr *bufmgr); -int drm_intel_gem_bo_wait(drm_intel_bo *bo, int64_t timeout_ns); - -drm_intel_context *drm_intel_gem_context_create(drm_intel_bufmgr *bufmgr); -void drm_intel_gem_context_destroy(drm_intel_context *ctx); -int drm_intel_gem_bo_context_exec(drm_intel_bo *bo, drm_intel_context *ctx, - int used, unsigned int flags); - -int drm_intel_bo_gem_export_to_prime(drm_intel_bo *bo, int *prime_fd); -drm_intel_bo *drm_intel_bo_gem_create_from_prime(drm_intel_bufmgr *bufmgr, - int prime_fd, int size); - /* drm_intel_bufmgr_fake.c */ drm_intel_bufmgr *drm_intel_bufmgr_fake_init(int fd, unsigned long low_offset, @@ -228,7 +168,7 @@ drm_intel_bo *drm_intel_bo_fake_alloc_static(drm_intel_bufmgr *bufmgr, const char *name, unsigned long offset, - unsigned long size, void *virt); + unsigned long size, void *virtual); void drm_intel_bo_fake_disable_backing_store(drm_intel_bo *bo, void (*invalidate_cb) (drm_intel_bo * bo, @@ -238,27 +178,6 @@ void drm_intel_bufmgr_fake_contended_lock_take(drm_intel_bufmgr *bufmgr); void drm_intel_bufmgr_fake_evict_all(drm_intel_bufmgr *bufmgr); -struct drm_intel_decode *drm_intel_decode_context_alloc(uint32_t devid); -void drm_intel_decode_context_free(struct drm_intel_decode *ctx); -void drm_intel_decode_set_batch_pointer(struct drm_intel_decode *ctx, - void *data, uint32_t hw_offset, - int count); -void drm_intel_decode_set_dump_past_end(struct drm_intel_decode *ctx, - int dump_past_end); -void drm_intel_decode_set_head_tail(struct drm_intel_decode *ctx, - uint32_t head, uint32_t tail); -void drm_intel_decode_set_output_file(struct drm_intel_decode *ctx, FILE *out); -void drm_intel_decode(struct drm_intel_decode *ctx); - -int drm_intel_reg_read(drm_intel_bufmgr *bufmgr, - uint32_t offset, - uint64_t *result); - -int drm_intel_get_reset_stats(drm_intel_context *ctx, - uint32_t *reset_count, - uint32_t *active, - uint32_t *pending); - /** @{ Compatibility defines to keep old code building despite the symbol rename * from dri_* to drm_intel_* */ diff -Nru libdrm-2.4.52/intel/intel_bufmgr_priv.h libdrm-2.4.52+really2.4.21/intel/intel_bufmgr_priv.h --- libdrm-2.4.52/intel/intel_bufmgr_priv.h 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/intel_bufmgr_priv.h 2010-06-07 23:33:16.000000000 +0000 @@ -177,8 +177,8 @@ * ring buffer */ int (*bo_mrb_exec) (drm_intel_bo *bo, int used, - drm_clip_rect_t *cliprects, int num_cliprects, - int DR4, unsigned flags); + drm_clip_rect_t *cliprects, int num_cliprects, + int DR4, int ring_flag); /** * Pin a buffer to the aperture and fix the offset until unpinned @@ -280,11 +280,6 @@ int debug; }; -struct _drm_intel_context { - unsigned int ctx_id; - struct _drm_intel_bufmgr *bufmgr; -}; - #define ALIGN(value, alignment) ((value + alignment - 1) & ~(alignment - 1)) #define ROUND_UP_TO(x, y) (((x) + (y) - 1) / (y) * (y)) #define ROUND_UP_TO_MB(x) ROUND_UP_TO((x), 1024*1024) diff -Nru libdrm-2.4.52/intel/intel_chipset.h libdrm-2.4.52+really2.4.21/intel/intel_chipset.h --- libdrm-2.4.52/intel/intel_chipset.h 2013-11-08 04:29:59.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/intel_chipset.h 2010-06-07 01:11:45.000000000 +0000 @@ -28,298 +28,74 @@ #ifndef _INTEL_CHIPSET_H #define _INTEL_CHIPSET_H -#define PCI_CHIP_I810 0x7121 -#define PCI_CHIP_I810_DC100 0x7123 -#define PCI_CHIP_I810_E 0x7125 -#define PCI_CHIP_I815 0x1132 - -#define PCI_CHIP_I830_M 0x3577 -#define PCI_CHIP_845_G 0x2562 -#define PCI_CHIP_I855_GM 0x3582 -#define PCI_CHIP_I865_G 0x2572 - -#define PCI_CHIP_I915_G 0x2582 -#define PCI_CHIP_E7221_G 0x258A -#define PCI_CHIP_I915_GM 0x2592 -#define PCI_CHIP_I945_G 0x2772 -#define PCI_CHIP_I945_GM 0x27A2 -#define PCI_CHIP_I945_GME 0x27AE - -#define PCI_CHIP_Q35_G 0x29B2 -#define PCI_CHIP_G33_G 0x29C2 -#define PCI_CHIP_Q33_G 0x29D2 - -#define PCI_CHIP_IGD_GM 0xA011 -#define PCI_CHIP_IGD_G 0xA001 - -#define IS_IGDGM(devid) ((devid) == PCI_CHIP_IGD_GM) -#define IS_IGDG(devid) ((devid) == PCI_CHIP_IGD_G) -#define IS_IGD(devid) (IS_IGDG(devid) || IS_IGDGM(devid)) - -#define PCI_CHIP_I965_G 0x29A2 -#define PCI_CHIP_I965_Q 0x2992 -#define PCI_CHIP_I965_G_1 0x2982 -#define PCI_CHIP_I946_GZ 0x2972 -#define PCI_CHIP_I965_GM 0x2A02 -#define PCI_CHIP_I965_GME 0x2A12 - -#define PCI_CHIP_GM45_GM 0x2A42 - -#define PCI_CHIP_IGD_E_G 0x2E02 -#define PCI_CHIP_Q45_G 0x2E12 -#define PCI_CHIP_G45_G 0x2E22 -#define PCI_CHIP_G41_G 0x2E32 - -#define PCI_CHIP_ILD_G 0x0042 -#define PCI_CHIP_ILM_G 0x0046 - -#define PCI_CHIP_SANDYBRIDGE_GT1 0x0102 /* desktop */ -#define PCI_CHIP_SANDYBRIDGE_GT2 0x0112 -#define PCI_CHIP_SANDYBRIDGE_GT2_PLUS 0x0122 -#define PCI_CHIP_SANDYBRIDGE_M_GT1 0x0106 /* mobile */ -#define PCI_CHIP_SANDYBRIDGE_M_GT2 0x0116 -#define PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS 0x0126 -#define PCI_CHIP_SANDYBRIDGE_S 0x010A /* server */ - -#define PCI_CHIP_IVYBRIDGE_GT1 0x0152 /* desktop */ -#define PCI_CHIP_IVYBRIDGE_GT2 0x0162 -#define PCI_CHIP_IVYBRIDGE_M_GT1 0x0156 /* mobile */ -#define PCI_CHIP_IVYBRIDGE_M_GT2 0x0166 -#define PCI_CHIP_IVYBRIDGE_S 0x015a /* server */ -#define PCI_CHIP_IVYBRIDGE_S_GT2 0x016a /* server */ - -#define PCI_CHIP_HASWELL_GT1 0x0402 /* Desktop */ -#define PCI_CHIP_HASWELL_GT2 0x0412 -#define PCI_CHIP_HASWELL_GT3 0x0422 -#define PCI_CHIP_HASWELL_M_GT1 0x0406 /* Mobile */ -#define PCI_CHIP_HASWELL_M_GT2 0x0416 -#define PCI_CHIP_HASWELL_M_GT3 0x0426 -#define PCI_CHIP_HASWELL_S_GT1 0x040A /* Server */ -#define PCI_CHIP_HASWELL_S_GT2 0x041A -#define PCI_CHIP_HASWELL_S_GT3 0x042A -#define PCI_CHIP_HASWELL_B_GT1 0x040B /* Reserved */ -#define PCI_CHIP_HASWELL_B_GT2 0x041B -#define PCI_CHIP_HASWELL_B_GT3 0x042B -#define PCI_CHIP_HASWELL_E_GT1 0x040E /* Reserved */ -#define PCI_CHIP_HASWELL_E_GT2 0x041E -#define PCI_CHIP_HASWELL_E_GT3 0x042E -#define PCI_CHIP_HASWELL_SDV_GT1 0x0C02 /* Desktop */ -#define PCI_CHIP_HASWELL_SDV_GT2 0x0C12 -#define PCI_CHIP_HASWELL_SDV_GT3 0x0C22 -#define PCI_CHIP_HASWELL_SDV_M_GT1 0x0C06 /* Mobile */ -#define PCI_CHIP_HASWELL_SDV_M_GT2 0x0C16 -#define PCI_CHIP_HASWELL_SDV_M_GT3 0x0C26 -#define PCI_CHIP_HASWELL_SDV_S_GT1 0x0C0A /* Server */ -#define PCI_CHIP_HASWELL_SDV_S_GT2 0x0C1A -#define PCI_CHIP_HASWELL_SDV_S_GT3 0x0C2A -#define PCI_CHIP_HASWELL_SDV_B_GT1 0x0C0B /* Reserved */ -#define PCI_CHIP_HASWELL_SDV_B_GT2 0x0C1B -#define PCI_CHIP_HASWELL_SDV_B_GT3 0x0C2B -#define PCI_CHIP_HASWELL_SDV_E_GT1 0x0C0E /* Reserved */ -#define PCI_CHIP_HASWELL_SDV_E_GT2 0x0C1E -#define PCI_CHIP_HASWELL_SDV_E_GT3 0x0C2E -#define PCI_CHIP_HASWELL_ULT_GT1 0x0A02 /* Desktop */ -#define PCI_CHIP_HASWELL_ULT_GT2 0x0A12 -#define PCI_CHIP_HASWELL_ULT_GT3 0x0A22 -#define PCI_CHIP_HASWELL_ULT_M_GT1 0x0A06 /* Mobile */ -#define PCI_CHIP_HASWELL_ULT_M_GT2 0x0A16 -#define PCI_CHIP_HASWELL_ULT_M_GT3 0x0A26 -#define PCI_CHIP_HASWELL_ULT_S_GT1 0x0A0A /* Server */ -#define PCI_CHIP_HASWELL_ULT_S_GT2 0x0A1A -#define PCI_CHIP_HASWELL_ULT_S_GT3 0x0A2A -#define PCI_CHIP_HASWELL_ULT_B_GT1 0x0A0B /* Reserved */ -#define PCI_CHIP_HASWELL_ULT_B_GT2 0x0A1B -#define PCI_CHIP_HASWELL_ULT_B_GT3 0x0A2B -#define PCI_CHIP_HASWELL_ULT_E_GT1 0x0A0E /* Reserved */ -#define PCI_CHIP_HASWELL_ULT_E_GT2 0x0A1E -#define PCI_CHIP_HASWELL_ULT_E_GT3 0x0A2E -#define PCI_CHIP_HASWELL_CRW_GT1 0x0D02 /* Desktop */ -#define PCI_CHIP_HASWELL_CRW_GT2 0x0D12 -#define PCI_CHIP_HASWELL_CRW_GT3 0x0D22 -#define PCI_CHIP_HASWELL_CRW_M_GT1 0x0D06 /* Mobile */ -#define PCI_CHIP_HASWELL_CRW_M_GT2 0x0D16 -#define PCI_CHIP_HASWELL_CRW_M_GT3 0x0D26 -#define PCI_CHIP_HASWELL_CRW_S_GT1 0x0D0A /* Server */ -#define PCI_CHIP_HASWELL_CRW_S_GT2 0x0D1A -#define PCI_CHIP_HASWELL_CRW_S_GT3 0x0D2A -#define PCI_CHIP_HASWELL_CRW_B_GT1 0x0D0B /* Reserved */ -#define PCI_CHIP_HASWELL_CRW_B_GT2 0x0D1B -#define PCI_CHIP_HASWELL_CRW_B_GT3 0x0D2B -#define PCI_CHIP_HASWELL_CRW_E_GT1 0x0D0E /* Reserved */ -#define PCI_CHIP_HASWELL_CRW_E_GT2 0x0D1E -#define PCI_CHIP_HASWELL_CRW_E_GT3 0x0D2E -#define BDW_SPARE 0x2 -#define BDW_ULT 0x6 -#define BDW_SERVER 0xa -#define BDW_IRIS 0xb -#define BDW_WORKSTATION 0xd -#define BDW_ULX 0xe - -#define PCI_CHIP_VALLEYVIEW_PO 0x0f30 /* VLV PO board */ -#define PCI_CHIP_VALLEYVIEW_1 0x0f31 -#define PCI_CHIP_VALLEYVIEW_2 0x0f32 -#define PCI_CHIP_VALLEYVIEW_3 0x0f33 - -#define IS_MOBILE(devid) ((devid) == PCI_CHIP_I855_GM || \ - (devid) == PCI_CHIP_I915_GM || \ - (devid) == PCI_CHIP_I945_GM || \ - (devid) == PCI_CHIP_I945_GME || \ - (devid) == PCI_CHIP_I965_GM || \ - (devid) == PCI_CHIP_I965_GME || \ - (devid) == PCI_CHIP_GM45_GM || IS_IGD(devid) || \ - (devid) == PCI_CHIP_IVYBRIDGE_M_GT1 || \ - (devid) == PCI_CHIP_IVYBRIDGE_M_GT2) - -#define IS_G45(devid) ((devid) == PCI_CHIP_IGD_E_G || \ - (devid) == PCI_CHIP_Q45_G || \ - (devid) == PCI_CHIP_G45_G || \ - (devid) == PCI_CHIP_G41_G) -#define IS_GM45(devid) ((devid) == PCI_CHIP_GM45_GM) -#define IS_G4X(devid) (IS_G45(devid) || IS_GM45(devid)) - -#define IS_ILD(devid) ((devid) == PCI_CHIP_ILD_G) -#define IS_ILM(devid) ((devid) == PCI_CHIP_ILM_G) - -#define IS_915(devid) ((devid) == PCI_CHIP_I915_G || \ - (devid) == PCI_CHIP_E7221_G || \ - (devid) == PCI_CHIP_I915_GM) - -#define IS_945GM(devid) ((devid) == PCI_CHIP_I945_GM || \ - (devid) == PCI_CHIP_I945_GME) - -#define IS_945(devid) ((devid) == PCI_CHIP_I945_G || \ - (devid) == PCI_CHIP_I945_GM || \ - (devid) == PCI_CHIP_I945_GME || \ - IS_G33(devid)) - -#define IS_G33(devid) ((devid) == PCI_CHIP_G33_G || \ - (devid) == PCI_CHIP_Q33_G || \ - (devid) == PCI_CHIP_Q35_G || IS_IGD(devid)) - -#define IS_GEN2(devid) ((devid) == PCI_CHIP_I830_M || \ - (devid) == PCI_CHIP_845_G || \ - (devid) == PCI_CHIP_I855_GM || \ - (devid) == PCI_CHIP_I865_G) - -#define IS_GEN3(devid) (IS_945(devid) || IS_915(devid)) - -#define IS_GEN4(devid) ((devid) == PCI_CHIP_I965_G || \ - (devid) == PCI_CHIP_I965_Q || \ - (devid) == PCI_CHIP_I965_G_1 || \ - (devid) == PCI_CHIP_I965_GM || \ - (devid) == PCI_CHIP_I965_GME || \ - (devid) == PCI_CHIP_I946_GZ || \ - IS_G4X(devid)) - -#define IS_GEN5(devid) (IS_ILD(devid) || IS_ILM(devid)) - -#define IS_GEN6(devid) ((devid) == PCI_CHIP_SANDYBRIDGE_GT1 || \ - (devid) == PCI_CHIP_SANDYBRIDGE_GT2 || \ - (devid) == PCI_CHIP_SANDYBRIDGE_GT2_PLUS || \ - (devid) == PCI_CHIP_SANDYBRIDGE_M_GT1 || \ - (devid) == PCI_CHIP_SANDYBRIDGE_M_GT2 || \ - (devid) == PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS || \ - (devid) == PCI_CHIP_SANDYBRIDGE_S) - -#define IS_GEN7(devid) (IS_IVYBRIDGE(devid) || \ - IS_HASWELL(devid) || \ - IS_VALLEYVIEW(devid)) - -#define IS_IVYBRIDGE(devid) ((devid) == PCI_CHIP_IVYBRIDGE_GT1 || \ - (devid) == PCI_CHIP_IVYBRIDGE_GT2 || \ - (devid) == PCI_CHIP_IVYBRIDGE_M_GT1 || \ - (devid) == PCI_CHIP_IVYBRIDGE_M_GT2 || \ - (devid) == PCI_CHIP_IVYBRIDGE_S || \ - (devid) == PCI_CHIP_IVYBRIDGE_S_GT2) - -#define IS_VALLEYVIEW(devid) ((devid) == PCI_CHIP_VALLEYVIEW_PO || \ - (devid) == PCI_CHIP_VALLEYVIEW_1 || \ - (devid) == PCI_CHIP_VALLEYVIEW_2 || \ - (devid) == PCI_CHIP_VALLEYVIEW_3) - -#define IS_HSW_GT1(devid) ((devid) == PCI_CHIP_HASWELL_GT1 || \ - (devid) == PCI_CHIP_HASWELL_M_GT1 || \ - (devid) == PCI_CHIP_HASWELL_S_GT1 || \ - (devid) == PCI_CHIP_HASWELL_B_GT1 || \ - (devid) == PCI_CHIP_HASWELL_E_GT1 || \ - (devid) == PCI_CHIP_HASWELL_SDV_GT1 || \ - (devid) == PCI_CHIP_HASWELL_SDV_M_GT1 || \ - (devid) == PCI_CHIP_HASWELL_SDV_S_GT1 || \ - (devid) == PCI_CHIP_HASWELL_SDV_B_GT1 || \ - (devid) == PCI_CHIP_HASWELL_SDV_E_GT1 || \ - (devid) == PCI_CHIP_HASWELL_ULT_GT1 || \ - (devid) == PCI_CHIP_HASWELL_ULT_M_GT1 || \ - (devid) == PCI_CHIP_HASWELL_ULT_S_GT1 || \ - (devid) == PCI_CHIP_HASWELL_ULT_B_GT1 || \ - (devid) == PCI_CHIP_HASWELL_ULT_E_GT1 || \ - (devid) == PCI_CHIP_HASWELL_CRW_GT1 || \ - (devid) == PCI_CHIP_HASWELL_CRW_M_GT1 || \ - (devid) == PCI_CHIP_HASWELL_CRW_S_GT1 || \ - (devid) == PCI_CHIP_HASWELL_CRW_B_GT1 || \ - (devid) == PCI_CHIP_HASWELL_CRW_E_GT1) -#define IS_HSW_GT2(devid) ((devid) == PCI_CHIP_HASWELL_GT2 || \ - (devid) == PCI_CHIP_HASWELL_M_GT2 || \ - (devid) == PCI_CHIP_HASWELL_S_GT2 || \ - (devid) == PCI_CHIP_HASWELL_B_GT2 || \ - (devid) == PCI_CHIP_HASWELL_E_GT2 || \ - (devid) == PCI_CHIP_HASWELL_SDV_GT2 || \ - (devid) == PCI_CHIP_HASWELL_SDV_M_GT2 || \ - (devid) == PCI_CHIP_HASWELL_SDV_S_GT2 || \ - (devid) == PCI_CHIP_HASWELL_SDV_B_GT2 || \ - (devid) == PCI_CHIP_HASWELL_SDV_E_GT2 || \ - (devid) == PCI_CHIP_HASWELL_ULT_GT2 || \ - (devid) == PCI_CHIP_HASWELL_ULT_M_GT2 || \ - (devid) == PCI_CHIP_HASWELL_ULT_S_GT2 || \ - (devid) == PCI_CHIP_HASWELL_ULT_B_GT2 || \ - (devid) == PCI_CHIP_HASWELL_ULT_E_GT2 || \ - (devid) == PCI_CHIP_HASWELL_CRW_GT2 || \ - (devid) == PCI_CHIP_HASWELL_CRW_M_GT2 || \ - (devid) == PCI_CHIP_HASWELL_CRW_S_GT2 || \ - (devid) == PCI_CHIP_HASWELL_CRW_B_GT2 || \ - (devid) == PCI_CHIP_HASWELL_CRW_E_GT2) -#define IS_HSW_GT3(devid) ((devid) == PCI_CHIP_HASWELL_GT3 || \ - (devid) == PCI_CHIP_HASWELL_M_GT3 || \ - (devid) == PCI_CHIP_HASWELL_S_GT3 || \ - (devid) == PCI_CHIP_HASWELL_B_GT3 || \ - (devid) == PCI_CHIP_HASWELL_E_GT3 || \ - (devid) == PCI_CHIP_HASWELL_SDV_GT3 || \ - (devid) == PCI_CHIP_HASWELL_SDV_M_GT3 || \ - (devid) == PCI_CHIP_HASWELL_SDV_S_GT3 || \ - (devid) == PCI_CHIP_HASWELL_SDV_B_GT3 || \ - (devid) == PCI_CHIP_HASWELL_SDV_E_GT3 || \ - (devid) == PCI_CHIP_HASWELL_ULT_GT3 || \ - (devid) == PCI_CHIP_HASWELL_ULT_M_GT3 || \ - (devid) == PCI_CHIP_HASWELL_ULT_S_GT3 || \ - (devid) == PCI_CHIP_HASWELL_ULT_B_GT3 || \ - (devid) == PCI_CHIP_HASWELL_ULT_E_GT3 || \ - (devid) == PCI_CHIP_HASWELL_CRW_GT3 || \ - (devid) == PCI_CHIP_HASWELL_CRW_M_GT3 || \ - (devid) == PCI_CHIP_HASWELL_CRW_S_GT3 || \ - (devid) == PCI_CHIP_HASWELL_CRW_B_GT3 || \ - (devid) == PCI_CHIP_HASWELL_CRW_E_GT3) - -#define IS_HASWELL(devid) (IS_HSW_GT1(devid) || \ - IS_HSW_GT2(devid) || \ - IS_HSW_GT3(devid)) - -#define IS_BROADWELL(devid) (((devid & 0xff00) != 0x1600) ? 0 : \ - (((devid & 0x00f0) >> 4) > 3) ? 0 : \ - ((devid & 0x000f) == BDW_SPARE) ? 1 : \ - ((devid & 0x000f) == BDW_ULT) ? 1 : \ - ((devid & 0x000f) == BDW_IRIS) ? 1 : \ - ((devid & 0x000f) == BDW_SERVER) ? 1 : \ - ((devid & 0x000f) == BDW_WORKSTATION) ? 1 : \ - ((devid & 0x000f) == BDW_ULX) ? 1 : 0) - - -#define IS_GEN8(devid) IS_BROADWELL(devid) - -#define IS_9XX(dev) (IS_GEN3(dev) || \ - IS_GEN4(dev) || \ - IS_GEN5(dev) || \ - IS_GEN6(dev) || \ - IS_GEN7(dev) || \ - IS_GEN8(dev)) - +#define IS_830(dev) ((dev)->pci_device == 0x3577) +#define IS_845(dev) ((dev)->pci_device == 0x2562) +#define IS_85X(dev) ((dev)->pci_device == 0x3582) +#define IS_865(dev) ((dev)->pci_device == 0x2572) + +#define IS_GEN2(dev) (IS_830(dev) || \ + IS_845(dev) || \ + IS_85X(dev) || \ + IS_865(dev)) + +#define IS_915G(dev) ((dev)->pci_device == 0x2582 || \ + (dev)->pci_device == 0x258a) +#define IS_915GM(dev) ((dev)->pci_device == 0x2592) +#define IS_945G(dev) ((dev)->pci_device == 0x2772) +#define IS_945GM(dev) ((dev)->pci_device == 0x27A2 || \ + (dev)->pci_device == 0x27AE) + +#define IS_915(dev) (IS_915G(dev) || \ + IS_915GM(dev)) + +#define IS_945(dev) (IS_945G(dev) || \ + IS_945GM(dev) || \ + IS_G33(dev) || \ + IS_PINEVIEW(dev)) + +#define IS_G33(dev) ((dev)->pci_device == 0x29C2 || \ + (dev)->pci_device == 0x29B2 || \ + (dev)->pci_device == 0x29D2) + +#define IS_PINEVIEW(dev) ((dev)->pci_device == 0xa001 || \ + (dev)->pci_device == 0xa011) + +#define IS_GEN3(dev) (IS_915(dev) || \ + IS_945(dev) || \ + IS_G33(dev) || \ + IS_PINEVIEW(dev)) + +#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02) + +#define IS_GEN4(dev) ((dev)->pci_device == 0x2972 || \ + (dev)->pci_device == 0x2982 || \ + (dev)->pci_device == 0x2992 || \ + (dev)->pci_device == 0x29A2 || \ + (dev)->pci_device == 0x2A02 || \ + (dev)->pci_device == 0x2A12 || \ + (dev)->pci_device == 0x2A42 || \ + (dev)->pci_device == 0x2E02 || \ + (dev)->pci_device == 0x2E12 || \ + (dev)->pci_device == 0x2E22 || \ + (dev)->pci_device == 0x2E32 || \ + (dev)->pci_device == 0x2E42 || \ + (dev)->pci_device == 0x0042 || \ + (dev)->pci_device == 0x0046 || \ + IS_I965GM(dev) || \ + IS_G4X(dev)) + +#define IS_GM45(dev) ((dev)->pci_device == 0x2A42) + +#define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \ + (dev)->pci_device == 0x2E12 || \ + (dev)->pci_device == 0x2E22 || \ + (dev)->pci_device == 0x2E32 || \ + (dev)->pci_device == 0x2E42 || \ + IS_GM45(dev)) + +#define IS_9XX(dev) (IS_GEN3(dev) || \ + IS_GEN4(dev) || \ + IS_GEN5(dev) || \ + IS_GEN6(dev)) #endif /* _INTEL_CHIPSET_H */ diff -Nru libdrm-2.4.52/intel/intel_debug.h libdrm-2.4.52+really2.4.21/intel/intel_debug.h --- libdrm-2.4.52/intel/intel_debug.h 2011-10-27 20:37:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/intel_debug.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -/* - * Copyright © 2011 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Authors: - * Ben Widawsky - * - */ - -#ifndef INTEL_DEBUG_H -#define INTEL_DEBUG_H - -#include - -#define SHADER_DEBUG_SOCKET "/var/run/gen_debug" -#define DEBUG_HANDSHAKE_VERSION 0x3 -#define DEBUG_HANDSHAKE_ACK "okay" - -/* First byte must always be the 1 byte version */ -struct intel_debug_handshake { - uint32_t version; - int flink_handle; - uint32_t per_thread_scratch; -} __attribute__((packed)); - -#endif diff -Nru libdrm-2.4.52/intel/intel_decode.c libdrm-2.4.52+really2.4.21/intel/intel_decode.c --- libdrm-2.4.52/intel/intel_decode.c 2013-12-29 06:05:28.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/intel_decode.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,3981 +0,0 @@ -/* - * Copyright © 2009-2011 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "intel_chipset.h" -#include "intel_bufmgr.h" - -/* Struct for tracking drm_intel_decode state. */ -struct drm_intel_decode { - /** stdio file where the output should land. Defaults to stdout. */ - FILE *out; - - /** PCI device ID. */ - uint32_t devid; - - /** - * Shorthand device identifier: 3 is 915, 4 is 965, 5 is - * Ironlake, etc. - */ - int gen; - - /** GPU address of the start of the current packet. */ - uint32_t hw_offset; - /** CPU virtual address of the start of the current packet. */ - uint32_t *data; - /** DWORDs of remaining batchbuffer data starting from the packet. */ - uint32_t count; - - /** GPU address of the start of the batchbuffer data. */ - uint32_t base_hw_offset; - /** CPU Virtual address of the start of the batchbuffer data. */ - uint32_t *base_data; - /** Number of DWORDs of batchbuffer data. */ - uint32_t base_count; - - /** @{ - * GPU head and tail pointers, which will be noted in the dump, or ~0. - */ - uint32_t head, tail; - /** @} */ - - /** - * Whether to dump the dwords after MI_BATCHBUFFER_END. - * - * This sometimes provides clues in corrupted batchbuffers, - * and is used by the intel-gpu-tools. - */ - bool dump_past_end; - - bool overflowed; -}; - -static FILE *out; -static uint32_t saved_s2 = 0, saved_s4 = 0; -static char saved_s2_set = 0, saved_s4_set = 0; -static uint32_t head_offset = 0xffffffff; /* undefined */ -static uint32_t tail_offset = 0xffffffff; /* undefined */ - -#ifndef ARRAY_SIZE -#define ARRAY_SIZE(A) (sizeof(A)/sizeof(A[0])) -#endif - -#define BUFFER_FAIL(_count, _len, _name) do { \ - fprintf(out, "Buffer size too small in %s (%d < %d)\n", \ - (_name), (_count), (_len)); \ - return _count; \ -} while (0) - -static float int_as_float(uint32_t intval) -{ - union intfloat { - uint32_t i; - float f; - } uval; - - uval.i = intval; - return uval.f; -} - -static void -instr_out(struct drm_intel_decode *ctx, unsigned int index, - const char *fmt, ...) __attribute__((format(__printf__, 3, 4))); - -static void -instr_out(struct drm_intel_decode *ctx, unsigned int index, - const char *fmt, ...) -{ - va_list va; - const char *parseinfo; - uint32_t offset = ctx->hw_offset + index * 4; - - if (index > ctx->count) { - if (!ctx->overflowed) { - fprintf(out, "ERROR: Decode attempted to continue beyond end of batchbuffer\n"); - ctx->overflowed = true; - } - return; - } - - if (offset == head_offset) - parseinfo = "HEAD"; - else if (offset == tail_offset) - parseinfo = "TAIL"; - else - parseinfo = " "; - - fprintf(out, "0x%08x: %s 0x%08x: %s", offset, parseinfo, - ctx->data[index], index == 0 ? "" : " "); - va_start(va, fmt); - vfprintf(out, fmt, va); - va_end(va); -} - -static int -decode_MI_SET_CONTEXT(struct drm_intel_decode *ctx) -{ - uint32_t data = ctx->data[1]; - if (ctx->gen > 7) - return 1; - - instr_out(ctx, 0, "MI_SET_CONTEXT\n"); - instr_out(ctx, 1, "gtt offset = 0x%x%s%s\n", - data & ~0xfff, - data & (1<<1)? ", Force Restore": "", - data & (1<<0)? ", Restore Inhibit": ""); - - return 2; -} - -static int -decode_MI_WAIT_FOR_EVENT(struct drm_intel_decode *ctx) -{ - const char *cc_wait; - int cc_shift = 0; - uint32_t data = ctx->data[0]; - - if (ctx->gen <= 5) - cc_shift = 9; - else - cc_shift = 16; - - switch ((data >> cc_shift) & 0x1f) { - case 1: - cc_wait = ", cc wait 1"; - break; - case 2: - cc_wait = ", cc wait 2"; - break; - case 3: - cc_wait = ", cc wait 3"; - break; - case 4: - cc_wait = ", cc wait 4"; - break; - case 5: - cc_wait = ", cc wait 4"; - break; - default: - cc_wait = ""; - break; - } - - if (ctx->gen <= 5) { - instr_out(ctx, 0, "MI_WAIT_FOR_EVENT%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n", - data & (1<<18)? ", pipe B start vblank wait": "", - data & (1<<17)? ", pipe A start vblank wait": "", - data & (1<<16)? ", overlay flip pending wait": "", - data & (1<<14)? ", pipe B hblank wait": "", - data & (1<<13)? ", pipe A hblank wait": "", - cc_wait, - data & (1<<8)? ", plane C pending flip wait": "", - data & (1<<7)? ", pipe B vblank wait": "", - data & (1<<6)? ", plane B pending flip wait": "", - data & (1<<5)? ", pipe B scan line wait": "", - data & (1<<4)? ", fbc idle wait": "", - data & (1<<3)? ", pipe A vblank wait": "", - data & (1<<2)? ", plane A pending flip wait": "", - data & (1<<1)? ", plane A scan line wait": ""); - } else { - instr_out(ctx, 0, "MI_WAIT_FOR_EVENT%s%s%s%s%s%s%s%s%s%s%s%s\n", - data & (1<<20)? ", sprite C pending flip wait": "", /* ivb */ - cc_wait, - data & (1<<13)? ", pipe B hblank wait": "", - data & (1<<11)? ", pipe B vblank wait": "", - data & (1<<10)? ", sprite B pending flip wait": "", - data & (1<<9)? ", plane B pending flip wait": "", - data & (1<<8)? ", plane B scan line wait": "", - data & (1<<5)? ", pipe A hblank wait": "", - data & (1<<3)? ", pipe A vblank wait": "", - data & (1<<2)? ", sprite A pending flip wait": "", - data & (1<<1)? ", plane A pending flip wait": "", - data & (1<<0)? ", plane A scan line wait": ""); - } - - return 1; -} - -static int -decode_mi(struct drm_intel_decode *ctx) -{ - unsigned int opcode, len = -1; - const char *post_sync_op = ""; - uint32_t *data = ctx->data; - - struct { - uint32_t opcode; - int len_mask; - unsigned int min_len; - unsigned int max_len; - const char *name; - int (*func)(struct drm_intel_decode *ctx); - } opcodes_mi[] = { - { 0x08, 0, 1, 1, "MI_ARB_ON_OFF" }, - { 0x0a, 0, 1, 1, "MI_BATCH_BUFFER_END" }, - { 0x30, 0x3f, 3, 3, "MI_BATCH_BUFFER" }, - { 0x31, 0x3f, 2, 2, "MI_BATCH_BUFFER_START" }, - { 0x14, 0x3f, 3, 3, "MI_DISPLAY_BUFFER_INFO" }, - { 0x04, 0, 1, 1, "MI_FLUSH" }, - { 0x22, 0x1f, 3, 3, "MI_LOAD_REGISTER_IMM" }, - { 0x13, 0x3f, 2, 2, "MI_LOAD_SCAN_LINES_EXCL" }, - { 0x12, 0x3f, 2, 2, "MI_LOAD_SCAN_LINES_INCL" }, - { 0x00, 0, 1, 1, "MI_NOOP" }, - { 0x11, 0x3f, 2, 2, "MI_OVERLAY_FLIP" }, - { 0x07, 0, 1, 1, "MI_REPORT_HEAD" }, - { 0x18, 0x3f, 2, 2, "MI_SET_CONTEXT", decode_MI_SET_CONTEXT }, - { 0x20, 0x3f, 3, 4, "MI_STORE_DATA_IMM" }, - { 0x21, 0x3f, 3, 4, "MI_STORE_DATA_INDEX" }, - { 0x24, 0x3f, 3, 3, "MI_STORE_REGISTER_MEM" }, - { 0x02, 0, 1, 1, "MI_USER_INTERRUPT" }, - { 0x03, 0, 1, 1, "MI_WAIT_FOR_EVENT", decode_MI_WAIT_FOR_EVENT }, - { 0x16, 0x7f, 3, 3, "MI_SEMAPHORE_MBOX" }, - { 0x26, 0x1f, 3, 4, "MI_FLUSH_DW" }, - { 0x28, 0x3f, 3, 3, "MI_REPORT_PERF_COUNT" }, - { 0x29, 0xff, 3, 3, "MI_LOAD_REGISTER_MEM" }, - { 0x0b, 0, 1, 1, "MI_SUSPEND_FLUSH"}, - }, *opcode_mi = NULL; - - /* check instruction length */ - for (opcode = 0; opcode < sizeof(opcodes_mi) / sizeof(opcodes_mi[0]); - opcode++) { - if ((data[0] & 0x1f800000) >> 23 == opcodes_mi[opcode].opcode) { - len = 1; - if (opcodes_mi[opcode].max_len > 1) { - len = - (data[0] & opcodes_mi[opcode].len_mask) + 2; - if (len < opcodes_mi[opcode].min_len - || len > opcodes_mi[opcode].max_len) { - fprintf(out, - "Bad length (%d) in %s, [%d, %d]\n", - len, opcodes_mi[opcode].name, - opcodes_mi[opcode].min_len, - opcodes_mi[opcode].max_len); - } - } - opcode_mi = &opcodes_mi[opcode]; - break; - } - } - - if (opcode_mi && opcode_mi->func) - return opcode_mi->func(ctx); - - switch ((data[0] & 0x1f800000) >> 23) { - case 0x0a: - instr_out(ctx, 0, "MI_BATCH_BUFFER_END\n"); - return -1; - case 0x16: - instr_out(ctx, 0, "MI_SEMAPHORE_MBOX%s%s%s%s %u\n", - data[0] & (1 << 22) ? " global gtt," : "", - data[0] & (1 << 21) ? " update semaphore," : "", - data[0] & (1 << 20) ? " compare semaphore," : "", - data[0] & (1 << 18) ? " use compare reg" : "", - (data[0] & (0x3 << 16)) >> 16); - instr_out(ctx, 1, "value\n"); - instr_out(ctx, 2, "address\n"); - return len; - case 0x21: - instr_out(ctx, 0, "MI_STORE_DATA_INDEX%s\n", - data[0] & (1 << 21) ? " use per-process HWS," : ""); - instr_out(ctx, 1, "index\n"); - instr_out(ctx, 2, "dword\n"); - if (len == 4) - instr_out(ctx, 3, "upper dword\n"); - return len; - case 0x00: - if (data[0] & (1 << 22)) - instr_out(ctx, 0, - "MI_NOOP write NOPID reg, val=0x%x\n", - data[0] & ((1 << 22) - 1)); - else - instr_out(ctx, 0, "MI_NOOP\n"); - return len; - case 0x26: - switch (data[0] & (0x3 << 14)) { - case (0 << 14): - post_sync_op = "no write"; - break; - case (1 << 14): - post_sync_op = "write data"; - break; - case (2 << 14): - post_sync_op = "reserved"; - break; - case (3 << 14): - post_sync_op = "write TIMESTAMP"; - break; - } - instr_out(ctx, 0, - "MI_FLUSH_DW%s%s%s%s post_sync_op='%s' %s%s\n", - data[0] & (1 << 22) ? - " enable protected mem (BCS-only)," : "", - data[0] & (1 << 21) ? " store in hws," : "", - data[0] & (1 << 18) ? " invalidate tlb," : "", - data[0] & (1 << 17) ? " flush gfdt," : "", - post_sync_op, - data[0] & (1 << 8) ? " enable notify interrupt," : "", - data[0] & (1 << 7) ? - " invalidate video state (BCS-only)," : ""); - if (data[0] & (1 << 21)) - instr_out(ctx, 1, "hws index\n"); - else - instr_out(ctx, 1, "address\n"); - instr_out(ctx, 2, "dword\n"); - if (len == 4) - instr_out(ctx, 3, "upper dword\n"); - return len; - } - - for (opcode = 0; opcode < sizeof(opcodes_mi) / sizeof(opcodes_mi[0]); - opcode++) { - if ((data[0] & 0x1f800000) >> 23 == opcodes_mi[opcode].opcode) { - unsigned int i; - - instr_out(ctx, 0, "%s\n", - opcodes_mi[opcode].name); - for (i = 1; i < len; i++) { - instr_out(ctx, i, "dword %d\n", i); - } - - return len; - } - } - - instr_out(ctx, 0, "MI UNKNOWN\n"); - return 1; -} - -static void -decode_2d_br00(struct drm_intel_decode *ctx, const char *cmd) -{ - instr_out(ctx, 0, - "%s (rgb %sabled, alpha %sabled, src tile %d, dst tile %d)\n", - cmd, - (ctx->data[0] & (1 << 20)) ? "en" : "dis", - (ctx->data[0] & (1 << 21)) ? "en" : "dis", - (ctx->data[0] >> 15) & 1, - (ctx->data[0] >> 11) & 1); -} - -static void -decode_2d_br01(struct drm_intel_decode *ctx) -{ - const char *format; - switch ((ctx->data[1] >> 24) & 0x3) { - case 0: - format = "8"; - break; - case 1: - format = "565"; - break; - case 2: - format = "1555"; - break; - case 3: - format = "8888"; - break; - } - - instr_out(ctx, 1, - "format %s, pitch %d, rop 0x%02x, " - "clipping %sabled, %s%s \n", - format, - (short)(ctx->data[1] & 0xffff), - (ctx->data[1] >> 16) & 0xff, - ctx->data[1] & (1 << 30) ? "en" : "dis", - ctx->data[1] & (1 << 31) ? "solid pattern enabled, " : "", - ctx->data[1] & (1 << 31) ? - "mono pattern transparency enabled, " : ""); - -} - -static int -decode_2d(struct drm_intel_decode *ctx) -{ - unsigned int opcode, len; - uint32_t *data = ctx->data; - - struct { - uint32_t opcode; - unsigned int min_len; - unsigned int max_len; - const char *name; - } opcodes_2d[] = { - { 0x40, 5, 5, "COLOR_BLT" }, - { 0x43, 6, 6, "SRC_COPY_BLT" }, - { 0x01, 8, 8, "XY_SETUP_BLT" }, - { 0x11, 9, 9, "XY_SETUP_MONO_PATTERN_SL_BLT" }, - { 0x03, 3, 3, "XY_SETUP_CLIP_BLT" }, - { 0x24, 2, 2, "XY_PIXEL_BLT" }, - { 0x25, 3, 3, "XY_SCANLINES_BLT" }, - { 0x26, 4, 4, "Y_TEXT_BLT" }, - { 0x31, 5, 134, "XY_TEXT_IMMEDIATE_BLT" }, - { 0x50, 6, 6, "XY_COLOR_BLT" }, - { 0x51, 6, 6, "XY_PAT_BLT" }, - { 0x76, 8, 8, "XY_PAT_CHROMA_BLT" }, - { 0x72, 7, 135, "XY_PAT_BLT_IMMEDIATE" }, - { 0x77, 9, 137, "XY_PAT_CHROMA_BLT_IMMEDIATE" }, - { 0x52, 9, 9, "XY_MONO_PAT_BLT" }, - { 0x59, 7, 7, "XY_MONO_PAT_FIXED_BLT" }, - { 0x53, 8, 8, "XY_SRC_COPY_BLT" }, - { 0x54, 8, 8, "XY_MONO_SRC_COPY_BLT" }, - { 0x71, 9, 137, "XY_MONO_SRC_COPY_IMMEDIATE_BLT" }, - { 0x55, 9, 9, "XY_FULL_BLT" }, - { 0x55, 9, 137, "XY_FULL_IMMEDIATE_PATTERN_BLT" }, - { 0x56, 9, 9, "XY_FULL_MONO_SRC_BLT" }, - { 0x75, 10, 138, "XY_FULL_MONO_SRC_IMMEDIATE_PATTERN_BLT" }, - { 0x57, 12, 12, "XY_FULL_MONO_PATTERN_BLT" }, - { 0x58, 12, 12, "XY_FULL_MONO_PATTERN_MONO_SRC_BLT"}, - }; - - switch ((data[0] & 0x1fc00000) >> 22) { - case 0x25: - instr_out(ctx, 0, - "XY_SCANLINES_BLT (pattern seed (%d, %d), dst tile %d)\n", - (data[0] >> 12) & 0x8, - (data[0] >> 8) & 0x8, (data[0] >> 11) & 1); - - len = (data[0] & 0x000000ff) + 2; - if (len != 3) - fprintf(out, "Bad count in XY_SCANLINES_BLT\n"); - - instr_out(ctx, 1, "dest (%d,%d)\n", - data[1] & 0xffff, data[1] >> 16); - instr_out(ctx, 2, "dest (%d,%d)\n", - data[2] & 0xffff, data[2] >> 16); - return len; - case 0x01: - decode_2d_br00(ctx, "XY_SETUP_BLT"); - - len = (data[0] & 0x000000ff) + 2; - if (len != 8) - fprintf(out, "Bad count in XY_SETUP_BLT\n"); - - decode_2d_br01(ctx); - instr_out(ctx, 2, "cliprect (%d,%d)\n", - data[2] & 0xffff, data[2] >> 16); - instr_out(ctx, 3, "cliprect (%d,%d)\n", - data[3] & 0xffff, data[3] >> 16); - instr_out(ctx, 4, "setup dst offset 0x%08x\n", - data[4]); - instr_out(ctx, 5, "setup background color\n"); - instr_out(ctx, 6, "setup foreground color\n"); - instr_out(ctx, 7, "color pattern offset\n"); - return len; - case 0x03: - decode_2d_br00(ctx, "XY_SETUP_CLIP_BLT"); - - len = (data[0] & 0x000000ff) + 2; - if (len != 3) - fprintf(out, "Bad count in XY_SETUP_CLIP_BLT\n"); - - instr_out(ctx, 1, "cliprect (%d,%d)\n", - data[1] & 0xffff, data[2] >> 16); - instr_out(ctx, 2, "cliprect (%d,%d)\n", - data[2] & 0xffff, data[3] >> 16); - return len; - case 0x11: - decode_2d_br00(ctx, "XY_SETUP_MONO_PATTERN_SL_BLT"); - - len = (data[0] & 0x000000ff) + 2; - if (len != 9) - fprintf(out, - "Bad count in XY_SETUP_MONO_PATTERN_SL_BLT\n"); - - decode_2d_br01(ctx); - instr_out(ctx, 2, "cliprect (%d,%d)\n", - data[2] & 0xffff, data[2] >> 16); - instr_out(ctx, 3, "cliprect (%d,%d)\n", - data[3] & 0xffff, data[3] >> 16); - instr_out(ctx, 4, "setup dst offset 0x%08x\n", - data[4]); - instr_out(ctx, 5, "setup background color\n"); - instr_out(ctx, 6, "setup foreground color\n"); - instr_out(ctx, 7, "mono pattern dw0\n"); - instr_out(ctx, 8, "mono pattern dw1\n"); - return len; - case 0x50: - decode_2d_br00(ctx, "XY_COLOR_BLT"); - - len = (data[0] & 0x000000ff) + 2; - if (len != 6) - fprintf(out, "Bad count in XY_COLOR_BLT\n"); - - decode_2d_br01(ctx); - instr_out(ctx, 2, "(%d,%d)\n", - data[2] & 0xffff, data[2] >> 16); - instr_out(ctx, 3, "(%d,%d)\n", - data[3] & 0xffff, data[3] >> 16); - instr_out(ctx, 4, "offset 0x%08x\n", data[4]); - instr_out(ctx, 5, "color\n"); - return len; - case 0x53: - decode_2d_br00(ctx, "XY_SRC_COPY_BLT"); - - len = (data[0] & 0x000000ff) + 2; - if (len != 8) - fprintf(out, "Bad count in XY_SRC_COPY_BLT\n"); - - decode_2d_br01(ctx); - instr_out(ctx, 2, "dst (%d,%d)\n", - data[2] & 0xffff, data[2] >> 16); - instr_out(ctx, 3, "dst (%d,%d)\n", - data[3] & 0xffff, data[3] >> 16); - instr_out(ctx, 4, "dst offset 0x%08x\n", data[4]); - instr_out(ctx, 5, "src (%d,%d)\n", - data[5] & 0xffff, data[5] >> 16); - instr_out(ctx, 6, "src pitch %d\n", - (short)(data[6] & 0xffff)); - instr_out(ctx, 7, "src offset 0x%08x\n", data[7]); - return len; - } - - for (opcode = 0; opcode < sizeof(opcodes_2d) / sizeof(opcodes_2d[0]); - opcode++) { - if ((data[0] & 0x1fc00000) >> 22 == opcodes_2d[opcode].opcode) { - unsigned int i; - - len = 1; - instr_out(ctx, 0, "%s\n", - opcodes_2d[opcode].name); - if (opcodes_2d[opcode].max_len > 1) { - len = (data[0] & 0x000000ff) + 2; - if (len < opcodes_2d[opcode].min_len || - len > opcodes_2d[opcode].max_len) { - fprintf(out, "Bad count in %s\n", - opcodes_2d[opcode].name); - } - } - - for (i = 1; i < len; i++) { - instr_out(ctx, i, "dword %d\n", i); - } - - return len; - } - } - - instr_out(ctx, 0, "2D UNKNOWN\n"); - return 1; -} - -static int -decode_3d_1c(struct drm_intel_decode *ctx) -{ - uint32_t *data = ctx->data; - uint32_t opcode; - - opcode = (data[0] & 0x00f80000) >> 19; - - switch (opcode) { - case 0x11: - instr_out(ctx, 0, - "3DSTATE_DEPTH_SUBRECTANGLE_DISABLE\n"); - return 1; - case 0x10: - instr_out(ctx, 0, "3DSTATE_SCISSOR_ENABLE %s\n", - data[0] & 1 ? "enabled" : "disabled"); - return 1; - case 0x01: - instr_out(ctx, 0, "3DSTATE_MAP_COORD_SET_I830\n"); - return 1; - case 0x0a: - instr_out(ctx, 0, "3DSTATE_MAP_CUBE_I830\n"); - return 1; - case 0x05: - instr_out(ctx, 0, "3DSTATE_MAP_TEX_STREAM_I830\n"); - return 1; - } - - instr_out(ctx, 0, "3D UNKNOWN: 3d_1c opcode = 0x%x\n", - opcode); - return 1; -} - -/** Sets the string dstname to describe the destination of the PS instruction */ -static void -i915_get_instruction_dst(uint32_t *data, int i, char *dstname, int do_mask) -{ - uint32_t a0 = data[i]; - int dst_nr = (a0 >> 14) & 0xf; - char dstmask[8]; - const char *sat; - - if (do_mask) { - if (((a0 >> 10) & 0xf) == 0xf) { - dstmask[0] = 0; - } else { - int dstmask_index = 0; - - dstmask[dstmask_index++] = '.'; - if (a0 & (1 << 10)) - dstmask[dstmask_index++] = 'x'; - if (a0 & (1 << 11)) - dstmask[dstmask_index++] = 'y'; - if (a0 & (1 << 12)) - dstmask[dstmask_index++] = 'z'; - if (a0 & (1 << 13)) - dstmask[dstmask_index++] = 'w'; - dstmask[dstmask_index++] = 0; - } - - if (a0 & (1 << 22)) - sat = ".sat"; - else - sat = ""; - } else { - dstmask[0] = 0; - sat = ""; - } - - switch ((a0 >> 19) & 0x7) { - case 0: - if (dst_nr > 15) - fprintf(out, "bad destination reg R%d\n", dst_nr); - sprintf(dstname, "R%d%s%s", dst_nr, dstmask, sat); - break; - case 4: - if (dst_nr > 0) - fprintf(out, "bad destination reg oC%d\n", dst_nr); - sprintf(dstname, "oC%s%s", dstmask, sat); - break; - case 5: - if (dst_nr > 0) - fprintf(out, "bad destination reg oD%d\n", dst_nr); - sprintf(dstname, "oD%s%s", dstmask, sat); - break; - case 6: - if (dst_nr > 3) - fprintf(out, "bad destination reg U%d\n", dst_nr); - sprintf(dstname, "U%d%s%s", dst_nr, dstmask, sat); - break; - default: - sprintf(dstname, "RESERVED"); - break; - } -} - -static const char * -i915_get_channel_swizzle(uint32_t select) -{ - switch (select & 0x7) { - case 0: - return (select & 8) ? "-x" : "x"; - case 1: - return (select & 8) ? "-y" : "y"; - case 2: - return (select & 8) ? "-z" : "z"; - case 3: - return (select & 8) ? "-w" : "w"; - case 4: - return (select & 8) ? "-0" : "0"; - case 5: - return (select & 8) ? "-1" : "1"; - default: - return (select & 8) ? "-bad" : "bad"; - } -} - -static void -i915_get_instruction_src_name(uint32_t src_type, uint32_t src_nr, char *name) -{ - switch (src_type) { - case 0: - sprintf(name, "R%d", src_nr); - if (src_nr > 15) - fprintf(out, "bad src reg %s\n", name); - break; - case 1: - if (src_nr < 8) - sprintf(name, "T%d", src_nr); - else if (src_nr == 8) - sprintf(name, "DIFFUSE"); - else if (src_nr == 9) - sprintf(name, "SPECULAR"); - else if (src_nr == 10) - sprintf(name, "FOG"); - else { - fprintf(out, "bad src reg T%d\n", src_nr); - sprintf(name, "RESERVED"); - } - break; - case 2: - sprintf(name, "C%d", src_nr); - if (src_nr > 31) - fprintf(out, "bad src reg %s\n", name); - break; - case 4: - sprintf(name, "oC"); - if (src_nr > 0) - fprintf(out, "bad src reg oC%d\n", src_nr); - break; - case 5: - sprintf(name, "oD"); - if (src_nr > 0) - fprintf(out, "bad src reg oD%d\n", src_nr); - break; - case 6: - sprintf(name, "U%d", src_nr); - if (src_nr > 3) - fprintf(out, "bad src reg %s\n", name); - break; - default: - fprintf(out, "bad src reg type %d\n", src_type); - sprintf(name, "RESERVED"); - break; - } -} - -static void i915_get_instruction_src0(uint32_t *data, int i, char *srcname) -{ - uint32_t a0 = data[i]; - uint32_t a1 = data[i + 1]; - int src_nr = (a0 >> 2) & 0x1f; - const char *swizzle_x = i915_get_channel_swizzle((a1 >> 28) & 0xf); - const char *swizzle_y = i915_get_channel_swizzle((a1 >> 24) & 0xf); - const char *swizzle_z = i915_get_channel_swizzle((a1 >> 20) & 0xf); - const char *swizzle_w = i915_get_channel_swizzle((a1 >> 16) & 0xf); - char swizzle[100]; - - i915_get_instruction_src_name((a0 >> 7) & 0x7, src_nr, srcname); - sprintf(swizzle, ".%s%s%s%s", swizzle_x, swizzle_y, swizzle_z, - swizzle_w); - if (strcmp(swizzle, ".xyzw") != 0) - strcat(srcname, swizzle); -} - -static void i915_get_instruction_src1(uint32_t *data, int i, char *srcname) -{ - uint32_t a1 = data[i + 1]; - uint32_t a2 = data[i + 2]; - int src_nr = (a1 >> 8) & 0x1f; - const char *swizzle_x = i915_get_channel_swizzle((a1 >> 4) & 0xf); - const char *swizzle_y = i915_get_channel_swizzle((a1 >> 0) & 0xf); - const char *swizzle_z = i915_get_channel_swizzle((a2 >> 28) & 0xf); - const char *swizzle_w = i915_get_channel_swizzle((a2 >> 24) & 0xf); - char swizzle[100]; - - i915_get_instruction_src_name((a1 >> 13) & 0x7, src_nr, srcname); - sprintf(swizzle, ".%s%s%s%s", swizzle_x, swizzle_y, swizzle_z, - swizzle_w); - if (strcmp(swizzle, ".xyzw") != 0) - strcat(srcname, swizzle); -} - -static void i915_get_instruction_src2(uint32_t *data, int i, char *srcname) -{ - uint32_t a2 = data[i + 2]; - int src_nr = (a2 >> 16) & 0x1f; - const char *swizzle_x = i915_get_channel_swizzle((a2 >> 12) & 0xf); - const char *swizzle_y = i915_get_channel_swizzle((a2 >> 8) & 0xf); - const char *swizzle_z = i915_get_channel_swizzle((a2 >> 4) & 0xf); - const char *swizzle_w = i915_get_channel_swizzle((a2 >> 0) & 0xf); - char swizzle[100]; - - i915_get_instruction_src_name((a2 >> 21) & 0x7, src_nr, srcname); - sprintf(swizzle, ".%s%s%s%s", swizzle_x, swizzle_y, swizzle_z, - swizzle_w); - if (strcmp(swizzle, ".xyzw") != 0) - strcat(srcname, swizzle); -} - -static void -i915_get_instruction_addr(uint32_t src_type, uint32_t src_nr, char *name) -{ - switch (src_type) { - case 0: - sprintf(name, "R%d", src_nr); - if (src_nr > 15) - fprintf(out, "bad src reg %s\n", name); - break; - case 1: - if (src_nr < 8) - sprintf(name, "T%d", src_nr); - else if (src_nr == 8) - sprintf(name, "DIFFUSE"); - else if (src_nr == 9) - sprintf(name, "SPECULAR"); - else if (src_nr == 10) - sprintf(name, "FOG"); - else { - fprintf(out, "bad src reg T%d\n", src_nr); - sprintf(name, "RESERVED"); - } - break; - case 4: - sprintf(name, "oC"); - if (src_nr > 0) - fprintf(out, "bad src reg oC%d\n", src_nr); - break; - case 5: - sprintf(name, "oD"); - if (src_nr > 0) - fprintf(out, "bad src reg oD%d\n", src_nr); - break; - default: - fprintf(out, "bad src reg type %d\n", src_type); - sprintf(name, "RESERVED"); - break; - } -} - -static void -i915_decode_alu1(struct drm_intel_decode *ctx, - int i, char *instr_prefix, const char *op_name) -{ - char dst[100], src0[100]; - - i915_get_instruction_dst(ctx->data, i, dst, 1); - i915_get_instruction_src0(ctx->data, i, src0); - - instr_out(ctx, i++, "%s: %s %s, %s\n", instr_prefix, - op_name, dst, src0); - instr_out(ctx, i++, "%s\n", instr_prefix); - instr_out(ctx, i++, "%s\n", instr_prefix); -} - -static void -i915_decode_alu2(struct drm_intel_decode *ctx, - int i, char *instr_prefix, const char *op_name) -{ - char dst[100], src0[100], src1[100]; - - i915_get_instruction_dst(ctx->data, i, dst, 1); - i915_get_instruction_src0(ctx->data, i, src0); - i915_get_instruction_src1(ctx->data, i, src1); - - instr_out(ctx, i++, "%s: %s %s, %s, %s\n", instr_prefix, - op_name, dst, src0, src1); - instr_out(ctx, i++, "%s\n", instr_prefix); - instr_out(ctx, i++, "%s\n", instr_prefix); -} - -static void -i915_decode_alu3(struct drm_intel_decode *ctx, - int i, char *instr_prefix, const char *op_name) -{ - char dst[100], src0[100], src1[100], src2[100]; - - i915_get_instruction_dst(ctx->data, i, dst, 1); - i915_get_instruction_src0(ctx->data, i, src0); - i915_get_instruction_src1(ctx->data, i, src1); - i915_get_instruction_src2(ctx->data, i, src2); - - instr_out(ctx, i++, "%s: %s %s, %s, %s, %s\n", instr_prefix, - op_name, dst, src0, src1, src2); - instr_out(ctx, i++, "%s\n", instr_prefix); - instr_out(ctx, i++, "%s\n", instr_prefix); -} - -static void -i915_decode_tex(struct drm_intel_decode *ctx, int i, - const char *instr_prefix, const char *tex_name) -{ - uint32_t t0 = ctx->data[i]; - uint32_t t1 = ctx->data[i + 1]; - char dst_name[100]; - char addr_name[100]; - int sampler_nr; - - i915_get_instruction_dst(ctx->data, i, dst_name, 0); - i915_get_instruction_addr((t1 >> 24) & 0x7, - (t1 >> 17) & 0xf, addr_name); - sampler_nr = t0 & 0xf; - - instr_out(ctx, i++, "%s: %s %s, S%d, %s\n", instr_prefix, - tex_name, dst_name, sampler_nr, addr_name); - instr_out(ctx, i++, "%s\n", instr_prefix); - instr_out(ctx, i++, "%s\n", instr_prefix); -} - -static void -i915_decode_dcl(struct drm_intel_decode *ctx, int i, char *instr_prefix) -{ - uint32_t d0 = ctx->data[i]; - const char *sampletype; - int dcl_nr = (d0 >> 14) & 0xf; - const char *dcl_x = d0 & (1 << 10) ? "x" : ""; - const char *dcl_y = d0 & (1 << 11) ? "y" : ""; - const char *dcl_z = d0 & (1 << 12) ? "z" : ""; - const char *dcl_w = d0 & (1 << 13) ? "w" : ""; - char dcl_mask[10]; - - switch ((d0 >> 19) & 0x3) { - case 1: - sprintf(dcl_mask, ".%s%s%s%s", dcl_x, dcl_y, dcl_z, dcl_w); - if (strcmp(dcl_mask, ".") == 0) - fprintf(out, "bad (empty) dcl mask\n"); - - if (dcl_nr > 10) - fprintf(out, "bad T%d dcl register number\n", dcl_nr); - if (dcl_nr < 8) { - if (strcmp(dcl_mask, ".x") != 0 && - strcmp(dcl_mask, ".xy") != 0 && - strcmp(dcl_mask, ".xz") != 0 && - strcmp(dcl_mask, ".w") != 0 && - strcmp(dcl_mask, ".xyzw") != 0) { - fprintf(out, "bad T%d.%s dcl mask\n", dcl_nr, - dcl_mask); - } - instr_out(ctx, i++, "%s: DCL T%d%s\n", - instr_prefix, dcl_nr, dcl_mask); - } else { - if (strcmp(dcl_mask, ".xz") == 0) - fprintf(out, "errataed bad dcl mask %s\n", - dcl_mask); - else if (strcmp(dcl_mask, ".xw") == 0) - fprintf(out, "errataed bad dcl mask %s\n", - dcl_mask); - else if (strcmp(dcl_mask, ".xzw") == 0) - fprintf(out, "errataed bad dcl mask %s\n", - dcl_mask); - - if (dcl_nr == 8) { - instr_out(ctx, i++, - "%s: DCL DIFFUSE%s\n", instr_prefix, - dcl_mask); - } else if (dcl_nr == 9) { - instr_out(ctx, i++, - "%s: DCL SPECULAR%s\n", instr_prefix, - dcl_mask); - } else if (dcl_nr == 10) { - instr_out(ctx, i++, - "%s: DCL FOG%s\n", instr_prefix, - dcl_mask); - } - } - instr_out(ctx, i++, "%s\n", instr_prefix); - instr_out(ctx, i++, "%s\n", instr_prefix); - break; - case 3: - switch ((d0 >> 22) & 0x3) { - case 0: - sampletype = "2D"; - break; - case 1: - sampletype = "CUBE"; - break; - case 2: - sampletype = "3D"; - break; - default: - sampletype = "RESERVED"; - break; - } - if (dcl_nr > 15) - fprintf(out, "bad S%d dcl register number\n", dcl_nr); - instr_out(ctx, i++, "%s: DCL S%d %s\n", - instr_prefix, dcl_nr, sampletype); - instr_out(ctx, i++, "%s\n", instr_prefix); - instr_out(ctx, i++, "%s\n", instr_prefix); - break; - default: - instr_out(ctx, i++, "%s: DCL RESERVED%d\n", - instr_prefix, dcl_nr); - instr_out(ctx, i++, "%s\n", instr_prefix); - instr_out(ctx, i++, "%s\n", instr_prefix); - } -} - -static void -i915_decode_instruction(struct drm_intel_decode *ctx, - int i, char *instr_prefix) -{ - switch ((ctx->data[i] >> 24) & 0x1f) { - case 0x0: - instr_out(ctx, i++, "%s: NOP\n", instr_prefix); - instr_out(ctx, i++, "%s\n", instr_prefix); - instr_out(ctx, i++, "%s\n", instr_prefix); - break; - case 0x01: - i915_decode_alu2(ctx, i, instr_prefix, "ADD"); - break; - case 0x02: - i915_decode_alu1(ctx, i, instr_prefix, "MOV"); - break; - case 0x03: - i915_decode_alu2(ctx, i, instr_prefix, "MUL"); - break; - case 0x04: - i915_decode_alu3(ctx, i, instr_prefix, "MAD"); - break; - case 0x05: - i915_decode_alu3(ctx, i, instr_prefix, "DP2ADD"); - break; - case 0x06: - i915_decode_alu2(ctx, i, instr_prefix, "DP3"); - break; - case 0x07: - i915_decode_alu2(ctx, i, instr_prefix, "DP4"); - break; - case 0x08: - i915_decode_alu1(ctx, i, instr_prefix, "FRC"); - break; - case 0x09: - i915_decode_alu1(ctx, i, instr_prefix, "RCP"); - break; - case 0x0a: - i915_decode_alu1(ctx, i, instr_prefix, "RSQ"); - break; - case 0x0b: - i915_decode_alu1(ctx, i, instr_prefix, "EXP"); - break; - case 0x0c: - i915_decode_alu1(ctx, i, instr_prefix, "LOG"); - break; - case 0x0d: - i915_decode_alu2(ctx, i, instr_prefix, "CMP"); - break; - case 0x0e: - i915_decode_alu2(ctx, i, instr_prefix, "MIN"); - break; - case 0x0f: - i915_decode_alu2(ctx, i, instr_prefix, "MAX"); - break; - case 0x10: - i915_decode_alu1(ctx, i, instr_prefix, "FLR"); - break; - case 0x11: - i915_decode_alu1(ctx, i, instr_prefix, "MOD"); - break; - case 0x12: - i915_decode_alu1(ctx, i, instr_prefix, "TRC"); - break; - case 0x13: - i915_decode_alu2(ctx, i, instr_prefix, "SGE"); - break; - case 0x14: - i915_decode_alu2(ctx, i, instr_prefix, "SLT"); - break; - case 0x15: - i915_decode_tex(ctx, i, instr_prefix, "TEXLD"); - break; - case 0x16: - i915_decode_tex(ctx, i, instr_prefix, "TEXLDP"); - break; - case 0x17: - i915_decode_tex(ctx, i, instr_prefix, "TEXLDB"); - break; - case 0x19: - i915_decode_dcl(ctx, i, instr_prefix); - break; - default: - instr_out(ctx, i++, "%s: unknown\n", instr_prefix); - instr_out(ctx, i++, "%s\n", instr_prefix); - instr_out(ctx, i++, "%s\n", instr_prefix); - break; - } -} - -static const char * -decode_compare_func(uint32_t op) -{ - switch (op & 0x7) { - case 0: - return "always"; - case 1: - return "never"; - case 2: - return "less"; - case 3: - return "equal"; - case 4: - return "lequal"; - case 5: - return "greater"; - case 6: - return "notequal"; - case 7: - return "gequal"; - } - return ""; -} - -static const char * -decode_stencil_op(uint32_t op) -{ - switch (op & 0x7) { - case 0: - return "keep"; - case 1: - return "zero"; - case 2: - return "replace"; - case 3: - return "incr_sat"; - case 4: - return "decr_sat"; - case 5: - return "greater"; - case 6: - return "incr"; - case 7: - return "decr"; - } - return ""; -} - -#if 0 -static const char * -decode_logic_op(uint32_t op) -{ - switch (op & 0xf) { - case 0: - return "clear"; - case 1: - return "nor"; - case 2: - return "and_inv"; - case 3: - return "copy_inv"; - case 4: - return "and_rvrse"; - case 5: - return "inv"; - case 6: - return "xor"; - case 7: - return "nand"; - case 8: - return "and"; - case 9: - return "equiv"; - case 10: - return "noop"; - case 11: - return "or_inv"; - case 12: - return "copy"; - case 13: - return "or_rvrse"; - case 14: - return "or"; - case 15: - return "set"; - } - return ""; -} -#endif - -static const char * -decode_blend_fact(uint32_t op) -{ - switch (op & 0xf) { - case 1: - return "zero"; - case 2: - return "one"; - case 3: - return "src_colr"; - case 4: - return "inv_src_colr"; - case 5: - return "src_alpha"; - case 6: - return "inv_src_alpha"; - case 7: - return "dst_alpha"; - case 8: - return "inv_dst_alpha"; - case 9: - return "dst_colr"; - case 10: - return "inv_dst_colr"; - case 11: - return "src_alpha_sat"; - case 12: - return "cnst_colr"; - case 13: - return "inv_cnst_colr"; - case 14: - return "cnst_alpha"; - case 15: - return "inv_const_alpha"; - } - return ""; -} - -static const char * -decode_tex_coord_mode(uint32_t mode) -{ - switch (mode & 0x7) { - case 0: - return "wrap"; - case 1: - return "mirror"; - case 2: - return "clamp_edge"; - case 3: - return "cube"; - case 4: - return "clamp_border"; - case 5: - return "mirror_once"; - } - return ""; -} - -static const char * -decode_sample_filter(uint32_t mode) -{ - switch (mode & 0x7) { - case 0: - return "nearest"; - case 1: - return "linear"; - case 2: - return "anisotropic"; - case 3: - return "4x4_1"; - case 4: - return "4x4_2"; - case 5: - return "4x4_flat"; - case 6: - return "6x5_mono"; - } - return ""; -} - -static int -decode_3d_1d(struct drm_intel_decode *ctx) -{ - unsigned int len, i, c, idx, word, map, sampler, instr; - const char *format, *zformat, *type; - uint32_t opcode; - uint32_t *data = ctx->data; - uint32_t devid = ctx->devid; - - struct { - uint32_t opcode; - int i830_only; - unsigned int min_len; - unsigned int max_len; - const char *name; - } opcodes_3d_1d[] = { - { 0x86, 0, 4, 4, "3DSTATE_CHROMA_KEY" }, - { 0x88, 0, 2, 2, "3DSTATE_CONSTANT_BLEND_COLOR" }, - { 0x99, 0, 2, 2, "3DSTATE_DEFAULT_DIFFUSE" }, - { 0x9a, 0, 2, 2, "3DSTATE_DEFAULT_SPECULAR" }, - { 0x98, 0, 2, 2, "3DSTATE_DEFAULT_Z" }, - { 0x97, 0, 2, 2, "3DSTATE_DEPTH_OFFSET_SCALE" }, - { 0x9d, 0, 65, 65, "3DSTATE_FILTER_COEFFICIENTS_4X4" }, - { 0x9e, 0, 4, 4, "3DSTATE_MONO_FILTER" }, - { 0x89, 0, 4, 4, "3DSTATE_FOG_MODE" }, - { 0x8f, 0, 2, 16, "3DSTATE_MAP_PALLETE_LOAD_32" }, - { 0x83, 0, 2, 2, "3DSTATE_SPAN_STIPPLE" }, - { 0x8c, 1, 2, 2, "3DSTATE_MAP_COORD_TRANSFORM_I830" }, - { 0x8b, 1, 2, 2, "3DSTATE_MAP_VERTEX_TRANSFORM_I830" }, - { 0x8d, 1, 3, 3, "3DSTATE_W_STATE_I830" }, - { 0x01, 1, 2, 2, "3DSTATE_COLOR_FACTOR_I830" }, - { 0x02, 1, 2, 2, "3DSTATE_MAP_COORD_SETBIND_I830"}, - }, *opcode_3d_1d; - - opcode = (data[0] & 0x00ff0000) >> 16; - - switch (opcode) { - case 0x07: - /* This instruction is unusual. A 0 length means just - * 1 DWORD instead of 2. The 0 length is specified in - * one place to be unsupported, but stated to be - * required in another, and 0 length LOAD_INDIRECTs - * appear to cause no harm at least. - */ - instr_out(ctx, 0, "3DSTATE_LOAD_INDIRECT\n"); - len = (data[0] & 0x000000ff) + 1; - i = 1; - if (data[0] & (0x01 << 8)) { - instr_out(ctx, i++, "SIS.0\n"); - instr_out(ctx, i++, "SIS.1\n"); - } - if (data[0] & (0x02 << 8)) { - instr_out(ctx, i++, "DIS.0\n"); - } - if (data[0] & (0x04 << 8)) { - instr_out(ctx, i++, "SSB.0\n"); - instr_out(ctx, i++, "SSB.1\n"); - } - if (data[0] & (0x08 << 8)) { - instr_out(ctx, i++, "MSB.0\n"); - instr_out(ctx, i++, "MSB.1\n"); - } - if (data[0] & (0x10 << 8)) { - instr_out(ctx, i++, "PSP.0\n"); - instr_out(ctx, i++, "PSP.1\n"); - } - if (data[0] & (0x20 << 8)) { - instr_out(ctx, i++, "PSC.0\n"); - instr_out(ctx, i++, "PSC.1\n"); - } - if (len != i) { - fprintf(out, "Bad count in 3DSTATE_LOAD_INDIRECT\n"); - return len; - } - return len; - case 0x04: - instr_out(ctx, 0, - "3DSTATE_LOAD_STATE_IMMEDIATE_1\n"); - len = (data[0] & 0x0000000f) + 2; - i = 1; - for (word = 0; word <= 8; word++) { - if (data[0] & (1 << (4 + word))) { - /* save vertex state for decode */ - if (!IS_GEN2(devid)) { - int tex_num; - - if (word == 2) { - saved_s2_set = 1; - saved_s2 = data[i]; - } - if (word == 4) { - saved_s4_set = 1; - saved_s4 = data[i]; - } - - switch (word) { - case 0: - instr_out(ctx, i, - "S0: vbo offset: 0x%08x%s\n", - data[i] & (~1), - data[i] & 1 ? - ", auto cache invalidate disabled" - : ""); - break; - case 1: - instr_out(ctx, i, - "S1: vertex width: %i, vertex pitch: %i\n", - (data[i] >> 24) & - 0x3f, - (data[i] >> 16) & - 0x3f); - break; - case 2: - instr_out(ctx, i, - "S2: texcoord formats: "); - for (tex_num = 0; - tex_num < 8; tex_num++) { - switch ((data[i] >> - tex_num * - 4) & 0xf) { - case 0: - fprintf(out, - "%i=2D ", - tex_num); - break; - case 1: - fprintf(out, - "%i=3D ", - tex_num); - break; - case 2: - fprintf(out, - "%i=4D ", - tex_num); - break; - case 3: - fprintf(out, - "%i=1D ", - tex_num); - break; - case 4: - fprintf(out, - "%i=2D_16 ", - tex_num); - break; - case 5: - fprintf(out, - "%i=4D_16 ", - tex_num); - break; - case 0xf: - fprintf(out, - "%i=NP ", - tex_num); - break; - } - } - fprintf(out, "\n"); - - break; - case 3: - instr_out(ctx, i, - "S3: not documented\n"); - break; - case 4: - { - const char *cullmode = ""; - const char *vfmt_xyzw = ""; - switch ((data[i] >> 13) - & 0x3) { - case 0: - cullmode = - "both"; - break; - case 1: - cullmode = - "none"; - break; - case 2: - cullmode = "cw"; - break; - case 3: - cullmode = - "ccw"; - break; - } - switch (data[i] & - (7 << 6 | 1 << - 2)) { - case 1 << 6: - vfmt_xyzw = - "XYZ,"; - break; - case 2 << 6: - vfmt_xyzw = - "XYZW,"; - break; - case 3 << 6: - vfmt_xyzw = - "XY,"; - break; - case 4 << 6: - vfmt_xyzw = - "XYW,"; - break; - case 1 << 6 | 1 << 2: - vfmt_xyzw = - "XYZF,"; - break; - case 2 << 6 | 1 << 2: - vfmt_xyzw = - "XYZWF,"; - break; - case 3 << 6 | 1 << 2: - vfmt_xyzw = - "XYF,"; - break; - case 4 << 6 | 1 << 2: - vfmt_xyzw = - "XYWF,"; - break; - } - instr_out(ctx, i, - "S4: point_width=%i, line_width=%.1f," - "%s%s%s%s%s cullmode=%s, vfmt=%s%s%s%s%s%s " - "%s%s%s%s%s\n", - (data[i] >> - 23) & 0x1ff, - ((data[i] >> - 19) & 0xf) / - 2.0, - data[i] & (0xf - << - 15) - ? - " flatshade=" - : "", - data[i] & (1 - << - 18) - ? "Alpha," : - "", - data[i] & (1 - << - 17) - ? "Fog," : "", - data[i] & (1 - << - 16) - ? "Specular," - : "", - data[i] & (1 - << - 15) - ? "Color," : - "", cullmode, - data[i] & (1 - << - 12) - ? - "PointWidth," - : "", - data[i] & (1 - << - 11) - ? "SpecFog," : - "", - data[i] & (1 - << - 10) - ? "Color," : - "", - data[i] & (1 - << - 9) - ? "DepthOfs," - : "", - vfmt_xyzw, - data[i] & (1 - << - 9) - ? "FogParam," - : "", - data[i] & (1 - << - 5) - ? - "force default diffuse, " - : "", - data[i] & (1 - << - 4) - ? - "force default specular, " - : "", - data[i] & (1 - << - 3) - ? - "local depth ofs enable, " - : "", - data[i] & (1 - << - 1) - ? - "point sprite enable, " - : "", - data[i] & (1 - << - 0) - ? - "line AA enable, " - : ""); - break; - } - case 5: - { - instr_out(ctx, i, - "S5:%s%s%s%s%s" - "%s%s%s%s stencil_ref=0x%x, stencil_test=%s, " - "stencil_fail=%s, stencil_pass_z_fail=%s, " - "stencil_pass_z_pass=%s, %s%s%s%s\n", - data[i] & (0xf - << - 28) - ? - " write_disable=" - : "", - data[i] & (1 - << - 31) - ? "Alpha," : - "", - data[i] & (1 - << - 30) - ? "Red," : "", - data[i] & (1 - << - 29) - ? "Green," : - "", - data[i] & (1 - << - 28) - ? "Blue," : - "", - data[i] & (1 - << - 27) - ? - " force default point size," - : "", - data[i] & (1 - << - 26) - ? - " last pixel enable," - : "", - data[i] & (1 - << - 25) - ? - " global depth ofs enable," - : "", - data[i] & (1 - << - 24) - ? - " fog enable," - : "", - (data[i] >> - 16) & 0xff, - decode_compare_func - (data[i] >> - 13), - decode_stencil_op - (data[i] >> - 10), - decode_stencil_op - (data[i] >> - 7), - decode_stencil_op - (data[i] >> - 4), - data[i] & (1 - << - 3) - ? - "stencil write enable, " - : "", - data[i] & (1 - << - 2) - ? - "stencil test enable, " - : "", - data[i] & (1 - << - 1) - ? - "color dither enable, " - : "", - data[i] & (1 - << - 0) - ? - "logicop enable, " - : ""); - } - break; - case 6: - instr_out(ctx, i, - "S6: %salpha_test=%s, alpha_ref=0x%x, " - "depth_test=%s, %ssrc_blnd_fct=%s, dst_blnd_fct=%s, " - "%s%stristrip_provoking_vertex=%i\n", - data[i] & (1 << 31) ? - "alpha test enable, " - : "", - decode_compare_func - (data[i] >> 28), - data[i] & (0xff << - 20), - decode_compare_func - (data[i] >> 16), - data[i] & (1 << 15) ? - "cbuf blend enable, " - : "", - decode_blend_fact(data - [i] - >> - 8), - decode_blend_fact(data - [i] - >> - 4), - data[i] & (1 << 3) ? - "depth write enable, " - : "", - data[i] & (1 << 2) ? - "cbuf write enable, " - : "", - data[i] & (0x3)); - break; - case 7: - instr_out(ctx, i, - "S7: depth offset constant: 0x%08x\n", - data[i]); - break; - } - } else { - instr_out(ctx, i, - "S%d: 0x%08x\n", word, data[i]); - } - i++; - } - } - if (len != i) { - fprintf(out, - "Bad count in 3DSTATE_LOAD_STATE_IMMEDIATE_1\n"); - } - return len; - case 0x03: - instr_out(ctx, 0, - "3DSTATE_LOAD_STATE_IMMEDIATE_2\n"); - len = (data[0] & 0x0000000f) + 2; - i = 1; - for (word = 6; word <= 14; word++) { - if (data[0] & (1 << word)) { - if (word == 6) - instr_out(ctx, i++, - "TBCF\n"); - else if (word >= 7 && word <= 10) { - instr_out(ctx, i++, - "TB%dC\n", word - 7); - instr_out(ctx, i++, - "TB%dA\n", word - 7); - } else if (word >= 11 && word <= 14) { - instr_out(ctx, i, - "TM%dS0: offset=0x%08x, %s\n", - word - 11, - data[i] & 0xfffffffe, - data[i] & 1 ? "use fence" : - ""); - i++; - instr_out(ctx, i, - "TM%dS1: height=%i, width=%i, %s\n", - word - 11, data[i] >> 21, - (data[i] >> 10) & 0x3ff, - data[i] & 2 ? (data[i] & 1 ? - "y-tiled" : - "x-tiled") : - ""); - i++; - instr_out(ctx, i, - "TM%dS2: pitch=%i, \n", - word - 11, - ((data[i] >> 21) + 1) * 4); - i++; - instr_out(ctx, i++, - "TM%dS3\n", word - 11); - instr_out(ctx, i++, - "TM%dS4: dflt color\n", - word - 11); - } - } - } - if (len != i) { - fprintf(out, - "Bad count in 3DSTATE_LOAD_STATE_IMMEDIATE_2\n"); - } - return len; - case 0x00: - instr_out(ctx, 0, "3DSTATE_MAP_STATE\n"); - len = (data[0] & 0x0000003f) + 2; - instr_out(ctx, 1, "mask\n"); - - i = 2; - for (map = 0; map <= 15; map++) { - if (data[1] & (1 << map)) { - int width, height, pitch, dword; - const char *tiling; - - dword = data[i]; - instr_out(ctx, i++, - "map %d MS2 %s%s%s\n", map, - dword & (1 << 31) ? - "untrusted surface, " : "", - dword & (1 << 1) ? - "vertical line stride enable, " : "", - dword & (1 << 0) ? - "vertical ofs enable, " : ""); - - dword = data[i]; - width = ((dword >> 10) & ((1 << 11) - 1)) + 1; - height = ((dword >> 21) & ((1 << 11) - 1)) + 1; - - tiling = "none"; - if (dword & (1 << 2)) - tiling = "fenced"; - else if (dword & (1 << 1)) - tiling = dword & (1 << 0) ? "Y" : "X"; - type = " BAD"; - format = "BAD"; - switch ((dword >> 7) & 0x7) { - case 1: - type = "8b"; - switch ((dword >> 3) & 0xf) { - case 0: - format = "I"; - break; - case 1: - format = "L"; - break; - case 4: - format = "A"; - break; - case 5: - format = " mono"; - break; - } - break; - case 2: - type = "16b"; - switch ((dword >> 3) & 0xf) { - case 0: - format = " rgb565"; - break; - case 1: - format = " argb1555"; - break; - case 2: - format = " argb4444"; - break; - case 5: - format = " ay88"; - break; - case 6: - format = " bump655"; - break; - case 7: - format = "I"; - break; - case 8: - format = "L"; - break; - case 9: - format = "A"; - break; - } - break; - case 3: - type = "32b"; - switch ((dword >> 3) & 0xf) { - case 0: - format = " argb8888"; - break; - case 1: - format = " abgr8888"; - break; - case 2: - format = " xrgb8888"; - break; - case 3: - format = " xbgr8888"; - break; - case 4: - format = " qwvu8888"; - break; - case 5: - format = " axvu8888"; - break; - case 6: - format = " lxvu8888"; - break; - case 7: - format = " xlvu8888"; - break; - case 8: - format = " argb2101010"; - break; - case 9: - format = " abgr2101010"; - break; - case 10: - format = " awvu2101010"; - break; - case 11: - format = " gr1616"; - break; - case 12: - format = " vu1616"; - break; - case 13: - format = " xI824"; - break; - case 14: - format = " xA824"; - break; - case 15: - format = " xL824"; - break; - } - break; - case 5: - type = "422"; - switch ((dword >> 3) & 0xf) { - case 0: - format = " yuv_swapy"; - break; - case 1: - format = " yuv"; - break; - case 2: - format = " yuv_swapuv"; - break; - case 3: - format = " yuv_swapuvy"; - break; - } - break; - case 6: - type = "compressed"; - switch ((dword >> 3) & 0x7) { - case 0: - format = " dxt1"; - break; - case 1: - format = " dxt2_3"; - break; - case 2: - format = " dxt4_5"; - break; - case 3: - format = " fxt1"; - break; - case 4: - format = " dxt1_rb"; - break; - } - break; - case 7: - type = "4b indexed"; - switch ((dword >> 3) & 0xf) { - case 7: - format = " argb8888"; - break; - } - break; - } - dword = data[i]; - instr_out(ctx, i++, - "map %d MS3 [width=%d, height=%d, format=%s%s, tiling=%s%s]\n", - map, width, height, type, format, - tiling, - dword & (1 << 9) ? " palette select" : - ""); - - dword = data[i]; - pitch = - 4 * (((dword >> 21) & ((1 << 11) - 1)) + 1); - instr_out(ctx, i++, - "map %d MS4 [pitch=%d, max_lod=%i, vol_depth=%i, cube_face_ena=%x, %s]\n", - map, pitch, (dword >> 9) & 0x3f, - dword & 0xff, (dword >> 15) & 0x3f, - dword & (1 << 8) ? "miplayout legacy" - : "miplayout right"); - } - } - if (len != i) { - fprintf(out, "Bad count in 3DSTATE_MAP_STATE\n"); - return len; - } - return len; - case 0x06: - instr_out(ctx, 0, - "3DSTATE_PIXEL_SHADER_CONSTANTS\n"); - len = (data[0] & 0x000000ff) + 2; - - i = 2; - for (c = 0; c <= 31; c++) { - if (data[1] & (1 << c)) { - instr_out(ctx, i, "C%d.X = %f\n", c, - int_as_float(data[i])); - i++; - instr_out(ctx, i, "C%d.Y = %f\n", - c, int_as_float(data[i])); - i++; - instr_out(ctx, i, "C%d.Z = %f\n", - c, int_as_float(data[i])); - i++; - instr_out(ctx, i, "C%d.W = %f\n", - c, int_as_float(data[i])); - i++; - } - } - if (len != i) { - fprintf(out, - "Bad count in 3DSTATE_PIXEL_SHADER_CONSTANTS\n"); - } - return len; - case 0x05: - instr_out(ctx, 0, "3DSTATE_PIXEL_SHADER_PROGRAM\n"); - len = (data[0] & 0x000000ff) + 2; - if ((len - 1) % 3 != 0 || len > 370) { - fprintf(out, - "Bad count in 3DSTATE_PIXEL_SHADER_PROGRAM\n"); - } - i = 1; - for (instr = 0; instr < (len - 1) / 3; instr++) { - char instr_prefix[10]; - - sprintf(instr_prefix, "PS%03d", instr); - i915_decode_instruction(ctx, i, - instr_prefix); - i += 3; - } - return len; - case 0x01: - if (IS_GEN2(devid)) - break; - instr_out(ctx, 0, "3DSTATE_SAMPLER_STATE\n"); - instr_out(ctx, 1, "mask\n"); - len = (data[0] & 0x0000003f) + 2; - i = 2; - for (sampler = 0; sampler <= 15; sampler++) { - if (data[1] & (1 << sampler)) { - uint32_t dword; - const char *mip_filter = ""; - - dword = data[i]; - switch ((dword >> 20) & 0x3) { - case 0: - mip_filter = "none"; - break; - case 1: - mip_filter = "nearest"; - break; - case 3: - mip_filter = "linear"; - break; - } - instr_out(ctx, i++, - "sampler %d SS2:%s%s%s " - "base_mip_level=%i, mip_filter=%s, mag_filter=%s, min_filter=%s " - "lod_bias=%.2f,%s max_aniso=%i, shadow_func=%s\n", - sampler, - dword & (1 << 31) ? " reverse gamma," - : "", - dword & (1 << 30) ? " packed2planar," - : "", - dword & (1 << 29) ? - " colorspace conversion," : "", - (dword >> 22) & 0x1f, mip_filter, - decode_sample_filter(dword >> 17), - decode_sample_filter(dword >> 14), - ((dword >> 5) & 0x1ff) / (0x10 * 1.0), - dword & (1 << 4) ? " shadow," : "", - dword & (1 << 3) ? 4 : 2, - decode_compare_func(dword)); - dword = data[i]; - instr_out(ctx, i++, - "sampler %d SS3: min_lod=%.2f,%s " - "tcmode_x=%s, tcmode_y=%s, tcmode_z=%s,%s texmap_idx=%i,%s\n", - sampler, - ((dword >> 24) & 0xff) / (0x10 * 1.0), - dword & (1 << 17) ? - " kill pixel enable," : "", - decode_tex_coord_mode(dword >> 12), - decode_tex_coord_mode(dword >> 9), - decode_tex_coord_mode(dword >> 6), - dword & (1 << 5) ? - " normalized coords," : "", - (dword >> 1) & 0xf, - dword & (1 << 0) ? " deinterlacer," : - ""); - dword = data[i]; - instr_out(ctx, i++, - "sampler %d SS4: border color\n", - sampler); - } - } - if (len != i) { - fprintf(out, "Bad count in 3DSTATE_SAMPLER_STATE\n"); - } - return len; - case 0x85: - len = (data[0] & 0x0000000f) + 2; - - if (len != 2) - fprintf(out, - "Bad count in 3DSTATE_DEST_BUFFER_VARIABLES\n"); - - instr_out(ctx, 0, - "3DSTATE_DEST_BUFFER_VARIABLES\n"); - - switch ((data[1] >> 8) & 0xf) { - case 0x0: - format = "g8"; - break; - case 0x1: - format = "x1r5g5b5"; - break; - case 0x2: - format = "r5g6b5"; - break; - case 0x3: - format = "a8r8g8b8"; - break; - case 0x4: - format = "ycrcb_swapy"; - break; - case 0x5: - format = "ycrcb_normal"; - break; - case 0x6: - format = "ycrcb_swapuv"; - break; - case 0x7: - format = "ycrcb_swapuvy"; - break; - case 0x8: - format = "a4r4g4b4"; - break; - case 0x9: - format = "a1r5g5b5"; - break; - case 0xa: - format = "a2r10g10b10"; - break; - default: - format = "BAD"; - break; - } - switch ((data[1] >> 2) & 0x3) { - case 0x0: - zformat = "u16"; - break; - case 0x1: - zformat = "f16"; - break; - case 0x2: - zformat = "u24x8"; - break; - default: - zformat = "BAD"; - break; - } - instr_out(ctx, 1, - "%s format, %s depth format, early Z %sabled\n", - format, zformat, - (data[1] & (1 << 31)) ? "en" : "dis"); - return len; - - case 0x8e: - { - const char *name, *tiling; - - len = (data[0] & 0x0000000f) + 2; - if (len != 3) - fprintf(out, - "Bad count in 3DSTATE_BUFFER_INFO\n"); - - switch ((data[1] >> 24) & 0x7) { - case 0x3: - name = "color"; - break; - case 0x7: - name = "depth"; - break; - default: - name = "unknown"; - break; - } - - tiling = "none"; - if (data[1] & (1 << 23)) - tiling = "fenced"; - else if (data[1] & (1 << 22)) - tiling = data[1] & (1 << 21) ? "Y" : "X"; - - instr_out(ctx, 0, "3DSTATE_BUFFER_INFO\n"); - instr_out(ctx, 1, - "%s, tiling = %s, pitch=%d\n", name, tiling, - data[1] & 0xffff); - - instr_out(ctx, 2, "address\n"); - return len; - } - case 0x81: - len = (data[0] & 0x0000000f) + 2; - - if (len != 3) - fprintf(out, - "Bad count in 3DSTATE_SCISSOR_RECTANGLE\n"); - - instr_out(ctx, 0, "3DSTATE_SCISSOR_RECTANGLE\n"); - instr_out(ctx, 1, "(%d,%d)\n", - data[1] & 0xffff, data[1] >> 16); - instr_out(ctx, 2, "(%d,%d)\n", - data[2] & 0xffff, data[2] >> 16); - - return len; - case 0x80: - len = (data[0] & 0x0000000f) + 2; - - if (len != 5) - fprintf(out, - "Bad count in 3DSTATE_DRAWING_RECTANGLE\n"); - - instr_out(ctx, 0, "3DSTATE_DRAWING_RECTANGLE\n"); - instr_out(ctx, 1, "%s\n", - data[1] & (1 << 30) ? "depth ofs disabled " : ""); - instr_out(ctx, 2, "(%d,%d)\n", - data[2] & 0xffff, data[2] >> 16); - instr_out(ctx, 3, "(%d,%d)\n", - data[3] & 0xffff, data[3] >> 16); - instr_out(ctx, 4, "(%d,%d)\n", - data[4] & 0xffff, data[4] >> 16); - - return len; - case 0x9c: - len = (data[0] & 0x0000000f) + 2; - - if (len != 7) - fprintf(out, "Bad count in 3DSTATE_CLEAR_PARAMETERS\n"); - - instr_out(ctx, 0, "3DSTATE_CLEAR_PARAMETERS\n"); - instr_out(ctx, 1, "prim_type=%s, clear=%s%s%s\n", - data[1] & (1 << 16) ? "CLEAR_RECT" : "ZONE_INIT", - data[1] & (1 << 2) ? "color," : "", - data[1] & (1 << 1) ? "depth," : "", - data[1] & (1 << 0) ? "stencil," : ""); - instr_out(ctx, 2, "clear color\n"); - instr_out(ctx, 3, "clear depth/stencil\n"); - instr_out(ctx, 4, "color value (rgba8888)\n"); - instr_out(ctx, 5, "depth value %f\n", - int_as_float(data[5])); - instr_out(ctx, 6, "clear stencil\n"); - return len; - } - - for (idx = 0; idx < ARRAY_SIZE(opcodes_3d_1d); idx++) { - opcode_3d_1d = &opcodes_3d_1d[idx]; - if (opcode_3d_1d->i830_only && !IS_GEN2(devid)) - continue; - - if (((data[0] & 0x00ff0000) >> 16) == opcode_3d_1d->opcode) { - len = 1; - - instr_out(ctx, 0, "%s\n", - opcode_3d_1d->name); - if (opcode_3d_1d->max_len > 1) { - len = (data[0] & 0x0000ffff) + 2; - if (len < opcode_3d_1d->min_len || - len > opcode_3d_1d->max_len) { - fprintf(out, "Bad count in %s\n", - opcode_3d_1d->name); - } - } - - for (i = 1; i < len; i++) { - instr_out(ctx, i, "dword %d\n", i); - } - - return len; - } - } - - instr_out(ctx, 0, "3D UNKNOWN: 3d_1d opcode = 0x%x\n", - opcode); - return 1; -} - -static int -decode_3d_primitive(struct drm_intel_decode *ctx) -{ - uint32_t *data = ctx->data; - uint32_t count = ctx->count; - char immediate = (data[0] & (1 << 23)) == 0; - unsigned int len, i, j, ret; - const char *primtype; - int original_s2 = saved_s2; - int original_s4 = saved_s4; - - switch ((data[0] >> 18) & 0xf) { - case 0x0: - primtype = "TRILIST"; - break; - case 0x1: - primtype = "TRISTRIP"; - break; - case 0x2: - primtype = "TRISTRIP_REVERSE"; - break; - case 0x3: - primtype = "TRIFAN"; - break; - case 0x4: - primtype = "POLYGON"; - break; - case 0x5: - primtype = "LINELIST"; - break; - case 0x6: - primtype = "LINESTRIP"; - break; - case 0x7: - primtype = "RECTLIST"; - break; - case 0x8: - primtype = "POINTLIST"; - break; - case 0x9: - primtype = "DIB"; - break; - case 0xa: - primtype = "CLEAR_RECT"; - saved_s4 = 3 << 6; - saved_s2 = ~0; - break; - default: - primtype = "unknown"; - break; - } - - /* XXX: 3DPRIM_DIB not supported */ - if (immediate) { - len = (data[0] & 0x0003ffff) + 2; - instr_out(ctx, 0, "3DPRIMITIVE inline %s\n", - primtype); - if (count < len) - BUFFER_FAIL(count, len, "3DPRIMITIVE inline"); - if (!saved_s2_set || !saved_s4_set) { - fprintf(out, "unknown vertex format\n"); - for (i = 1; i < len; i++) { - instr_out(ctx, i, - " vertex data (%f float)\n", - int_as_float(data[i])); - } - } else { - unsigned int vertex = 0; - for (i = 1; i < len;) { - unsigned int tc; - -#define VERTEX_OUT(fmt, ...) do { \ - if (i < len) \ - instr_out(ctx, i, " V%d."fmt"\n", vertex, __VA_ARGS__); \ - else \ - fprintf(out, " missing data in V%d\n", vertex); \ - i++; \ -} while (0) - - VERTEX_OUT("X = %f", int_as_float(data[i])); - VERTEX_OUT("Y = %f", int_as_float(data[i])); - switch (saved_s4 >> 6 & 0x7) { - case 0x1: - VERTEX_OUT("Z = %f", - int_as_float(data[i])); - break; - case 0x2: - VERTEX_OUT("Z = %f", - int_as_float(data[i])); - VERTEX_OUT("W = %f", - int_as_float(data[i])); - break; - case 0x3: - break; - case 0x4: - VERTEX_OUT("W = %f", - int_as_float(data[i])); - break; - default: - fprintf(out, "bad S4 position mask\n"); - } - - if (saved_s4 & (1 << 10)) { - VERTEX_OUT - ("color = (A=0x%02x, R=0x%02x, G=0x%02x, " - "B=0x%02x)", data[i] >> 24, - (data[i] >> 16) & 0xff, - (data[i] >> 8) & 0xff, - data[i] & 0xff); - } - if (saved_s4 & (1 << 11)) { - VERTEX_OUT - ("spec = (A=0x%02x, R=0x%02x, G=0x%02x, " - "B=0x%02x)", data[i] >> 24, - (data[i] >> 16) & 0xff, - (data[i] >> 8) & 0xff, - data[i] & 0xff); - } - if (saved_s4 & (1 << 12)) - VERTEX_OUT("width = 0x%08x)", data[i]); - - for (tc = 0; tc <= 7; tc++) { - switch ((saved_s2 >> (tc * 4)) & 0xf) { - case 0x0: - VERTEX_OUT("T%d.X = %f", tc, - int_as_float(data - [i])); - VERTEX_OUT("T%d.Y = %f", tc, - int_as_float(data - [i])); - break; - case 0x1: - VERTEX_OUT("T%d.X = %f", tc, - int_as_float(data - [i])); - VERTEX_OUT("T%d.Y = %f", tc, - int_as_float(data - [i])); - VERTEX_OUT("T%d.Z = %f", tc, - int_as_float(data - [i])); - break; - case 0x2: - VERTEX_OUT("T%d.X = %f", tc, - int_as_float(data - [i])); - VERTEX_OUT("T%d.Y = %f", tc, - int_as_float(data - [i])); - VERTEX_OUT("T%d.Z = %f", tc, - int_as_float(data - [i])); - VERTEX_OUT("T%d.W = %f", tc, - int_as_float(data - [i])); - break; - case 0x3: - VERTEX_OUT("T%d.X = %f", tc, - int_as_float(data - [i])); - break; - case 0x4: - VERTEX_OUT - ("T%d.XY = 0x%08x half-float", - tc, data[i]); - break; - case 0x5: - VERTEX_OUT - ("T%d.XY = 0x%08x half-float", - tc, data[i]); - VERTEX_OUT - ("T%d.ZW = 0x%08x half-float", - tc, data[i]); - break; - case 0xf: - break; - default: - fprintf(out, - "bad S2.T%d format\n", - tc); - } - } - vertex++; - } - } - - ret = len; - } else { - /* indirect vertices */ - len = data[0] & 0x0000ffff; /* index count */ - if (data[0] & (1 << 17)) { - /* random vertex access */ - if (count < (len + 1) / 2 + 1) { - BUFFER_FAIL(count, (len + 1) / 2 + 1, - "3DPRIMITIVE random indirect"); - } - instr_out(ctx, 0, - "3DPRIMITIVE random indirect %s (%d)\n", - primtype, len); - if (len == 0) { - /* vertex indices continue until 0xffff is - * found - */ - for (i = 1; i < count; i++) { - if ((data[i] & 0xffff) == 0xffff) { - instr_out(ctx, i, - " indices: (terminator)\n"); - ret = i; - goto out; - } else if ((data[i] >> 16) == 0xffff) { - instr_out(ctx, i, - " indices: 0x%04x, (terminator)\n", - data[i] & 0xffff); - ret = i; - goto out; - } else { - instr_out(ctx, i, - " indices: 0x%04x, 0x%04x\n", - data[i] & 0xffff, - data[i] >> 16); - } - } - fprintf(out, - "3DPRIMITIVE: no terminator found in index buffer\n"); - ret = count; - goto out; - } else { - /* fixed size vertex index buffer */ - for (j = 1, i = 0; i < len; i += 2, j++) { - if (i * 2 == len - 1) { - instr_out(ctx, j, - " indices: 0x%04x\n", - data[j] & 0xffff); - } else { - instr_out(ctx, j, - " indices: 0x%04x, 0x%04x\n", - data[j] & 0xffff, - data[j] >> 16); - } - } - } - ret = (len + 1) / 2 + 1; - goto out; - } else { - /* sequential vertex access */ - instr_out(ctx, 0, - "3DPRIMITIVE sequential indirect %s, %d starting from " - "%d\n", primtype, len, data[1] & 0xffff); - instr_out(ctx, 1, " start\n"); - ret = 2; - goto out; - } - } - -out: - saved_s2 = original_s2; - saved_s4 = original_s4; - return ret; -} - -static int -decode_3d(struct drm_intel_decode *ctx) -{ - uint32_t opcode; - unsigned int idx; - uint32_t *data = ctx->data; - - struct { - uint32_t opcode; - unsigned int min_len; - unsigned int max_len; - const char *name; - } opcodes_3d[] = { - { 0x06, 1, 1, "3DSTATE_ANTI_ALIASING" }, - { 0x08, 1, 1, "3DSTATE_BACKFACE_STENCIL_OPS" }, - { 0x09, 1, 1, "3DSTATE_BACKFACE_STENCIL_MASKS" }, - { 0x16, 1, 1, "3DSTATE_COORD_SET_BINDINGS" }, - { 0x15, 1, 1, "3DSTATE_FOG_COLOR" }, - { 0x0b, 1, 1, "3DSTATE_INDEPENDENT_ALPHA_BLEND" }, - { 0x0d, 1, 1, "3DSTATE_MODES_4" }, - { 0x0c, 1, 1, "3DSTATE_MODES_5" }, - { 0x07, 1, 1, "3DSTATE_RASTERIZATION_RULES"}, - }, *opcode_3d; - - opcode = (data[0] & 0x1f000000) >> 24; - - switch (opcode) { - case 0x1f: - return decode_3d_primitive(ctx); - case 0x1d: - return decode_3d_1d(ctx); - case 0x1c: - return decode_3d_1c(ctx); - } - - for (idx = 0; idx < ARRAY_SIZE(opcodes_3d); idx++) { - opcode_3d = &opcodes_3d[idx]; - if (opcode == opcode_3d->opcode) { - unsigned int len = 1, i; - - instr_out(ctx, 0, "%s\n", opcode_3d->name); - if (opcode_3d->max_len > 1) { - len = (data[0] & 0xff) + 2; - if (len < opcode_3d->min_len || - len > opcode_3d->max_len) { - fprintf(out, "Bad count in %s\n", - opcode_3d->name); - } - } - - for (i = 1; i < len; i++) { - instr_out(ctx, i, "dword %d\n", i); - } - return len; - } - } - - instr_out(ctx, 0, "3D UNKNOWN: 3d opcode = 0x%x\n", opcode); - return 1; -} - -static const char *get_965_surfacetype(unsigned int surfacetype) -{ - switch (surfacetype) { - case 0: - return "1D"; - case 1: - return "2D"; - case 2: - return "3D"; - case 3: - return "CUBE"; - case 4: - return "BUFFER"; - case 7: - return "NULL"; - default: - return "unknown"; - } -} - -static const char *get_965_depthformat(unsigned int depthformat) -{ - switch (depthformat) { - case 0: - return "s8_z24float"; - case 1: - return "z32float"; - case 2: - return "z24s8"; - case 5: - return "z16"; - default: - return "unknown"; - } -} - -static const char *get_965_element_component(uint32_t data, int component) -{ - uint32_t component_control = (data >> (16 + (3 - component) * 4)) & 0x7; - - switch (component_control) { - case 0: - return "nostore"; - case 1: - switch (component) { - case 0: - return "X"; - case 1: - return "Y"; - case 2: - return "Z"; - case 3: - return "W"; - default: - return "fail"; - } - case 2: - return "0.0"; - case 3: - return "1.0"; - case 4: - return "0x1"; - case 5: - return "VID"; - default: - return "fail"; - } -} - -static const char *get_965_prim_type(uint32_t primtype) -{ - switch (primtype) { - case 0x01: - return "point list"; - case 0x02: - return "line list"; - case 0x03: - return "line strip"; - case 0x04: - return "tri list"; - case 0x05: - return "tri strip"; - case 0x06: - return "tri fan"; - case 0x07: - return "quad list"; - case 0x08: - return "quad strip"; - case 0x09: - return "line list adj"; - case 0x0a: - return "line strip adj"; - case 0x0b: - return "tri list adj"; - case 0x0c: - return "tri strip adj"; - case 0x0d: - return "tri strip reverse"; - case 0x0e: - return "polygon"; - case 0x0f: - return "rect list"; - case 0x10: - return "line loop"; - case 0x11: - return "point list bf"; - case 0x12: - return "line strip cont"; - case 0x13: - return "line strip bf"; - case 0x14: - return "line strip cont bf"; - case 0x15: - return "tri fan no stipple"; - default: - return "fail"; - } -} - -static int -i965_decode_urb_fence(struct drm_intel_decode *ctx, int len) -{ - uint32_t vs_fence, clip_fence, gs_fence, sf_fence, vfe_fence, cs_fence; - uint32_t *data = ctx->data; - - if (len != 3) - fprintf(out, "Bad count in URB_FENCE\n"); - - vs_fence = data[1] & 0x3ff; - gs_fence = (data[1] >> 10) & 0x3ff; - clip_fence = (data[1] >> 20) & 0x3ff; - sf_fence = data[2] & 0x3ff; - vfe_fence = (data[2] >> 10) & 0x3ff; - cs_fence = (data[2] >> 20) & 0x7ff; - - instr_out(ctx, 0, "URB_FENCE: %s%s%s%s%s%s\n", - (data[0] >> 13) & 1 ? "cs " : "", - (data[0] >> 12) & 1 ? "vfe " : "", - (data[0] >> 11) & 1 ? "sf " : "", - (data[0] >> 10) & 1 ? "clip " : "", - (data[0] >> 9) & 1 ? "gs " : "", - (data[0] >> 8) & 1 ? "vs " : ""); - instr_out(ctx, 1, - "vs fence: %d, clip_fence: %d, gs_fence: %d\n", - vs_fence, clip_fence, gs_fence); - instr_out(ctx, 2, - "sf fence: %d, vfe_fence: %d, cs_fence: %d\n", - sf_fence, vfe_fence, cs_fence); - if (gs_fence < vs_fence) - fprintf(out, "gs fence < vs fence!\n"); - if (clip_fence < gs_fence) - fprintf(out, "clip fence < gs fence!\n"); - if (sf_fence < clip_fence) - fprintf(out, "sf fence < clip fence!\n"); - if (cs_fence < sf_fence) - fprintf(out, "cs fence < sf fence!\n"); - - return len; -} - -static void -state_base_out(struct drm_intel_decode *ctx, unsigned int index, - const char *name) -{ - if (ctx->data[index] & 1) { - instr_out(ctx, index, - "%s state base address 0x%08x\n", name, - ctx->data[index] & ~1); - } else { - instr_out(ctx, index, "%s state base not updated\n", - name); - } -} - -static void -state_max_out(struct drm_intel_decode *ctx, unsigned int index, - const char *name) -{ - if (ctx->data[index] & 1) { - if (ctx->data[index] == 1) { - instr_out(ctx, index, - "%s state upper bound disabled\n", name); - } else { - instr_out(ctx, index, - "%s state upper bound 0x%08x\n", name, - ctx->data[index] & ~1); - } - } else { - instr_out(ctx, index, - "%s state upper bound not updated\n", name); - } -} - -static int -gen7_3DSTATE_VIEWPORT_STATE_POINTERS_CC(struct drm_intel_decode *ctx) -{ - instr_out(ctx, 0, "3DSTATE_VIEWPORT_STATE_POINTERS_CC\n"); - instr_out(ctx, 1, "pointer to CC viewport\n"); - - return 2; -} - -static int -gen7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP(struct drm_intel_decode *ctx) -{ - instr_out(ctx, 0, "3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP\n"); - instr_out(ctx, 1, "pointer to SF_CLIP viewport\n"); - - return 2; -} - -static int -gen7_3DSTATE_BLEND_STATE_POINTERS(struct drm_intel_decode *ctx) -{ - instr_out(ctx, 0, "3DSTATE_BLEND_STATE_POINTERS\n"); - instr_out(ctx, 1, "pointer to BLEND_STATE at 0x%08x (%s)\n", - ctx->data[1] & ~1, - (ctx->data[1] & 1) ? "changed" : "unchanged"); - - return 2; -} - -static int -gen7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS(struct drm_intel_decode *ctx) -{ - instr_out(ctx, 0, "3DSTATE_DEPTH_STENCIL_STATE_POINTERS\n"); - instr_out(ctx, 1, - "pointer to DEPTH_STENCIL_STATE at 0x%08x (%s)\n", - ctx->data[1] & ~1, - (ctx->data[1] & 1) ? "changed" : "unchanged"); - - return 2; -} - -static int -gen7_3DSTATE_HIER_DEPTH_BUFFER(struct drm_intel_decode *ctx) -{ - instr_out(ctx, 0, "3DSTATE_HIER_DEPTH_BUFFER\n"); - instr_out(ctx, 1, "pitch %db\n", - (ctx->data[1] & 0x1ffff) + 1); - instr_out(ctx, 2, "pointer to HiZ buffer\n"); - - return 3; -} - -static int -gen6_3DSTATE_CC_STATE_POINTERS(struct drm_intel_decode *ctx) -{ - instr_out(ctx, 0, "3DSTATE_CC_STATE_POINTERS\n"); - instr_out(ctx, 1, "blend change %d\n", ctx->data[1] & 1); - instr_out(ctx, 2, "depth stencil change %d\n", - ctx->data[2] & 1); - instr_out(ctx, 3, "cc change %d\n", ctx->data[3] & 1); - - return 4; -} - -static int -gen7_3DSTATE_CC_STATE_POINTERS(struct drm_intel_decode *ctx) -{ - instr_out(ctx, 0, "3DSTATE_CC_STATE_POINTERS\n"); - instr_out(ctx, 1, "pointer to COLOR_CALC_STATE at 0x%08x " - "(%s)\n", - ctx->data[1] & ~1, - (ctx->data[1] & 1) ? "changed" : "unchanged"); - - return 2; -} - -static int -gen7_3DSTATE_URB_unit(struct drm_intel_decode *ctx, const char *unit) -{ - int start_kb = ((ctx->data[1] >> 25) & 0x3f) * 8; - /* the field is # of 512-bit rows - 1, we print bytes */ - int entry_size = (((ctx->data[1] >> 16) & 0x1ff) + 1); - int nr_entries = ctx->data[1] & 0xffff; - - instr_out(ctx, 0, "3DSTATE_URB_%s\n", unit); - instr_out(ctx, 1, - "%dKB start, size=%d 64B rows, nr_entries=%d, total size %dB\n", - start_kb, entry_size, nr_entries, nr_entries * 64 * entry_size); - - return 2; -} - -static int -gen7_3DSTATE_URB_VS(struct drm_intel_decode *ctx) -{ - return gen7_3DSTATE_URB_unit(ctx, "VS"); -} - -static int -gen7_3DSTATE_URB_HS(struct drm_intel_decode *ctx) -{ - return gen7_3DSTATE_URB_unit(ctx, "HS"); -} - -static int -gen7_3DSTATE_URB_DS(struct drm_intel_decode *ctx) -{ - return gen7_3DSTATE_URB_unit(ctx, "DS"); -} - -static int -gen7_3DSTATE_URB_GS(struct drm_intel_decode *ctx) -{ - return gen7_3DSTATE_URB_unit(ctx, "GS"); -} - -static int -gen7_3DSTATE_CONSTANT(struct drm_intel_decode *ctx, const char *unit) -{ - int rlen[4]; - - rlen[0] = (ctx->data[1] >> 0) & 0xffff; - rlen[1] = (ctx->data[1] >> 16) & 0xffff; - rlen[2] = (ctx->data[2] >> 0) & 0xffff; - rlen[3] = (ctx->data[2] >> 16) & 0xffff; - - instr_out(ctx, 0, "3DSTATE_CONSTANT_%s\n", unit); - instr_out(ctx, 1, "len 0 = %d, len 1 = %d\n", rlen[0], rlen[1]); - instr_out(ctx, 2, "len 2 = %d, len 3 = %d\n", rlen[2], rlen[3]); - instr_out(ctx, 3, "pointer to constbuf 0\n"); - instr_out(ctx, 4, "pointer to constbuf 1\n"); - instr_out(ctx, 5, "pointer to constbuf 2\n"); - instr_out(ctx, 6, "pointer to constbuf 3\n"); - - return 7; -} - -static int -gen7_3DSTATE_CONSTANT_VS(struct drm_intel_decode *ctx) -{ - return gen7_3DSTATE_CONSTANT(ctx, "VS"); -} - -static int -gen7_3DSTATE_CONSTANT_GS(struct drm_intel_decode *ctx) -{ - return gen7_3DSTATE_CONSTANT(ctx, "GS"); -} - -static int -gen7_3DSTATE_CONSTANT_PS(struct drm_intel_decode *ctx) -{ - return gen7_3DSTATE_CONSTANT(ctx, "PS"); -} - -static int -gen7_3DSTATE_CONSTANT_DS(struct drm_intel_decode *ctx) -{ - return gen7_3DSTATE_CONSTANT(ctx, "DS"); -} - -static int -gen7_3DSTATE_CONSTANT_HS(struct drm_intel_decode *ctx) -{ - return gen7_3DSTATE_CONSTANT(ctx, "HS"); -} - - -static int -gen6_3DSTATE_WM(struct drm_intel_decode *ctx) -{ - instr_out(ctx, 0, "3DSTATE_WM\n"); - instr_out(ctx, 1, "kernel start pointer 0\n"); - instr_out(ctx, 2, - "SPF=%d, VME=%d, Sampler Count %d, " - "Binding table count %d\n", - (ctx->data[2] >> 31) & 1, - (ctx->data[2] >> 30) & 1, - (ctx->data[2] >> 27) & 7, - (ctx->data[2] >> 18) & 0xff); - instr_out(ctx, 3, "scratch offset\n"); - instr_out(ctx, 4, - "Depth Clear %d, Depth Resolve %d, HiZ Resolve %d, " - "Dispatch GRF start[0] %d, start[1] %d, start[2] %d\n", - (ctx->data[4] & (1 << 30)) != 0, - (ctx->data[4] & (1 << 28)) != 0, - (ctx->data[4] & (1 << 27)) != 0, - (ctx->data[4] >> 16) & 0x7f, - (ctx->data[4] >> 8) & 0x7f, - (ctx->data[4] & 0x7f)); - instr_out(ctx, 5, - "MaxThreads %d, PS KillPixel %d, PS computed Z %d, " - "PS use sourceZ %d, Thread Dispatch %d, PS use sourceW %d, " - "Dispatch32 %d, Dispatch16 %d, Dispatch8 %d\n", - ((ctx->data[5] >> 25) & 0x7f) + 1, - (ctx->data[5] & (1 << 22)) != 0, - (ctx->data[5] & (1 << 21)) != 0, - (ctx->data[5] & (1 << 20)) != 0, - (ctx->data[5] & (1 << 19)) != 0, - (ctx->data[5] & (1 << 8)) != 0, - (ctx->data[5] & (1 << 2)) != 0, - (ctx->data[5] & (1 << 1)) != 0, - (ctx->data[5] & (1 << 0)) != 0); - instr_out(ctx, 6, - "Num SF output %d, Pos XY offset %d, ZW interp mode %d , " - "Barycentric interp mode 0x%x, Point raster rule %d, " - "Multisample mode %d, " - "Multisample Dispatch mode %d\n", - (ctx->data[6] >> 20) & 0x3f, - (ctx->data[6] >> 18) & 3, - (ctx->data[6] >> 16) & 3, - (ctx->data[6] >> 10) & 0x3f, - (ctx->data[6] & (1 << 9)) != 0, - (ctx->data[6] >> 1) & 3, - (ctx->data[6] & 1)); - instr_out(ctx, 7, "kernel start pointer 1\n"); - instr_out(ctx, 8, "kernel start pointer 2\n"); - - return 9; -} - -static int -gen7_3DSTATE_WM(struct drm_intel_decode *ctx) -{ - const char *computed_depth = ""; - const char *early_depth = ""; - const char *zw_interp = ""; - - switch ((ctx->data[1] >> 23) & 0x3) { - case 0: - computed_depth = ""; - break; - case 1: - computed_depth = "computed depth"; - break; - case 2: - computed_depth = "computed depth >="; - break; - case 3: - computed_depth = "computed depth <="; - break; - } - - switch ((ctx->data[1] >> 21) & 0x3) { - case 0: - early_depth = ""; - break; - case 1: - early_depth = ", EDSC_PSEXEC"; - break; - case 2: - early_depth = ", EDSC_PREPS"; - break; - case 3: - early_depth = ", BAD EDSC"; - break; - } - - switch ((ctx->data[1] >> 17) & 0x3) { - case 0: - early_depth = ""; - break; - case 1: - early_depth = ", BAD ZW interp"; - break; - case 2: - early_depth = ", ZW centroid"; - break; - case 3: - early_depth = ", ZW sample"; - break; - } - - instr_out(ctx, 0, "3DSTATE_WM\n"); - instr_out(ctx, 1, "(%s%s%s%s%s%s)%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n", - (ctx->data[1] & (1 << 11)) ? "PP " : "", - (ctx->data[1] & (1 << 12)) ? "PC " : "", - (ctx->data[1] & (1 << 13)) ? "PS " : "", - (ctx->data[1] & (1 << 14)) ? "NPP " : "", - (ctx->data[1] & (1 << 15)) ? "NPC " : "", - (ctx->data[1] & (1 << 16)) ? "NPS " : "", - (ctx->data[1] & (1 << 30)) ? ", depth clear" : "", - (ctx->data[1] & (1 << 29)) ? "" : ", disabled", - (ctx->data[1] & (1 << 28)) ? ", depth resolve" : "", - (ctx->data[1] & (1 << 27)) ? ", hiz resolve" : "", - (ctx->data[1] & (1 << 25)) ? ", kill" : "", - computed_depth, - early_depth, - zw_interp, - (ctx->data[1] & (1 << 20)) ? ", source depth" : "", - (ctx->data[1] & (1 << 19)) ? ", source W" : "", - (ctx->data[1] & (1 << 10)) ? ", coverage" : "", - (ctx->data[1] & (1 << 4)) ? ", poly stipple" : "", - (ctx->data[1] & (1 << 3)) ? ", line stipple" : "", - (ctx->data[1] & (1 << 2)) ? ", point UL" : ", point UR" - ); - instr_out(ctx, 2, "MS\n"); - - return 3; -} - -static int -gen4_3DPRIMITIVE(struct drm_intel_decode *ctx) -{ - instr_out(ctx, 0, - "3DPRIMITIVE: %s %s\n", - get_965_prim_type((ctx->data[0] >> 10) & 0x1f), - (ctx->data[0] & (1 << 15)) ? "random" : "sequential"); - instr_out(ctx, 1, "vertex count\n"); - instr_out(ctx, 2, "start vertex\n"); - instr_out(ctx, 3, "instance count\n"); - instr_out(ctx, 4, "start instance\n"); - instr_out(ctx, 5, "index bias\n"); - - return 6; -} - -static int -gen7_3DPRIMITIVE(struct drm_intel_decode *ctx) -{ - bool indirect = !!(ctx->data[0] & (1 << 10)); - - instr_out(ctx, 0, - "3DPRIMITIVE: %s%s\n", - indirect ? " indirect" : "", - (ctx->data[0] & (1 << 8)) ? " predicated" : ""); - instr_out(ctx, 1, "%s %s\n", - get_965_prim_type(ctx->data[1] & 0x3f), - (ctx->data[1] & (1 << 8)) ? "random" : "sequential"); - instr_out(ctx, 2, indirect ? "ignored" : "vertex count\n"); - instr_out(ctx, 3, indirect ? "ignored" : "start vertex\n"); - instr_out(ctx, 4, indirect ? "ignored" : "instance count\n"); - instr_out(ctx, 5, indirect ? "ignored" : "start instance\n"); - instr_out(ctx, 6, indirect ? "ignored" : "index bias\n"); - - return 7; -} - -static int -decode_3d_965(struct drm_intel_decode *ctx) -{ - uint32_t opcode; - unsigned int len; - unsigned int i, j, sba_len; - const char *desc1 = NULL; - uint32_t *data = ctx->data; - uint32_t devid = ctx->devid; - - struct { - uint32_t opcode; - uint32_t len_mask; - int unsigned min_len; - int unsigned max_len; - const char *name; - int gen; - int (*func)(struct drm_intel_decode *ctx); - } opcodes_3d[] = { - { 0x6000, 0x00ff, 3, 3, "URB_FENCE" }, - { 0x6001, 0xffff, 2, 2, "CS_URB_STATE" }, - { 0x6002, 0x00ff, 2, 2, "CONSTANT_BUFFER" }, - { 0x6101, 0xffff, 6, 10, "STATE_BASE_ADDRESS" }, - { 0x6102, 0xffff, 2, 2, "STATE_SIP" }, - { 0x6104, 0xffff, 1, 1, "3DSTATE_PIPELINE_SELECT" }, - { 0x680b, 0xffff, 1, 1, "3DSTATE_VF_STATISTICS" }, - { 0x6904, 0xffff, 1, 1, "3DSTATE_PIPELINE_SELECT" }, - { 0x7800, 0xffff, 7, 7, "3DSTATE_PIPELINED_POINTERS" }, - { 0x7801, 0x00ff, 4, 6, "3DSTATE_BINDING_TABLE_POINTERS" }, - { 0x7802, 0x00ff, 4, 4, "3DSTATE_SAMPLER_STATE_POINTERS" }, - { 0x7805, 0x00ff, 7, 7, "3DSTATE_DEPTH_BUFFER", 7 }, - { 0x7805, 0x00ff, 3, 3, "3DSTATE_URB" }, - { 0x7804, 0x00ff, 3, 3, "3DSTATE_CLEAR_PARAMS" }, - { 0x7806, 0x00ff, 3, 3, "3DSTATE_STENCIL_BUFFER" }, - { 0x790f, 0x00ff, 3, 3, "3DSTATE_HIER_DEPTH_BUFFER", 6 }, - { 0x7807, 0x00ff, 3, 3, "3DSTATE_HIER_DEPTH_BUFFER", 7, gen7_3DSTATE_HIER_DEPTH_BUFFER }, - { 0x7808, 0x00ff, 5, 257, "3DSTATE_VERTEX_BUFFERS" }, - { 0x7809, 0x00ff, 3, 256, "3DSTATE_VERTEX_ELEMENTS" }, - { 0x780a, 0x00ff, 3, 3, "3DSTATE_INDEX_BUFFER" }, - { 0x780b, 0xffff, 1, 1, "3DSTATE_VF_STATISTICS" }, - { 0x780d, 0x00ff, 4, 4, "3DSTATE_VIEWPORT_STATE_POINTERS" }, - { 0x780e, 0xffff, 4, 4, NULL, 6, gen6_3DSTATE_CC_STATE_POINTERS }, - { 0x780e, 0x00ff, 2, 2, NULL, 7, gen7_3DSTATE_CC_STATE_POINTERS }, - { 0x780f, 0x00ff, 2, 2, "3DSTATE_SCISSOR_POINTERS" }, - { 0x7810, 0x00ff, 6, 6, "3DSTATE_VS" }, - { 0x7811, 0x00ff, 7, 7, "3DSTATE_GS" }, - { 0x7812, 0x00ff, 4, 4, "3DSTATE_CLIP" }, - { 0x7813, 0x00ff, 20, 20, "3DSTATE_SF", 6 }, - { 0x7813, 0x00ff, 7, 7, "3DSTATE_SF", 7 }, - { 0x7814, 0x00ff, 3, 3, "3DSTATE_WM", 7, gen7_3DSTATE_WM }, - { 0x7814, 0x00ff, 9, 9, "3DSTATE_WM", 6, gen6_3DSTATE_WM }, - { 0x7815, 0x00ff, 5, 5, "3DSTATE_CONSTANT_VS_STATE", 6 }, - { 0x7815, 0x00ff, 7, 7, "3DSTATE_CONSTANT_VS", 7, gen7_3DSTATE_CONSTANT_VS }, - { 0x7816, 0x00ff, 5, 5, "3DSTATE_CONSTANT_GS_STATE", 6 }, - { 0x7816, 0x00ff, 7, 7, "3DSTATE_CONSTANT_GS", 7, gen7_3DSTATE_CONSTANT_GS }, - { 0x7817, 0x00ff, 5, 5, "3DSTATE_CONSTANT_PS_STATE", 6 }, - { 0x7817, 0x00ff, 7, 7, "3DSTATE_CONSTANT_PS", 7, gen7_3DSTATE_CONSTANT_PS }, - { 0x7818, 0xffff, 2, 2, "3DSTATE_SAMPLE_MASK" }, - { 0x7819, 0x00ff, 7, 7, "3DSTATE_CONSTANT_HS", 7, gen7_3DSTATE_CONSTANT_HS }, - { 0x781a, 0x00ff, 7, 7, "3DSTATE_CONSTANT_DS", 7, gen7_3DSTATE_CONSTANT_DS }, - { 0x781b, 0x00ff, 7, 7, "3DSTATE_HS" }, - { 0x781c, 0x00ff, 4, 4, "3DSTATE_TE" }, - { 0x781d, 0x00ff, 6, 6, "3DSTATE_DS" }, - { 0x781e, 0x00ff, 3, 3, "3DSTATE_STREAMOUT" }, - { 0x781f, 0x00ff, 14, 14, "3DSTATE_SBE" }, - { 0x7820, 0x00ff, 8, 8, "3DSTATE_PS" }, - { 0x7821, 0x00ff, 2, 2, NULL, 7, gen7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP }, - { 0x7823, 0x00ff, 2, 2, NULL, 7, gen7_3DSTATE_VIEWPORT_STATE_POINTERS_CC }, - { 0x7824, 0x00ff, 2, 2, NULL, 7, gen7_3DSTATE_BLEND_STATE_POINTERS }, - { 0x7825, 0x00ff, 2, 2, NULL, 7, gen7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS }, - { 0x7826, 0x00ff, 2, 2, "3DSTATE_BINDING_TABLE_POINTERS_VS" }, - { 0x7827, 0x00ff, 2, 2, "3DSTATE_BINDING_TABLE_POINTERS_HS" }, - { 0x7828, 0x00ff, 2, 2, "3DSTATE_BINDING_TABLE_POINTERS_DS" }, - { 0x7829, 0x00ff, 2, 2, "3DSTATE_BINDING_TABLE_POINTERS_GS" }, - { 0x782a, 0x00ff, 2, 2, "3DSTATE_BINDING_TABLE_POINTERS_PS" }, - { 0x782b, 0x00ff, 2, 2, "3DSTATE_SAMPLER_STATE_POINTERS_VS" }, - { 0x782c, 0x00ff, 2, 2, "3DSTATE_SAMPLER_STATE_POINTERS_HS" }, - { 0x782d, 0x00ff, 2, 2, "3DSTATE_SAMPLER_STATE_POINTERS_DS" }, - { 0x782e, 0x00ff, 2, 2, "3DSTATE_SAMPLER_STATE_POINTERS_GS" }, - { 0x782f, 0x00ff, 2, 2, "3DSTATE_SAMPLER_STATE_POINTERS_PS" }, - { 0x7830, 0x00ff, 2, 2, NULL, 7, gen7_3DSTATE_URB_VS }, - { 0x7831, 0x00ff, 2, 2, NULL, 7, gen7_3DSTATE_URB_HS }, - { 0x7832, 0x00ff, 2, 2, NULL, 7, gen7_3DSTATE_URB_DS }, - { 0x7833, 0x00ff, 2, 2, NULL, 7, gen7_3DSTATE_URB_GS }, - { 0x7900, 0xffff, 4, 4, "3DSTATE_DRAWING_RECTANGLE" }, - { 0x7901, 0xffff, 5, 5, "3DSTATE_CONSTANT_COLOR" }, - { 0x7905, 0xffff, 5, 7, "3DSTATE_DEPTH_BUFFER" }, - { 0x7906, 0xffff, 2, 2, "3DSTATE_POLY_STIPPLE_OFFSET" }, - { 0x7907, 0xffff, 33, 33, "3DSTATE_POLY_STIPPLE_PATTERN" }, - { 0x7908, 0xffff, 3, 3, "3DSTATE_LINE_STIPPLE" }, - { 0x7909, 0xffff, 2, 2, "3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP" }, - { 0x7909, 0xffff, 2, 2, "3DSTATE_CLEAR_PARAMS" }, - { 0x790a, 0xffff, 3, 3, "3DSTATE_AA_LINE_PARAMETERS" }, - { 0x790b, 0xffff, 4, 4, "3DSTATE_GS_SVB_INDEX" }, - { 0x790d, 0xffff, 3, 3, "3DSTATE_MULTISAMPLE", 6 }, - { 0x790d, 0xffff, 4, 4, "3DSTATE_MULTISAMPLE", 7 }, - { 0x7910, 0x00ff, 2, 2, "3DSTATE_CLEAR_PARAMS" }, - { 0x7912, 0x00ff, 2, 2, "3DSTATE_PUSH_CONSTANT_ALLOC_VS" }, - { 0x7913, 0x00ff, 2, 2, "3DSTATE_PUSH_CONSTANT_ALLOC_HS" }, - { 0x7914, 0x00ff, 2, 2, "3DSTATE_PUSH_CONSTANT_ALLOC_DS" }, - { 0x7915, 0x00ff, 2, 2, "3DSTATE_PUSH_CONSTANT_ALLOC_GS" }, - { 0x7916, 0x00ff, 2, 2, "3DSTATE_PUSH_CONSTANT_ALLOC_PS" }, - { 0x7917, 0x00ff, 2, 2+128*2, "3DSTATE_SO_DECL_LIST" }, - { 0x7918, 0x00ff, 4, 4, "3DSTATE_SO_BUFFER" }, - { 0x7a00, 0x00ff, 4, 6, "PIPE_CONTROL" }, - { 0x7b00, 0x00ff, 7, 7, NULL, 7, gen7_3DPRIMITIVE }, - { 0x7b00, 0x00ff, 6, 6, NULL, 0, gen4_3DPRIMITIVE }, - }, *opcode_3d = NULL; - - opcode = (data[0] & 0xffff0000) >> 16; - - for (i = 0; i < ARRAY_SIZE(opcodes_3d); i++) { - if (opcode != opcodes_3d[i].opcode) - continue; - - /* If it's marked as not our gen, skip. */ - if (opcodes_3d[i].gen && opcodes_3d[i].gen != ctx->gen) - continue; - - opcode_3d = &opcodes_3d[i]; - break; - } - - if (opcode_3d) { - if (opcode_3d->max_len == 1) - len = 1; - else - len = (data[0] & opcode_3d->len_mask) + 2; - - if (len < opcode_3d->min_len || - len > opcode_3d->max_len) { - fprintf(out, "Bad length %d in %s, expected %d-%d\n", - len, opcode_3d->name, - opcode_3d->min_len, opcode_3d->max_len); - } - } else { - len = (data[0] & 0x0000ffff) + 2; - } - - switch (opcode) { - case 0x6000: - return i965_decode_urb_fence(ctx, len); - case 0x6001: - instr_out(ctx, 0, "CS_URB_STATE\n"); - instr_out(ctx, 1, - "entry_size: %d [%d bytes], n_entries: %d\n", - (data[1] >> 4) & 0x1f, - (((data[1] >> 4) & 0x1f) + 1) * 64, data[1] & 0x7); - return len; - case 0x6002: - instr_out(ctx, 0, "CONSTANT_BUFFER: %s\n", - (data[0] >> 8) & 1 ? "valid" : "invalid"); - instr_out(ctx, 1, - "offset: 0x%08x, length: %d bytes\n", data[1] & ~0x3f, - ((data[1] & 0x3f) + 1) * 64); - return len; - case 0x6101: - i = 0; - instr_out(ctx, 0, "STATE_BASE_ADDRESS\n"); - i++; - - if (IS_GEN6(devid) || IS_GEN7(devid)) - sba_len = 10; - else if (IS_GEN5(devid)) - sba_len = 8; - else - sba_len = 6; - if (len != sba_len) - fprintf(out, "Bad count in STATE_BASE_ADDRESS\n"); - - state_base_out(ctx, i++, "general"); - state_base_out(ctx, i++, "surface"); - if (IS_GEN6(devid) || IS_GEN7(devid)) - state_base_out(ctx, i++, "dynamic"); - state_base_out(ctx, i++, "indirect"); - if (IS_GEN5(devid) || IS_GEN6(devid) || IS_GEN7(devid)) - state_base_out(ctx, i++, "instruction"); - - state_max_out(ctx, i++, "general"); - if (IS_GEN6(devid) || IS_GEN7(devid)) - state_max_out(ctx, i++, "dynamic"); - state_max_out(ctx, i++, "indirect"); - if (IS_GEN5(devid) || IS_GEN6(devid) || IS_GEN7(devid)) - state_max_out(ctx, i++, "instruction"); - - return len; - case 0x7800: - instr_out(ctx, 0, "3DSTATE_PIPELINED_POINTERS\n"); - instr_out(ctx, 1, "VS state\n"); - instr_out(ctx, 2, "GS state\n"); - instr_out(ctx, 3, "Clip state\n"); - instr_out(ctx, 4, "SF state\n"); - instr_out(ctx, 5, "WM state\n"); - instr_out(ctx, 6, "CC state\n"); - return len; - case 0x7801: - if (len != 6 && len != 4) - fprintf(out, - "Bad count in 3DSTATE_BINDING_TABLE_POINTERS\n"); - if (len == 6) { - instr_out(ctx, 0, - "3DSTATE_BINDING_TABLE_POINTERS\n"); - instr_out(ctx, 1, "VS binding table\n"); - instr_out(ctx, 2, "GS binding table\n"); - instr_out(ctx, 3, "Clip binding table\n"); - instr_out(ctx, 4, "SF binding table\n"); - instr_out(ctx, 5, "WM binding table\n"); - } else { - instr_out(ctx, 0, - "3DSTATE_BINDING_TABLE_POINTERS: VS mod %d, " - "GS mod %d, PS mod %d\n", - (data[0] & (1 << 8)) != 0, - (data[0] & (1 << 9)) != 0, - (data[0] & (1 << 12)) != 0); - instr_out(ctx, 1, "VS binding table\n"); - instr_out(ctx, 2, "GS binding table\n"); - instr_out(ctx, 3, "WM binding table\n"); - } - - return len; - case 0x7802: - instr_out(ctx, 0, - "3DSTATE_SAMPLER_STATE_POINTERS: VS mod %d, " - "GS mod %d, PS mod %d\n", (data[0] & (1 << 8)) != 0, - (data[0] & (1 << 9)) != 0, - (data[0] & (1 << 12)) != 0); - instr_out(ctx, 1, "VS sampler state\n"); - instr_out(ctx, 2, "GS sampler state\n"); - instr_out(ctx, 3, "WM sampler state\n"); - return len; - case 0x7805: - /* Actually 3DSTATE_DEPTH_BUFFER on gen7. */ - if (ctx->gen == 7) - break; - - instr_out(ctx, 0, "3DSTATE_URB\n"); - instr_out(ctx, 1, - "VS entries %d, alloc size %d (1024bit row)\n", - data[1] & 0xffff, ((data[1] >> 16) & 0x07f) + 1); - instr_out(ctx, 2, - "GS entries %d, alloc size %d (1024bit row)\n", - (data[2] >> 8) & 0x3ff, (data[2] & 7) + 1); - return len; - - case 0x7808: - if ((len - 1) % 4 != 0) - fprintf(out, "Bad count in 3DSTATE_VERTEX_BUFFERS\n"); - instr_out(ctx, 0, "3DSTATE_VERTEX_BUFFERS\n"); - - for (i = 1; i < len;) { - int idx, access; - if (IS_GEN6(devid)) { - idx = 26; - access = 20; - } else { - idx = 27; - access = 26; - } - instr_out(ctx, i, - "buffer %d: %s, pitch %db\n", data[i] >> idx, - data[i] & (1 << access) ? "random" : - "sequential", data[i] & 0x07ff); - i++; - instr_out(ctx, i++, "buffer address\n"); - instr_out(ctx, i++, "max index\n"); - instr_out(ctx, i++, "mbz\n"); - } - return len; - - case 0x7809: - if ((len + 1) % 2 != 0) - fprintf(out, "Bad count in 3DSTATE_VERTEX_ELEMENTS\n"); - instr_out(ctx, 0, "3DSTATE_VERTEX_ELEMENTS\n"); - - for (i = 1; i < len;) { - instr_out(ctx, i, - "buffer %d: %svalid, type 0x%04x, " - "src offset 0x%04x bytes\n", - data[i] >> ((IS_GEN6(devid) || IS_GEN7(devid)) ? 26 : 27), - data[i] & (1 << ((IS_GEN6(devid) || IS_GEN7(devid)) ? 25 : 26)) ? - "" : "in", (data[i] >> 16) & 0x1ff, - data[i] & 0x07ff); - i++; - instr_out(ctx, i, "(%s, %s, %s, %s), " - "dst offset 0x%02x bytes\n", - get_965_element_component(data[i], 0), - get_965_element_component(data[i], 1), - get_965_element_component(data[i], 2), - get_965_element_component(data[i], 3), - (data[i] & 0xff) * 4); - i++; - } - return len; - - case 0x780d: - instr_out(ctx, 0, - "3DSTATE_VIEWPORT_STATE_POINTERS\n"); - instr_out(ctx, 1, "clip\n"); - instr_out(ctx, 2, "sf\n"); - instr_out(ctx, 3, "cc\n"); - return len; - - case 0x780a: - instr_out(ctx, 0, "3DSTATE_INDEX_BUFFER\n"); - instr_out(ctx, 1, "beginning buffer address\n"); - instr_out(ctx, 2, "ending buffer address\n"); - return len; - - case 0x780f: - instr_out(ctx, 0, "3DSTATE_SCISSOR_POINTERS\n"); - instr_out(ctx, 1, "scissor rect offset\n"); - return len; - - case 0x7810: - instr_out(ctx, 0, "3DSTATE_VS\n"); - instr_out(ctx, 1, "kernel pointer\n"); - instr_out(ctx, 2, - "SPF=%d, VME=%d, Sampler Count %d, " - "Binding table count %d\n", (data[2] >> 31) & 1, - (data[2] >> 30) & 1, (data[2] >> 27) & 7, - (data[2] >> 18) & 0xff); - instr_out(ctx, 3, "scratch offset\n"); - instr_out(ctx, 4, - "Dispatch GRF start %d, VUE read length %d, " - "VUE read offset %d\n", (data[4] >> 20) & 0x1f, - (data[4] >> 11) & 0x3f, (data[4] >> 4) & 0x3f); - instr_out(ctx, 5, - "Max Threads %d, Vertex Cache %sable, " - "VS func %sable\n", ((data[5] >> 25) & 0x7f) + 1, - (data[5] & (1 << 1)) != 0 ? "dis" : "en", - (data[5] & 1) != 0 ? "en" : "dis"); - return len; - - case 0x7811: - instr_out(ctx, 0, "3DSTATE_GS\n"); - instr_out(ctx, 1, "kernel pointer\n"); - instr_out(ctx, 2, - "SPF=%d, VME=%d, Sampler Count %d, " - "Binding table count %d\n", (data[2] >> 31) & 1, - (data[2] >> 30) & 1, (data[2] >> 27) & 7, - (data[2] >> 18) & 0xff); - instr_out(ctx, 3, "scratch offset\n"); - instr_out(ctx, 4, - "Dispatch GRF start %d, VUE read length %d, " - "VUE read offset %d\n", (data[4] & 0xf), - (data[4] >> 11) & 0x3f, (data[4] >> 4) & 0x3f); - instr_out(ctx, 5, - "Max Threads %d, Rendering %sable\n", - ((data[5] >> 25) & 0x7f) + 1, - (data[5] & (1 << 8)) != 0 ? "en" : "dis"); - instr_out(ctx, 6, - "Reorder %sable, Discard Adjaceny %sable, " - "GS %sable\n", - (data[6] & (1 << 30)) != 0 ? "en" : "dis", - (data[6] & (1 << 29)) != 0 ? "en" : "dis", - (data[6] & (1 << 15)) != 0 ? "en" : "dis"); - return len; - - case 0x7812: - instr_out(ctx, 0, "3DSTATE_CLIP\n"); - instr_out(ctx, 1, - "UserClip distance cull test mask 0x%x\n", - data[1] & 0xff); - instr_out(ctx, 2, - "Clip %sable, API mode %s, Viewport XY test %sable, " - "Viewport Z test %sable, Guardband test %sable, Clip mode %d, " - "Perspective Divide %sable, Non-Perspective Barycentric %sable, " - "Tri Provoking %d, Line Provoking %d, Trifan Provoking %d\n", - (data[2] & (1 << 31)) != 0 ? "en" : "dis", - (data[2] & (1 << 30)) != 0 ? "D3D" : "OGL", - (data[2] & (1 << 28)) != 0 ? "en" : "dis", - (data[2] & (1 << 27)) != 0 ? "en" : "dis", - (data[2] & (1 << 26)) != 0 ? "en" : "dis", - (data[2] >> 13) & 7, - (data[2] & (1 << 9)) != 0 ? "dis" : "en", - (data[2] & (1 << 8)) != 0 ? "en" : "dis", - (data[2] >> 4) & 3, (data[2] >> 2) & 3, - (data[2] & 3)); - instr_out(ctx, 3, - "Min PointWidth %d, Max PointWidth %d, " - "Force Zero RTAIndex %sable, Max VPIndex %d\n", - (data[3] >> 17) & 0x7ff, (data[3] >> 6) & 0x7ff, - (data[3] & (1 << 5)) != 0 ? "en" : "dis", - (data[3] & 0xf)); - return len; - - case 0x7813: - if (ctx->gen == 7) - break; - - instr_out(ctx, 0, "3DSTATE_SF\n"); - instr_out(ctx, 1, - "Attrib Out %d, Attrib Swizzle %sable, VUE read length %d, " - "VUE read offset %d\n", (data[1] >> 22) & 0x3f, - (data[1] & (1 << 21)) != 0 ? "en" : "dis", - (data[1] >> 11) & 0x1f, (data[1] >> 4) & 0x3f); - instr_out(ctx, 2, - "Legacy Global DepthBias %sable, FrontFace fill %d, BF fill %d, " - "VP transform %sable, FrontWinding_%s\n", - (data[2] & (1 << 11)) != 0 ? "en" : "dis", - (data[2] >> 5) & 3, (data[2] >> 3) & 3, - (data[2] & (1 << 1)) != 0 ? "en" : "dis", - (data[2] & 1) != 0 ? "CCW" : "CW"); - instr_out(ctx, 3, - "AA %sable, CullMode %d, Scissor %sable, Multisample m ode %d\n", - (data[3] & (1 << 31)) != 0 ? "en" : "dis", - (data[3] >> 29) & 3, - (data[3] & (1 << 11)) != 0 ? "en" : "dis", - (data[3] >> 8) & 3); - instr_out(ctx, 4, - "Last Pixel %sable, SubPixel Precision %d, Use PixelWidth %d\n", - (data[4] & (1 << 31)) != 0 ? "en" : "dis", - (data[4] & (1 << 12)) != 0 ? 4 : 8, - (data[4] & (1 << 11)) != 0); - instr_out(ctx, 5, - "Global Depth Offset Constant %f\n", - *(float *)(&data[5])); - instr_out(ctx, 6, "Global Depth Offset Scale %f\n", - *(float *)(&data[6])); - instr_out(ctx, 7, "Global Depth Offset Clamp %f\n", - *(float *)(&data[7])); - - for (i = 0, j = 0; i < 8; i++, j += 2) - instr_out(ctx, i + 8, - "Attrib %d (Override %s%s%s%s, Const Source %d, Swizzle Select %d, " - "Source %d); Attrib %d (Override %s%s%s%s, Const Source %d, Swizzle Select %d, Source %d)\n", - j + 1, - (data[8 + i] & (1 << 31)) != 0 ? "W" : "", - (data[8 + i] & (1 << 30)) != 0 ? "Z" : "", - (data[8 + i] & (1 << 29)) != 0 ? "Y" : "", - (data[8 + i] & (1 << 28)) != 0 ? "X" : "", - (data[8 + i] >> 25) & 3, - (data[8 + i] >> 22) & 3, - (data[8 + i] >> 16) & 0x1f, j, - (data[8 + i] & (1 << 15)) != 0 ? "W" : "", - (data[8 + i] & (1 << 14)) != 0 ? "Z" : "", - (data[8 + i] & (1 << 13)) != 0 ? "Y" : "", - (data[8 + i] & (1 << 12)) != 0 ? "X" : "", - (data[8 + i] >> 9) & 3, - (data[8 + i] >> 6) & 3, (data[8 + i] & 0x1f)); - instr_out(ctx, 16, - "Point Sprite TexCoord Enable\n"); - instr_out(ctx, 17, "Const Interp Enable\n"); - instr_out(ctx, 18, - "Attrib 7-0 WrapShortest Enable\n"); - instr_out(ctx, 19, - "Attrib 15-8 WrapShortest Enable\n"); - - return len; - - case 0x7900: - instr_out(ctx, 0, "3DSTATE_DRAWING_RECTANGLE\n"); - instr_out(ctx, 1, "top left: %d,%d\n", - data[1] & 0xffff, (data[1] >> 16) & 0xffff); - instr_out(ctx, 2, "bottom right: %d,%d\n", - data[2] & 0xffff, (data[2] >> 16) & 0xffff); - instr_out(ctx, 3, "origin: %d,%d\n", - (int)data[3] & 0xffff, ((int)data[3] >> 16) & 0xffff); - - return len; - - case 0x7905: - instr_out(ctx, 0, "3DSTATE_DEPTH_BUFFER\n"); - if (IS_GEN5(devid) || IS_GEN6(devid)) - instr_out(ctx, 1, - "%s, %s, pitch = %d bytes, %stiled, HiZ %d, Seperate Stencil %d\n", - get_965_surfacetype(data[1] >> 29), - get_965_depthformat((data[1] >> 18) & 0x7), - (data[1] & 0x0001ffff) + 1, - data[1] & (1 << 27) ? "" : "not ", - (data[1] & (1 << 22)) != 0, - (data[1] & (1 << 21)) != 0); - else - instr_out(ctx, 1, - "%s, %s, pitch = %d bytes, %stiled\n", - get_965_surfacetype(data[1] >> 29), - get_965_depthformat((data[1] >> 18) & 0x7), - (data[1] & 0x0001ffff) + 1, - data[1] & (1 << 27) ? "" : "not "); - instr_out(ctx, 2, "depth offset\n"); - instr_out(ctx, 3, "%dx%d\n", - ((data[3] & 0x0007ffc0) >> 6) + 1, - ((data[3] & 0xfff80000) >> 19) + 1); - instr_out(ctx, 4, "volume depth\n"); - if (len >= 6) - instr_out(ctx, 5, "\n"); - if (len >= 7) { - if (IS_GEN6(devid)) - instr_out(ctx, 6, "\n"); - else - instr_out(ctx, 6, - "render target view extent\n"); - } - - return len; - - case 0x7a00: - if (IS_GEN6(devid) || IS_GEN7(devid)) { - unsigned int i; - if (len != 4 && len != 5) - fprintf(out, "Bad count in PIPE_CONTROL\n"); - - switch ((data[1] >> 14) & 0x3) { - case 0: - desc1 = "no write"; - break; - case 1: - desc1 = "qword write"; - break; - case 2: - desc1 = "PS_DEPTH_COUNT write"; - break; - case 3: - desc1 = "TIMESTAMP write"; - break; - } - instr_out(ctx, 0, "PIPE_CONTROL\n"); - instr_out(ctx, 1, - "%s, %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n", - desc1, - data[1] & (1 << 20) ? "cs stall, " : "", - data[1] & (1 << 19) ? - "global snapshot count reset, " : "", - data[1] & (1 << 18) ? "tlb invalidate, " : "", - data[1] & (1 << 17) ? "gfdt flush, " : "", - data[1] & (1 << 17) ? "media state clear, " : - "", - data[1] & (1 << 13) ? "depth stall, " : "", - data[1] & (1 << 12) ? - "render target cache flush, " : "", - data[1] & (1 << 11) ? - "instruction cache invalidate, " : "", - data[1] & (1 << 10) ? - "texture cache invalidate, " : "", - data[1] & (1 << 9) ? - "indirect state invalidate, " : "", - data[1] & (1 << 8) ? "notify irq, " : "", - data[1] & (1 << 7) ? "PIPE_CONTROL flush, " : - "", - data[1] & (1 << 6) ? "protect mem app_id, " : - "", data[1] & (1 << 5) ? "DC flush, " : "", - data[1] & (1 << 4) ? "vf fetch invalidate, " : - "", - data[1] & (1 << 3) ? - "constant cache invalidate, " : "", - data[1] & (1 << 2) ? - "state cache invalidate, " : "", - data[1] & (1 << 1) ? "stall at scoreboard, " : - "", - data[1] & (1 << 0) ? "depth cache flush, " : - ""); - if (len == 5) { - instr_out(ctx, 2, - "destination address\n"); - instr_out(ctx, 3, - "immediate dword low\n"); - instr_out(ctx, 4, - "immediate dword high\n"); - } else { - for (i = 2; i < len; i++) { - instr_out(ctx, i, "\n"); - } - } - return len; - } else { - if (len != 4) - fprintf(out, "Bad count in PIPE_CONTROL\n"); - - switch ((data[0] >> 14) & 0x3) { - case 0: - desc1 = "no write"; - break; - case 1: - desc1 = "qword write"; - break; - case 2: - desc1 = "PS_DEPTH_COUNT write"; - break; - case 3: - desc1 = "TIMESTAMP write"; - break; - } - instr_out(ctx, 0, - "PIPE_CONTROL: %s, %sdepth stall, %sRC write flush, " - "%sinst flush\n", - desc1, - data[0] & (1 << 13) ? "" : "no ", - data[0] & (1 << 12) ? "" : "no ", - data[0] & (1 << 11) ? "" : "no "); - instr_out(ctx, 1, "destination address\n"); - instr_out(ctx, 2, "immediate dword low\n"); - instr_out(ctx, 3, "immediate dword high\n"); - return len; - } - } - - if (opcode_3d) { - if (opcode_3d->func) { - return opcode_3d->func(ctx); - } else { - unsigned int i; - - instr_out(ctx, 0, "%s\n", opcode_3d->name); - - for (i = 1; i < len; i++) { - instr_out(ctx, i, "dword %d\n", i); - } - return len; - } - } - - instr_out(ctx, 0, "3D UNKNOWN: 3d_965 opcode = 0x%x\n", - opcode); - return 1; -} - -static int -decode_3d_i830(struct drm_intel_decode *ctx) -{ - unsigned int idx; - uint32_t opcode; - uint32_t *data = ctx->data; - - struct { - uint32_t opcode; - unsigned int min_len; - unsigned int max_len; - const char *name; - } opcodes_3d[] = { - { 0x02, 1, 1, "3DSTATE_MODES_3" }, - { 0x03, 1, 1, "3DSTATE_ENABLES_1" }, - { 0x04, 1, 1, "3DSTATE_ENABLES_2" }, - { 0x05, 1, 1, "3DSTATE_VFT0" }, - { 0x06, 1, 1, "3DSTATE_AA" }, - { 0x07, 1, 1, "3DSTATE_RASTERIZATION_RULES" }, - { 0x08, 1, 1, "3DSTATE_MODES_1" }, - { 0x09, 1, 1, "3DSTATE_STENCIL_TEST" }, - { 0x0a, 1, 1, "3DSTATE_VFT1" }, - { 0x0b, 1, 1, "3DSTATE_INDPT_ALPHA_BLEND" }, - { 0x0c, 1, 1, "3DSTATE_MODES_5" }, - { 0x0d, 1, 1, "3DSTATE_MAP_BLEND_OP" }, - { 0x0e, 1, 1, "3DSTATE_MAP_BLEND_ARG" }, - { 0x0f, 1, 1, "3DSTATE_MODES_2" }, - { 0x15, 1, 1, "3DSTATE_FOG_COLOR" }, - { 0x16, 1, 1, "3DSTATE_MODES_4"}, - }, *opcode_3d; - - opcode = (data[0] & 0x1f000000) >> 24; - - switch (opcode) { - case 0x1f: - return decode_3d_primitive(ctx); - case 0x1d: - return decode_3d_1d(ctx); - case 0x1c: - return decode_3d_1c(ctx); - } - - for (idx = 0; idx < ARRAY_SIZE(opcodes_3d); idx++) { - opcode_3d = &opcodes_3d[idx]; - if ((data[0] & 0x1f000000) >> 24 == opcode_3d->opcode) { - unsigned int len = 1, i; - - instr_out(ctx, 0, "%s\n", opcode_3d->name); - if (opcode_3d->max_len > 1) { - len = (data[0] & 0xff) + 2; - if (len < opcode_3d->min_len || - len > opcode_3d->max_len) { - fprintf(out, "Bad count in %s\n", - opcode_3d->name); - } - } - - for (i = 1; i < len; i++) { - instr_out(ctx, i, "dword %d\n", i); - } - return len; - } - } - - instr_out(ctx, 0, "3D UNKNOWN: 3d_i830 opcode = 0x%x\n", - opcode); - return 1; -} - -struct drm_intel_decode * -drm_intel_decode_context_alloc(uint32_t devid) -{ - struct drm_intel_decode *ctx; - - ctx = calloc(1, sizeof(struct drm_intel_decode)); - if (!ctx) - return NULL; - - ctx->devid = devid; - ctx->out = stdout; - - if (IS_GEN8(devid)) - ctx->gen = 8; - else if (IS_GEN7(devid)) - ctx->gen = 7; - else if (IS_GEN6(devid)) - ctx->gen = 6; - else if (IS_GEN5(devid)) - ctx->gen = 5; - else if (IS_GEN4(devid)) - ctx->gen = 4; - else if (IS_9XX(devid)) - ctx->gen = 3; - else { - assert(IS_GEN2(devid)); - ctx->gen = 2; - } - - return ctx; -} - -void -drm_intel_decode_context_free(struct drm_intel_decode *ctx) -{ - free(ctx); -} - -void -drm_intel_decode_set_dump_past_end(struct drm_intel_decode *ctx, - int dump_past_end) -{ - ctx->dump_past_end = !!dump_past_end; -} - -void -drm_intel_decode_set_batch_pointer(struct drm_intel_decode *ctx, - void *data, uint32_t hw_offset, int count) -{ - ctx->base_data = data; - ctx->base_hw_offset = hw_offset; - ctx->base_count = count; -} - -void -drm_intel_decode_set_head_tail(struct drm_intel_decode *ctx, - uint32_t head, uint32_t tail) -{ - ctx->head = head; - ctx->tail = tail; -} - -void -drm_intel_decode_set_output_file(struct drm_intel_decode *ctx, - FILE *out) -{ - ctx->out = out; -} - -/** - * Decodes an i830-i915 batch buffer, writing the output to stdout. - * - * \param data batch buffer contents - * \param count number of DWORDs to decode in the batch buffer - * \param hw_offset hardware address for the buffer - */ -void -drm_intel_decode(struct drm_intel_decode *ctx) -{ - int ret; - unsigned int index = 0; - uint32_t devid; - int size = ctx->base_count * 4; - void *temp; - - if (!ctx) - return; - - /* Put a scratch page full of obviously undefined data after - * the batchbuffer. This lets us avoid a bunch of length - * checking in statically sized packets. - */ - temp = malloc(size + 4096); - memcpy(temp, ctx->base_data, size); - memset((char *)temp + size, 0xd0, 4096); - ctx->data = temp; - - ctx->hw_offset = ctx->base_hw_offset; - ctx->count = ctx->base_count; - - devid = ctx->devid; - head_offset = ctx->head; - tail_offset = ctx->tail; - out = ctx->out; - - saved_s2_set = 0; - saved_s4_set = 1; - - while (ctx->count > 0) { - index = 0; - - switch ((ctx->data[index] & 0xe0000000) >> 29) { - case 0x0: - ret = decode_mi(ctx); - - /* If MI_BATCHBUFFER_END happened, then dump - * the rest of the output in case we some day - * want it in debugging, but don't decode it - * since it'll just confuse in the common - * case. - */ - if (ret == -1) { - if (ctx->dump_past_end) { - index++; - } else { - for (index = index + 1; index < ctx->count; - index++) { - instr_out(ctx, index, "\n"); - } - } - } else - index += ret; - break; - case 0x2: - index += decode_2d(ctx); - break; - case 0x3: - if (IS_9XX(devid) && !IS_GEN3(devid)) { - index += - decode_3d_965(ctx); - } else if (IS_GEN3(devid)) { - index += decode_3d(ctx); - } else { - index += - decode_3d_i830(ctx); - } - break; - default: - instr_out(ctx, index, "UNKNOWN\n"); - index++; - break; - } - fflush(out); - - if (ctx->count < index) - break; - - ctx->count -= index; - ctx->data += index; - ctx->hw_offset += 4 * index; - } - - free(temp); -} diff -Nru libdrm-2.4.52/intel/libdrm_intel.pc.in libdrm-2.4.52+really2.4.21/intel/libdrm_intel.pc.in --- libdrm-2.4.52/intel/libdrm_intel.pc.in 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/libdrm_intel.pc.in 2010-06-07 01:11:45.000000000 +0000 @@ -3,8 +3,8 @@ libdir=@libdir@ includedir=@includedir@ -Name: libdrm_intel -Description: Userspace interface to intel kernel DRM services +Name: libdrm +Description: Userspace interface to kernel DRM services Version: @PACKAGE_VERSION@ Requires: libdrm Libs: -L${libdir} -ldrm_intel diff -Nru libdrm-2.4.52/intel/Makefile.am libdrm-2.4.52+really2.4.21/intel/Makefile.am --- libdrm-2.4.52/intel/Makefile.am 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/Makefile.am 2010-06-07 01:11:45.000000000 +0000 @@ -27,56 +27,23 @@ -I$(top_srcdir) \ -I$(top_srcdir)/intel \ $(PTHREADSTUBS_CFLAGS) \ - $(PCIACCESS_CFLAGS) \ - $(VALGRIND_CFLAGS) \ -I$(top_srcdir)/include/drm libdrm_intel_la_LTLIBRARIES = libdrm_intel.la libdrm_intel_ladir = $(libdir) libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libdrm_intel_la_LIBADD = ../libdrm.la \ - @PTHREADSTUBS_LIBS@ \ - @PCIACCESS_LIBS@ \ - @CLOCK_LIB@ +libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @CLOCK_LIB@ libdrm_intel_la_SOURCES = \ intel_bufmgr.c \ intel_bufmgr_priv.h \ intel_bufmgr_fake.c \ intel_bufmgr_gem.c \ - intel_decode.c \ intel_chipset.h \ mm.c \ mm.h -intel_bufmgr_gem_o_CFLAGS = $(AM_CFLAGS) -c99 - libdrm_intelincludedir = ${includedir}/libdrm -libdrm_intelinclude_HEADERS = intel_bufmgr.h \ - intel_aub.h \ - intel_debug.h - -# This may be interesting even outside of "make check", due to the -dump option. -noinst_PROGRAMS = test_decode - -BATCHES = \ - tests/gen4-3d.batch \ - tests/gm45-3d.batch \ - tests/gen5-3d.batch \ - tests/gen6-3d.batch \ - tests/gen7-2d-copy.batch \ - tests/gen7-3d.batch - -TESTS = \ - $(BATCHES:.batch=.batch.sh) - -EXTRA_DIST = \ - $(BATCHES) \ - $(BATCHES:.batch=.batch.sh) \ - $(BATCHES:.batch=.batch-ref.txt) \ - $(BATCHES:.batch=.batch-ref.txt) \ - tests/test-batch.sh - -test_decode_LDADD = libdrm_intel.la ../libdrm.la +libdrm_intelinclude_HEADERS = intel_bufmgr.h pkgconfig_DATA = libdrm_intel.pc diff -Nru libdrm-2.4.52/intel/Makefile.in libdrm-2.4.52+really2.4.21/intel/Makefile.in --- libdrm-2.4.52/intel/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,1188 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Copyright © 2008 Intel Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. -# -# Authors: -# Eric Anholt - - - - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = test_decode$(EXEEXT) -TESTS = $(am__EXEEXT_1) -subdir = intel -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/libdrm_intel.pc.in $(top_srcdir)/build-aux/depcomp \ - $(libdrm_intelinclude_HEADERS) \ - $(top_srcdir)/build-aux/test-driver -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = libdrm_intel.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdrm_intel_ladir)" \ - "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(libdrm_intelincludedir)" -LTLIBRARIES = $(libdrm_intel_la_LTLIBRARIES) -libdrm_intel_la_DEPENDENCIES = ../libdrm.la -am_libdrm_intel_la_OBJECTS = intel_bufmgr.lo intel_bufmgr_fake.lo \ - intel_bufmgr_gem.lo intel_decode.lo mm.lo -libdrm_intel_la_OBJECTS = $(am_libdrm_intel_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libdrm_intel_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(libdrm_intel_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -PROGRAMS = $(noinst_PROGRAMS) -test_decode_SOURCES = test_decode.c -test_decode_OBJECTS = test_decode.$(OBJEXT) -test_decode_DEPENDENCIES = libdrm_intel.la ../libdrm.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libdrm_intel_la_SOURCES) test_decode.c -DIST_SOURCES = $(libdrm_intel_la_SOURCES) test_decode.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(pkgconfig_DATA) -HEADERS = $(libdrm_intelinclude_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red=''; \ - grn=''; \ - lgn=''; \ - blu=''; \ - mgn=''; \ - brg=''; \ - std=''; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -am__EXEEXT_1 = tests/gen4-3d.batch.sh tests/gm45-3d.batch.sh \ - tests/gen5-3d.batch.sh tests/gen6-3d.batch.sh \ - tests/gen7-2d-copy.batch.sh tests/gen7-3d.batch.sh -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = \ - $(WARN_CFLAGS) \ - -I$(top_srcdir) \ - -I$(top_srcdir)/intel \ - $(PTHREADSTUBS_CFLAGS) \ - $(PCIACCESS_CFLAGS) \ - $(VALGRIND_CFLAGS) \ - -I$(top_srcdir)/include/drm - -libdrm_intel_la_LTLIBRARIES = libdrm_intel.la -libdrm_intel_ladir = $(libdir) -libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libdrm_intel_la_LIBADD = ../libdrm.la \ - @PTHREADSTUBS_LIBS@ \ - @PCIACCESS_LIBS@ \ - @CLOCK_LIB@ - -libdrm_intel_la_SOURCES = \ - intel_bufmgr.c \ - intel_bufmgr_priv.h \ - intel_bufmgr_fake.c \ - intel_bufmgr_gem.c \ - intel_decode.c \ - intel_chipset.h \ - mm.c \ - mm.h - -intel_bufmgr_gem_o_CFLAGS = $(AM_CFLAGS) -c99 -libdrm_intelincludedir = ${includedir}/libdrm -libdrm_intelinclude_HEADERS = intel_bufmgr.h \ - intel_aub.h \ - intel_debug.h - -BATCHES = \ - tests/gen4-3d.batch \ - tests/gm45-3d.batch \ - tests/gen5-3d.batch \ - tests/gen6-3d.batch \ - tests/gen7-2d-copy.batch \ - tests/gen7-3d.batch - -EXTRA_DIST = \ - $(BATCHES) \ - $(BATCHES:.batch=.batch.sh) \ - $(BATCHES:.batch=.batch-ref.txt) \ - $(BATCHES:.batch=.batch-ref.txt) \ - tests/test-batch.sh - -test_decode_LDADD = libdrm_intel.la ../libdrm.la -pkgconfig_DATA = libdrm_intel.pc -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign intel/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign intel/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -libdrm_intel.pc: $(top_builddir)/config.status $(srcdir)/libdrm_intel.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-libdrm_intel_laLTLIBRARIES: $(libdrm_intel_la_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(libdrm_intel_la_LTLIBRARIES)'; test -n "$(libdrm_intel_ladir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_intel_ladir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_intel_ladir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdrm_intel_ladir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdrm_intel_ladir)"; \ - } - -uninstall-libdrm_intel_laLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_intel_la_LTLIBRARIES)'; test -n "$(libdrm_intel_ladir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdrm_intel_ladir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdrm_intel_ladir)/$$f"; \ - done - -clean-libdrm_intel_laLTLIBRARIES: - -test -z "$(libdrm_intel_la_LTLIBRARIES)" || rm -f $(libdrm_intel_la_LTLIBRARIES) - @list='$(libdrm_intel_la_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libdrm_intel.la: $(libdrm_intel_la_OBJECTS) $(libdrm_intel_la_DEPENDENCIES) $(EXTRA_libdrm_intel_la_DEPENDENCIES) - $(AM_V_CCLD)$(libdrm_intel_la_LINK) -rpath $(libdrm_intel_ladir) $(libdrm_intel_la_OBJECTS) $(libdrm_intel_la_LIBADD) $(LIBS) - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -test_decode$(EXEEXT): $(test_decode_OBJECTS) $(test_decode_DEPENDENCIES) $(EXTRA_test_decode_DEPENDENCIES) - @rm -f test_decode$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(test_decode_OBJECTS) $(test_decode_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intel_bufmgr.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intel_bufmgr_fake.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intel_bufmgr_gem.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intel_decode.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_decode.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-libdrm_intelincludeHEADERS: $(libdrm_intelinclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(libdrm_intelinclude_HEADERS)'; test -n "$(libdrm_intelincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_intelincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_intelincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libdrm_intelincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libdrm_intelincludedir)" || exit $$?; \ - done - -uninstall-libdrm_intelincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_intelinclude_HEADERS)'; test -n "$(libdrm_intelincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(libdrm_intelincludedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - else \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tests/gen4-3d.batch.sh.log: tests/gen4-3d.batch.sh - @p='tests/gen4-3d.batch.sh'; \ - b='tests/gen4-3d.batch.sh'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tests/gm45-3d.batch.sh.log: tests/gm45-3d.batch.sh - @p='tests/gm45-3d.batch.sh'; \ - b='tests/gm45-3d.batch.sh'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tests/gen5-3d.batch.sh.log: tests/gen5-3d.batch.sh - @p='tests/gen5-3d.batch.sh'; \ - b='tests/gen5-3d.batch.sh'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tests/gen6-3d.batch.sh.log: tests/gen6-3d.batch.sh - @p='tests/gen6-3d.batch.sh'; \ - b='tests/gen6-3d.batch.sh'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tests/gen7-2d-copy.batch.sh.log: tests/gen7-2d-copy.batch.sh - @p='tests/gen7-2d-copy.batch.sh'; \ - b='tests/gen7-2d-copy.batch.sh'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tests/gen7-3d.batch.sh.log: tests/gen7-3d.batch.sh - @p='tests/gen7-3d.batch.sh'; \ - b='tests/gen7-3d.batch.sh'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libdrm_intel_ladir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libdrm_intelincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libdrm_intel_laLTLIBRARIES clean-libtool \ - clean-noinstPROGRAMS mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-libdrm_intel_laLTLIBRARIES \ - install-libdrm_intelincludeHEADERS install-pkgconfigDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libdrm_intel_laLTLIBRARIES \ - uninstall-libdrm_intelincludeHEADERS uninstall-pkgconfigDATA - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ - clean-generic clean-libdrm_intel_laLTLIBRARIES clean-libtool \ - clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am \ - install-libdrm_intel_laLTLIBRARIES \ - install-libdrm_intelincludeHEADERS install-man install-pdf \ - install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am recheck tags tags-am uninstall \ - uninstall-am uninstall-libdrm_intel_laLTLIBRARIES \ - uninstall-libdrm_intelincludeHEADERS uninstall-pkgconfigDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/intel/test_decode.c libdrm-2.4.52+really2.4.21/intel/test_decode.c --- libdrm-2.4.52/intel/test_decode.c 2013-12-29 06:05:33.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/test_decode.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,194 +0,0 @@ -/* - * Copyright © 2011 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#define _GNU_SOURCE - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "config.h" -#include "intel_bufmgr.h" -#include "intel_chipset.h" - -#define HW_OFFSET 0x12300000 - -static void -usage(void) -{ - fprintf(stderr, "usage:\n"); - fprintf(stderr, " test_decode \n"); - fprintf(stderr, " test_decode -dump\n"); - exit(1); -} - -static void -read_file(const char *filename, void **ptr, size_t *size) -{ - int fd, ret; - struct stat st; - - fd = open(filename, O_RDONLY); - if (fd == -1) - errx(1, "couldn't open `%s'", filename); - - ret = fstat(fd, &st); - if (ret) - errx(1, "couldn't stat `%s'", filename); - - *size = st.st_size; - *ptr = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0); - if (*ptr == MAP_FAILED) - errx(1, "couldn't map `%s'", filename); - - close(fd); -} - -static void -dump_batch(struct drm_intel_decode *ctx, const char *batch_filename) -{ - void *batch_ptr; - size_t batch_size; - - read_file(batch_filename, &batch_ptr, &batch_size); - - drm_intel_decode_set_batch_pointer(ctx, batch_ptr, HW_OFFSET, - batch_size / 4); - drm_intel_decode_set_output_file(ctx, stdout); - - drm_intel_decode(ctx); -} - -static void -compare_batch(struct drm_intel_decode *ctx, const char *batch_filename) -{ - FILE *out = NULL; - void *ptr, *ref_ptr, *batch_ptr; - size_t size, ref_size, batch_size; - const char *ref_suffix = "-ref.txt"; - char *ref_filename; - - ref_filename = malloc(strlen(batch_filename) + strlen(ref_suffix) + 1); - sprintf(ref_filename, "%s%s", batch_filename, ref_suffix); - - /* Read the batch and reference. */ - read_file(batch_filename, &batch_ptr, &batch_size); - read_file(ref_filename, &ref_ptr, &ref_size); - - /* Set up our decode output in memory, because I don't want to - * figure out how to output to a file in a safe and sane way - * inside of an automake project's test infrastructure. - */ -#ifdef HAVE_OPEN_MEMSTREAM - out = open_memstream((char **)&ptr, &size); -#else - fprintf(stderr, "platform lacks open_memstream, skipping.\n"); - exit(77); -#endif - - drm_intel_decode_set_batch_pointer(ctx, batch_ptr, HW_OFFSET, - batch_size / 4); - drm_intel_decode_set_output_file(ctx, out); - - drm_intel_decode(ctx); - - if (strcmp(ref_ptr, ptr) != 0) { - fprintf(stderr, "Decode mismatch with reference `%s'.\n", - ref_filename); - fprintf(stderr, "You can dump the new output using:\n"); - fprintf(stderr, " test_decode \"%s\" -dump\n", batch_filename); - exit(1); - } - - fclose(out); - free(ref_filename); - free(ptr); -} - -static uint16_t -infer_devid(const char *batch_filename) -{ - struct { - const char *name; - uint16_t devid; - } chipsets[] = { - { "830", 0x3577}, - { "855", 0x3582}, - { "945", 0x2772}, - { "gen4", 0x2a02 }, - { "gm45", 0x2a42 }, - { "gen5", PCI_CHIP_ILD_G }, - { "gen6", PCI_CHIP_SANDYBRIDGE_GT2 }, - { "gen7", PCI_CHIP_IVYBRIDGE_GT2 }, - { "gen8", 0x1616 }, - { NULL, 0 }, - }; - int i; - - for (i = 0; chipsets[i].name != NULL; i++) { - if (strstr(batch_filename, chipsets[i].name)) - return chipsets[i].devid; - } - - fprintf(stderr, "Couldn't guess chipset id from batch filename `%s'.\n", - batch_filename); - fprintf(stderr, "Must be contain one of:\n"); - for (i = 0; chipsets[i].name != NULL; i++) { - fprintf(stderr, " %s\n", chipsets[i].name); - } - exit(1); -} - -int -main(int argc, char **argv) -{ - uint16_t devid; - struct drm_intel_decode *ctx; - - if (argc < 2) - usage(); - - - devid = infer_devid(argv[1]); - - ctx = drm_intel_decode_context_alloc(devid); - - if (argc == 3) { - if (strcmp(argv[2], "-dump") == 0) - dump_batch(ctx, argv[1]); - else - usage(); - } else { - compare_batch(ctx, argv[1]); - } - - drm_intel_decode_context_free(ctx); - - return 0; -} Binary files /tmp/ilJbdi2KKe/libdrm-2.4.52/intel/tests/gen4-3d.batch and /tmp/VkZlGYjGwT/libdrm-2.4.52+really2.4.21/intel/tests/gen4-3d.batch differ diff -Nru libdrm-2.4.52/intel/tests/gen4-3d.batch-ref.txt libdrm-2.4.52+really2.4.21/intel/tests/gen4-3d.batch-ref.txt --- libdrm-2.4.52/intel/tests/gen4-3d.batch-ref.txt 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/gen4-3d.batch-ref.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,488 +0,0 @@ -0x12300000: 0x61040000: 3DSTATE_PIPELINE_SELECT -0x12300004: 0x79090000: 3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP -0x12300008: 0x00000000: dword 1 -0x1230000c: 0x61020000: STATE_SIP -0x12300010: 0x00000000: dword 1 -0x12300014: 0x780b0000: 3DSTATE_VF_STATISTICS -0x12300018: 0x61010004: STATE_BASE_ADDRESS -0x1230001c: 0x00000001: general state base address 0x00000000 -0x12300020: 0x00000001: surface state base address 0x00000000 -0x12300024: 0x00000001: indirect state base address 0x00000000 -0x12300028: 0x00000001: general state upper bound disabled -0x1230002c: 0x00000001: indirect state upper bound disabled -0x12300030: 0x78010004: 3DSTATE_BINDING_TABLE_POINTERS -0x12300034: 0x00007e20: VS binding table -0x12300038: 0x00000000: GS binding table -0x1230003c: 0x00000000: Clip binding table -0x12300040: 0x00000000: SF binding table -0x12300044: 0x00007e20: WM binding table -0x12300048: 0x79010003: 3DSTATE_CONSTANT_COLOR -0x1230004c: 0x00000000: dword 1 -0x12300050: 0x00000000: dword 2 -0x12300054: 0x00000000: dword 3 -0x12300058: 0x00000000: dword 4 -0x1230005c: 0x79050003: 3DSTATE_DEPTH_BUFFER -0x12300060: 0x2c0805ff: 2D, z24s8, pitch = 1536 bytes, tiled -0x12300064: 0x00000000: depth offset -0x12300068: 0x09584ac0: 300x300 -0x1230006c: 0x00000000: volume depth -0x12300070: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300074: 0x00007d60: VS state -0x12300078: 0x00000000: GS state -0x1230007c: 0x00007d21: Clip state -0x12300080: 0x00007d80: SF state -0x12300084: 0x00007de0: WM state -0x12300088: 0x00007fc0: CC state -0x1230008c: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300090: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300094: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x12300098: 0x60010000: CS_URB_STATE -0x1230009c: 0x00000024: entry_size: 2 [192 bytes], n_entries: 4 -0x123000a0: 0x79000002: 3DSTATE_DRAWING_RECTANGLE -0x123000a4: 0x00000000: top left: 0,0 -0x123000a8: 0x012b012b: bottom right: 299,299 -0x123000ac: 0x00000000: origin: 0,0 -0x123000b0: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x123000b4: 0x0000000c: buffer 0: sequential, pitch 12b -0x123000b8: 0x00000000: buffer address -0x123000bc: 0x00000000: max index -0x123000c0: 0x00000000: mbz -0x123000c4: 0x78090001: 3DSTATE_VERTEX_ELEMENTS -0x123000c8: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123000cc: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123000d0: 0x60020100: CONSTANT_BUFFER: valid -0x123000d4: 0x00000001: offset: 0x00000000, length: 128 bytes -0x123000d8: 0x7b001804: 3DPRIMITIVE: tri fan sequential -0x123000dc: 0x00000004: vertex count -0x123000e0: 0x00000000: start vertex -0x123000e4: 0x00000001: instance count -0x123000e8: 0x00000000: start instance -0x123000ec: 0x00000000: index bias -0x123000f0: 0x78010004: 3DSTATE_BINDING_TABLE_POINTERS -0x123000f4: 0x00007b40: VS binding table -0x123000f8: 0x00000000: GS binding table -0x123000fc: 0x00000000: Clip binding table -0x12300100: 0x00000000: SF binding table -0x12300104: 0x00007b40: WM binding table -0x12300108: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x1230010c: 0x00007aa0: VS state -0x12300110: 0x00007a41: GS state -0x12300114: 0x00007a61: Clip state -0x12300118: 0x00007ac0: SF state -0x1230011c: 0x00007b00: WM state -0x12300120: 0x00007cc0: CC state -0x12300124: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300128: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x1230012c: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x12300130: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300134: 0x0000000c: buffer 0: sequential, pitch 12b -0x12300138: 0x00000000: buffer address -0x1230013c: 0x00000000: max index -0x12300140: 0x00000000: mbz -0x12300144: 0x60020100: CONSTANT_BUFFER: valid -0x12300148: 0x00000082: offset: 0x00000080, length: 192 bytes -0x1230014c: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300150: 0x00000052: vertex count -0x12300154: 0x00000000: start vertex -0x12300158: 0x00000001: instance count -0x1230015c: 0x00000000: start instance -0x12300160: 0x00000000: index bias -0x12300164: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300168: 0x00007aa0: VS state -0x1230016c: 0x00007a21: GS state -0x12300170: 0x00007a61: Clip state -0x12300174: 0x00007ac0: SF state -0x12300178: 0x00007b00: WM state -0x1230017c: 0x00007cc0: CC state -0x12300180: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300184: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300188: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x1230018c: 0x60020100: CONSTANT_BUFFER: valid -0x12300190: 0x00000082: offset: 0x00000080, length: 192 bytes -0x12300194: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300198: 0x00000050: vertex count -0x1230019c: 0x00000052: start vertex -0x123001a0: 0x00000001: instance count -0x123001a4: 0x00000000: start instance -0x123001a8: 0x00000000: index bias -0x123001ac: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123001b0: 0x00007aa0: VS state -0x123001b4: 0x00007a01: GS state -0x123001b8: 0x00007a61: Clip state -0x123001bc: 0x00007ac0: SF state -0x123001c0: 0x00007b00: WM state -0x123001c4: 0x00007cc0: CC state -0x123001c8: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123001cc: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x123001d0: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x123001d4: 0x60020100: CONSTANT_BUFFER: valid -0x123001d8: 0x00000142: offset: 0x00000140, length: 192 bytes -0x123001dc: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x123001e0: 0x00000052: vertex count -0x123001e4: 0x000000a2: start vertex -0x123001e8: 0x00000001: instance count -0x123001ec: 0x00000000: start instance -0x123001f0: 0x00000000: index bias -0x123001f4: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123001f8: 0x00007aa0: VS state -0x123001fc: 0x000079e1: GS state -0x12300200: 0x00007a61: Clip state -0x12300204: 0x00007ac0: SF state -0x12300208: 0x00007b00: WM state -0x1230020c: 0x00007cc0: CC state -0x12300210: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300214: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300218: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x1230021c: 0x60020100: CONSTANT_BUFFER: valid -0x12300220: 0x00000142: offset: 0x00000140, length: 192 bytes -0x12300224: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300228: 0x00000050: vertex count -0x1230022c: 0x000000f4: start vertex -0x12300230: 0x00000001: instance count -0x12300234: 0x00000000: start instance -0x12300238: 0x00000000: index bias -0x1230023c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300240: 0x00007aa0: VS state -0x12300244: 0x000079c1: GS state -0x12300248: 0x00007a61: Clip state -0x1230024c: 0x00007ac0: SF state -0x12300250: 0x00007b00: WM state -0x12300254: 0x00007cc0: CC state -0x12300258: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x1230025c: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300260: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x12300264: 0x60020100: CONSTANT_BUFFER: valid -0x12300268: 0x00000142: offset: 0x00000140, length: 192 bytes -0x1230026c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300270: 0x000079a0: VS state -0x12300274: 0x000079c1: GS state -0x12300278: 0x00007a61: Clip state -0x1230027c: 0x00007ac0: SF state -0x12300280: 0x00007b00: WM state -0x12300284: 0x00007cc0: CC state -0x12300288: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x1230028c: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300290: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x12300294: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300298: 0x00000018: buffer 0: sequential, pitch 24b -0x1230029c: 0x00000f48: buffer address -0x123002a0: 0x00000000: max index -0x123002a4: 0x00000000: mbz -0x123002a8: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x123002ac: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123002b0: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123002b4: 0x0440000c: buffer 0: valid, type 0x0040, src offset 0x000c bytes -0x123002b8: 0x11130004: (X, Y, Z, 1.0), dst offset 0x10 bytes -0x123002bc: 0x60020100: CONSTANT_BUFFER: valid -0x123002c0: 0x00000202: offset: 0x00000200, length: 192 bytes -0x123002c4: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x123002c8: 0x000000a2: vertex count -0x123002cc: 0x00000000: start vertex -0x123002d0: 0x00000001: instance count -0x123002d4: 0x00000000: start instance -0x123002d8: 0x00000000: index bias -0x123002dc: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123002e0: 0x000079a0: VS state -0x123002e4: 0x00000000: GS state -0x123002e8: 0x00007901: Clip state -0x123002ec: 0x00007940: SF state -0x123002f0: 0x00007960: WM state -0x123002f4: 0x00007cc0: CC state -0x123002f8: 0x00000000: MI_NOOP -0x123002fc: 0x00000000: MI_NOOP -0x12300300: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300304: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300308: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x1230030c: 0x60020100: CONSTANT_BUFFER: valid -0x12300310: 0x00000202: offset: 0x00000200, length: 192 bytes -0x12300314: 0x7b001404: 3DPRIMITIVE: tri strip sequential -0x12300318: 0x0000002a: vertex count -0x1230031c: 0x000000a2: start vertex -0x12300320: 0x00000001: instance count -0x12300324: 0x00000000: start instance -0x12300328: 0x00000000: index bias -0x1230032c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300330: 0x00007860: VS state -0x12300334: 0x00007801: GS state -0x12300338: 0x00007821: Clip state -0x1230033c: 0x00007880: SF state -0x12300340: 0x000078a0: WM state -0x12300344: 0x00007cc0: CC state -0x12300348: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x1230034c: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300350: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x12300354: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300358: 0x0000000c: buffer 0: sequential, pitch 12b -0x1230035c: 0x00002268: buffer address -0x12300360: 0x00000000: max index -0x12300364: 0x00000000: mbz -0x12300368: 0x78090001: 3DSTATE_VERTEX_ELEMENTS -0x1230036c: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x12300370: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300374: 0x60020100: CONSTANT_BUFFER: valid -0x12300378: 0x000002c2: offset: 0x000002c0, length: 192 bytes -0x1230037c: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300380: 0x0000002a: vertex count -0x12300384: 0x00000000: start vertex -0x12300388: 0x00000001: instance count -0x1230038c: 0x00000000: start instance -0x12300390: 0x00000000: index bias -0x12300394: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300398: 0x00007860: VS state -0x1230039c: 0x000077e1: GS state -0x123003a0: 0x00007821: Clip state -0x123003a4: 0x00007880: SF state -0x123003a8: 0x000078a0: WM state -0x123003ac: 0x00007cc0: CC state -0x123003b0: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123003b4: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x123003b8: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x123003bc: 0x60020100: CONSTANT_BUFFER: valid -0x123003c0: 0x000002c2: offset: 0x000002c0, length: 192 bytes -0x123003c4: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x123003c8: 0x00000028: vertex count -0x123003cc: 0x0000002a: start vertex -0x123003d0: 0x00000001: instance count -0x123003d4: 0x00000000: start instance -0x123003d8: 0x00000000: index bias -0x123003dc: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123003e0: 0x00007860: VS state -0x123003e4: 0x000077c1: GS state -0x123003e8: 0x00007821: Clip state -0x123003ec: 0x00007880: SF state -0x123003f0: 0x000078a0: WM state -0x123003f4: 0x00007cc0: CC state -0x123003f8: 0x00000000: MI_NOOP -0x123003fc: 0x00000000: MI_NOOP -0x12300400: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300404: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300408: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x1230040c: 0x60020100: CONSTANT_BUFFER: valid -0x12300410: 0x00000382: offset: 0x00000380, length: 192 bytes -0x12300414: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300418: 0x0000002a: vertex count -0x1230041c: 0x00000052: start vertex -0x12300420: 0x00000001: instance count -0x12300424: 0x00000000: start instance -0x12300428: 0x00000000: index bias -0x1230042c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300430: 0x00007860: VS state -0x12300434: 0x000077a1: GS state -0x12300438: 0x00007821: Clip state -0x1230043c: 0x00007880: SF state -0x12300440: 0x000078a0: WM state -0x12300444: 0x00007cc0: CC state -0x12300448: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x1230044c: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300450: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x12300454: 0x60020100: CONSTANT_BUFFER: valid -0x12300458: 0x00000382: offset: 0x00000380, length: 192 bytes -0x1230045c: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300460: 0x00000028: vertex count -0x12300464: 0x0000007c: start vertex -0x12300468: 0x00000001: instance count -0x1230046c: 0x00000000: start instance -0x12300470: 0x00000000: index bias -0x12300474: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300478: 0x00007860: VS state -0x1230047c: 0x00007781: GS state -0x12300480: 0x00007821: Clip state -0x12300484: 0x00007880: SF state -0x12300488: 0x000078a0: WM state -0x1230048c: 0x00007cc0: CC state -0x12300490: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300494: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300498: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x1230049c: 0x60020100: CONSTANT_BUFFER: valid -0x123004a0: 0x00000382: offset: 0x00000380, length: 192 bytes -0x123004a4: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123004a8: 0x00007760: VS state -0x123004ac: 0x00007781: GS state -0x123004b0: 0x00007821: Clip state -0x123004b4: 0x00007880: SF state -0x123004b8: 0x000078a0: WM state -0x123004bc: 0x00007cc0: CC state -0x123004c0: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123004c4: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x123004c8: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x123004cc: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x123004d0: 0x00000018: buffer 0: sequential, pitch 24b -0x123004d4: 0x00002a30: buffer address -0x123004d8: 0x00000000: max index -0x123004dc: 0x00000000: mbz -0x123004e0: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x123004e4: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123004e8: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123004ec: 0x0440000c: buffer 0: valid, type 0x0040, src offset 0x000c bytes -0x123004f0: 0x11130004: (X, Y, Z, 1.0), dst offset 0x10 bytes -0x123004f4: 0x60020100: CONSTANT_BUFFER: valid -0x123004f8: 0x00000442: offset: 0x00000440, length: 192 bytes -0x123004fc: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300500: 0x00000052: vertex count -0x12300504: 0x00000000: start vertex -0x12300508: 0x00000001: instance count -0x1230050c: 0x00000000: start instance -0x12300510: 0x00000000: index bias -0x12300514: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300518: 0x00007760: VS state -0x1230051c: 0x00000000: GS state -0x12300520: 0x000076c1: Clip state -0x12300524: 0x00007700: SF state -0x12300528: 0x00007720: WM state -0x1230052c: 0x00007cc0: CC state -0x12300530: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300534: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300538: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x1230053c: 0x60020100: CONSTANT_BUFFER: valid -0x12300540: 0x00000442: offset: 0x00000440, length: 192 bytes -0x12300544: 0x7b001404: 3DPRIMITIVE: tri strip sequential -0x12300548: 0x00000016: vertex count -0x1230054c: 0x00000052: start vertex -0x12300550: 0x00000001: instance count -0x12300554: 0x00000000: start instance -0x12300558: 0x00000000: index bias -0x1230055c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300560: 0x00007620: VS state -0x12300564: 0x000075c1: GS state -0x12300568: 0x000075e1: Clip state -0x1230056c: 0x00007640: SF state -0x12300570: 0x00007660: WM state -0x12300574: 0x00007cc0: CC state -0x12300578: 0x00000000: MI_NOOP -0x1230057c: 0x00000000: MI_NOOP -0x12300580: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300584: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300588: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x1230058c: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300590: 0x0000000c: buffer 0: sequential, pitch 12b -0x12300594: 0x000033f0: buffer address -0x12300598: 0x00000000: max index -0x1230059c: 0x00000000: mbz -0x123005a0: 0x78090001: 3DSTATE_VERTEX_ELEMENTS -0x123005a4: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123005a8: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123005ac: 0x60020100: CONSTANT_BUFFER: valid -0x123005b0: 0x00000502: offset: 0x00000500, length: 192 bytes -0x123005b4: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x123005b8: 0x0000002a: vertex count -0x123005bc: 0x00000000: start vertex -0x123005c0: 0x00000001: instance count -0x123005c4: 0x00000000: start instance -0x123005c8: 0x00000000: index bias -0x123005cc: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123005d0: 0x00007620: VS state -0x123005d4: 0x000075a1: GS state -0x123005d8: 0x000075e1: Clip state -0x123005dc: 0x00007640: SF state -0x123005e0: 0x00007660: WM state -0x123005e4: 0x00007cc0: CC state -0x123005e8: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123005ec: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x123005f0: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x123005f4: 0x60020100: CONSTANT_BUFFER: valid -0x123005f8: 0x00000502: offset: 0x00000500, length: 192 bytes -0x123005fc: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300600: 0x00000028: vertex count -0x12300604: 0x0000002a: start vertex -0x12300608: 0x00000001: instance count -0x1230060c: 0x00000000: start instance -0x12300610: 0x00000000: index bias -0x12300614: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300618: 0x00007620: VS state -0x1230061c: 0x00007581: GS state -0x12300620: 0x000075e1: Clip state -0x12300624: 0x00007640: SF state -0x12300628: 0x00007660: WM state -0x1230062c: 0x00007cc0: CC state -0x12300630: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300634: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300638: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x1230063c: 0x60020100: CONSTANT_BUFFER: valid -0x12300640: 0x000005c2: offset: 0x000005c0, length: 192 bytes -0x12300644: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300648: 0x0000002a: vertex count -0x1230064c: 0x00000052: start vertex -0x12300650: 0x00000001: instance count -0x12300654: 0x00000000: start instance -0x12300658: 0x00000000: index bias -0x1230065c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300660: 0x00007620: VS state -0x12300664: 0x00007561: GS state -0x12300668: 0x000075e1: Clip state -0x1230066c: 0x00007640: SF state -0x12300670: 0x00007660: WM state -0x12300674: 0x00007cc0: CC state -0x12300678: 0x00000000: MI_NOOP -0x1230067c: 0x00000000: MI_NOOP -0x12300680: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300684: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300688: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x1230068c: 0x60020100: CONSTANT_BUFFER: valid -0x12300690: 0x000005c2: offset: 0x000005c0, length: 192 bytes -0x12300694: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300698: 0x00000028: vertex count -0x1230069c: 0x0000007c: start vertex -0x123006a0: 0x00000001: instance count -0x123006a4: 0x00000000: start instance -0x123006a8: 0x00000000: index bias -0x123006ac: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123006b0: 0x00007620: VS state -0x123006b4: 0x00007541: GS state -0x123006b8: 0x000075e1: Clip state -0x123006bc: 0x00007640: SF state -0x123006c0: 0x00007660: WM state -0x123006c4: 0x00007cc0: CC state -0x123006c8: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123006cc: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x123006d0: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x123006d4: 0x60020100: CONSTANT_BUFFER: valid -0x123006d8: 0x000005c2: offset: 0x000005c0, length: 192 bytes -0x123006dc: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123006e0: 0x00007520: VS state -0x123006e4: 0x00007541: GS state -0x123006e8: 0x000075e1: Clip state -0x123006ec: 0x00007640: SF state -0x123006f0: 0x00007660: WM state -0x123006f4: 0x00007cc0: CC state -0x123006f8: 0x00000000: MI_NOOP -0x123006fc: 0x00000000: MI_NOOP -0x12300700: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300704: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300708: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x1230070c: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300710: 0x00000018: buffer 0: sequential, pitch 24b -0x12300714: 0x00003bb8: buffer address -0x12300718: 0x00000000: max index -0x1230071c: 0x00000000: mbz -0x12300720: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x12300724: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x12300728: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x1230072c: 0x0440000c: buffer 0: valid, type 0x0040, src offset 0x000c bytes -0x12300730: 0x11130004: (X, Y, Z, 1.0), dst offset 0x10 bytes -0x12300734: 0x60020100: CONSTANT_BUFFER: valid -0x12300738: 0x00000682: offset: 0x00000680, length: 192 bytes -0x1230073c: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300740: 0x00000052: vertex count -0x12300744: 0x00000000: start vertex -0x12300748: 0x00000001: instance count -0x1230074c: 0x00000000: start instance -0x12300750: 0x00000000: index bias -0x12300754: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300758: 0x00007520: VS state -0x1230075c: 0x00000000: GS state -0x12300760: 0x00007481: Clip state -0x12300764: 0x000074c0: SF state -0x12300768: 0x000074e0: WM state -0x1230076c: 0x00007cc0: CC state -0x12300770: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300774: 0x0320a020: vs fence: 32, clip_fence: 50, gs_fence: 40 -0x12300778: 0x10000042: sf fence: 66, vfe_fence: 0, cs_fence: 256 -0x1230077c: 0x60020100: CONSTANT_BUFFER: valid -0x12300780: 0x00000682: offset: 0x00000680, length: 192 bytes -0x12300784: 0x7b001404: 3DPRIMITIVE: tri strip sequential -0x12300788: 0x00000016: vertex count -0x1230078c: 0x00000052: start vertex -0x12300790: 0x00000001: instance count -0x12300794: 0x00000000: start instance -0x12300798: 0x00000000: index bias -0x1230079c: 0x05000000: MI_BATCH_BUFFER_END diff -Nru libdrm-2.4.52/intel/tests/gen4-3d.batch.sh libdrm-2.4.52+really2.4.21/intel/tests/gen4-3d.batch.sh --- libdrm-2.4.52/intel/tests/gen4-3d.batch.sh 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/gen4-3d.batch.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#!/bin/sh - -TEST_FILENAME=`echo "$0" | sed 's|.sh||'` -./test_decode $TEST_FILENAME - -ret=$? - -# pretty-print a diff showing what happened, and leave the dumped -# around for possibly moving over the ref. -if test $ret = 1; then - REF_FILENAME="$TEST_FILENAME-ref.txt" - NEW_FILENAME="$TEST_FILENAME-new.txt" - ./test_decode $TEST_FILENAME -dump > $NEW_FILENAME - if test $? = 0; then - echo "Differences:" - diff -u $REF_FILENAME $NEW_FILENAME - fi -fi - -exit $ret Binary files /tmp/ilJbdi2KKe/libdrm-2.4.52/intel/tests/gen5-3d.batch and /tmp/VkZlGYjGwT/libdrm-2.4.52+really2.4.21/intel/tests/gen5-3d.batch differ diff -Nru libdrm-2.4.52/intel/tests/gen5-3d.batch-ref.txt libdrm-2.4.52+really2.4.21/intel/tests/gen5-3d.batch-ref.txt --- libdrm-2.4.52/intel/tests/gen5-3d.batch-ref.txt 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/gen5-3d.batch-ref.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,512 +0,0 @@ -0x12300000: 0x69040000: 3DSTATE_PIPELINE_SELECT -0x12300004: 0x79090000: 3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP -0x12300008: 0x00000000: dword 1 -0x1230000c: 0x61020000: STATE_SIP -0x12300010: 0x00000000: dword 1 -0x12300014: 0x680b0000: 3DSTATE_VF_STATISTICS -0x12300018: 0x61010006: STATE_BASE_ADDRESS -0x1230001c: 0x00000001: general state base address 0x00000000 -0x12300020: 0x00000001: surface state base address 0x00000000 -0x12300024: 0x00000001: indirect state base address 0x00000000 -0x12300028: 0x00000001: instruction state base address 0x00000000 -0x1230002c: 0x00000001: general state upper bound disabled -0x12300030: 0x00000001: indirect state upper bound disabled -0x12300034: 0x00000001: instruction state upper bound disabled -0x12300038: 0x78010004: 3DSTATE_BINDING_TABLE_POINTERS -0x1230003c: 0x00007e20: VS binding table -0x12300040: 0x00000000: GS binding table -0x12300044: 0x00000000: Clip binding table -0x12300048: 0x00000000: SF binding table -0x1230004c: 0x00007e20: WM binding table -0x12300050: 0x79010003: 3DSTATE_CONSTANT_COLOR -0x12300054: 0x00000000: dword 1 -0x12300058: 0x00000000: dword 2 -0x1230005c: 0x00000000: dword 3 -0x12300060: 0x00000000: dword 4 -0x12300064: 0x79050004: 3DSTATE_DEPTH_BUFFER -0x12300068: 0x2c0805ff: 2D, z24s8, pitch = 1536 bytes, tiled, HiZ 0, Seperate Stencil 0 -0x1230006c: 0x00000000: depth offset -0x12300070: 0x09584ac0: 300x300 -0x12300074: 0x00000000: volume depth -0x12300078: 0x00000000: -0x1230007c: 0x02000000: MI_FLUSH -0x12300080: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300084: 0x00007d60: VS state -0x12300088: 0x00000000: GS state -0x1230008c: 0x00007d21: Clip state -0x12300090: 0x00007d80: SF state -0x12300094: 0x00007de0: WM state -0x12300098: 0x00007fc0: CC state -0x1230009c: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123000a0: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x123000a4: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x123000a8: 0x60010000: CS_URB_STATE -0x123000ac: 0x00000024: entry_size: 2 [192 bytes], n_entries: 4 -0x123000b0: 0x79000002: 3DSTATE_DRAWING_RECTANGLE -0x123000b4: 0x00000000: top left: 0,0 -0x123000b8: 0x012b012b: bottom right: 299,299 -0x123000bc: 0x00000000: origin: 0,0 -0x123000c0: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x123000c4: 0x0000000c: buffer 0: sequential, pitch 12b -0x123000c8: 0x00000000: buffer address -0x123000cc: 0x0000ffff: max index -0x123000d0: 0x00000000: mbz -0x123000d4: 0x78090001: 3DSTATE_VERTEX_ELEMENTS -0x123000d8: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123000dc: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123000e0: 0x60020100: CONSTANT_BUFFER: valid -0x123000e4: 0x00000001: offset: 0x00000000, length: 128 bytes -0x123000e8: 0x7b001804: 3DPRIMITIVE: tri fan sequential -0x123000ec: 0x00000004: vertex count -0x123000f0: 0x00000000: start vertex -0x123000f4: 0x00000001: instance count -0x123000f8: 0x00000000: start instance -0x123000fc: 0x00000000: index bias -0x12300100: 0x78010004: 3DSTATE_BINDING_TABLE_POINTERS -0x12300104: 0x00007b40: VS binding table -0x12300108: 0x00000000: GS binding table -0x1230010c: 0x00000000: Clip binding table -0x12300110: 0x00000000: SF binding table -0x12300114: 0x00007b40: WM binding table -0x12300118: 0x02000000: MI_FLUSH -0x1230011c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300120: 0x00007aa0: VS state -0x12300124: 0x00007a41: GS state -0x12300128: 0x00007a61: Clip state -0x1230012c: 0x00007ac0: SF state -0x12300130: 0x00007b00: WM state -0x12300134: 0x00007cc0: CC state -0x12300138: 0x00000000: MI_NOOP -0x1230013c: 0x00000000: MI_NOOP -0x12300140: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300144: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x12300148: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x1230014c: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300150: 0x0000000c: buffer 0: sequential, pitch 12b -0x12300154: 0x00000000: buffer address -0x12300158: 0x00007fff: max index -0x1230015c: 0x00000000: mbz -0x12300160: 0x60020100: CONSTANT_BUFFER: valid -0x12300164: 0x00000082: offset: 0x00000080, length: 192 bytes -0x12300168: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x1230016c: 0x00000052: vertex count -0x12300170: 0x00000000: start vertex -0x12300174: 0x00000001: instance count -0x12300178: 0x00000000: start instance -0x1230017c: 0x00000000: index bias -0x12300180: 0x02000000: MI_FLUSH -0x12300184: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300188: 0x00007aa0: VS state -0x1230018c: 0x00007a21: GS state -0x12300190: 0x00007a61: Clip state -0x12300194: 0x00007ac0: SF state -0x12300198: 0x00007b00: WM state -0x1230019c: 0x00007cc0: CC state -0x123001a0: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123001a4: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x123001a8: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x123001ac: 0x60020100: CONSTANT_BUFFER: valid -0x123001b0: 0x00000082: offset: 0x00000080, length: 192 bytes -0x123001b4: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x123001b8: 0x00000050: vertex count -0x123001bc: 0x00000052: start vertex -0x123001c0: 0x00000001: instance count -0x123001c4: 0x00000000: start instance -0x123001c8: 0x00000000: index bias -0x123001cc: 0x02000000: MI_FLUSH -0x123001d0: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123001d4: 0x00007aa0: VS state -0x123001d8: 0x00007a01: GS state -0x123001dc: 0x00007a61: Clip state -0x123001e0: 0x00007ac0: SF state -0x123001e4: 0x00007b00: WM state -0x123001e8: 0x00007cc0: CC state -0x123001ec: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123001f0: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x123001f4: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x123001f8: 0x60020100: CONSTANT_BUFFER: valid -0x123001fc: 0x00000142: offset: 0x00000140, length: 192 bytes -0x12300200: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300204: 0x00000052: vertex count -0x12300208: 0x000000a2: start vertex -0x1230020c: 0x00000001: instance count -0x12300210: 0x00000000: start instance -0x12300214: 0x00000000: index bias -0x12300218: 0x02000000: MI_FLUSH -0x1230021c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300220: 0x00007aa0: VS state -0x12300224: 0x000079e1: GS state -0x12300228: 0x00007a61: Clip state -0x1230022c: 0x00007ac0: SF state -0x12300230: 0x00007b00: WM state -0x12300234: 0x00007cc0: CC state -0x12300238: 0x00000000: MI_NOOP -0x1230023c: 0x00000000: MI_NOOP -0x12300240: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300244: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x12300248: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x1230024c: 0x60020100: CONSTANT_BUFFER: valid -0x12300250: 0x00000142: offset: 0x00000140, length: 192 bytes -0x12300254: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300258: 0x00000050: vertex count -0x1230025c: 0x000000f4: start vertex -0x12300260: 0x00000001: instance count -0x12300264: 0x00000000: start instance -0x12300268: 0x00000000: index bias -0x1230026c: 0x02000000: MI_FLUSH -0x12300270: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300274: 0x00007aa0: VS state -0x12300278: 0x000079c1: GS state -0x1230027c: 0x00007a61: Clip state -0x12300280: 0x00007ac0: SF state -0x12300284: 0x00007b00: WM state -0x12300288: 0x00007cc0: CC state -0x1230028c: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300290: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x12300294: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x12300298: 0x60020100: CONSTANT_BUFFER: valid -0x1230029c: 0x00000142: offset: 0x00000140, length: 192 bytes -0x123002a0: 0x02000000: MI_FLUSH -0x123002a4: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123002a8: 0x000079a0: VS state -0x123002ac: 0x000079c1: GS state -0x123002b0: 0x00007a61: Clip state -0x123002b4: 0x00007ac0: SF state -0x123002b8: 0x00007b00: WM state -0x123002bc: 0x00007cc0: CC state -0x123002c0: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123002c4: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x123002c8: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x123002cc: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x123002d0: 0x00000018: buffer 0: sequential, pitch 24b -0x123002d4: 0x00000f48: buffer address -0x123002d8: 0x00007fff: max index -0x123002dc: 0x00000000: mbz -0x123002e0: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x123002e4: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123002e8: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123002ec: 0x0440000c: buffer 0: valid, type 0x0040, src offset 0x000c bytes -0x123002f0: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123002f4: 0x60020100: CONSTANT_BUFFER: valid -0x123002f8: 0x00000202: offset: 0x00000200, length: 192 bytes -0x123002fc: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300300: 0x000000a2: vertex count -0x12300304: 0x00000000: start vertex -0x12300308: 0x00000001: instance count -0x1230030c: 0x00000000: start instance -0x12300310: 0x00000000: index bias -0x12300314: 0x02000000: MI_FLUSH -0x12300318: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x1230031c: 0x000079a0: VS state -0x12300320: 0x00000000: GS state -0x12300324: 0x00007901: Clip state -0x12300328: 0x00007940: SF state -0x1230032c: 0x00007960: WM state -0x12300330: 0x00007cc0: CC state -0x12300334: 0x00000000: MI_NOOP -0x12300338: 0x00000000: MI_NOOP -0x1230033c: 0x00000000: MI_NOOP -0x12300340: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300344: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x12300348: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x1230034c: 0x60020100: CONSTANT_BUFFER: valid -0x12300350: 0x00000202: offset: 0x00000200, length: 192 bytes -0x12300354: 0x7b001404: 3DPRIMITIVE: tri strip sequential -0x12300358: 0x0000002a: vertex count -0x1230035c: 0x000000a2: start vertex -0x12300360: 0x00000001: instance count -0x12300364: 0x00000000: start instance -0x12300368: 0x00000000: index bias -0x1230036c: 0x02000000: MI_FLUSH -0x12300370: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300374: 0x00007860: VS state -0x12300378: 0x00007801: GS state -0x1230037c: 0x00007821: Clip state -0x12300380: 0x00007880: SF state -0x12300384: 0x000078a0: WM state -0x12300388: 0x00007cc0: CC state -0x1230038c: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300390: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x12300394: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x12300398: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x1230039c: 0x0000000c: buffer 0: sequential, pitch 12b -0x123003a0: 0x00002268: buffer address -0x123003a4: 0x00007fff: max index -0x123003a8: 0x00000000: mbz -0x123003ac: 0x78090001: 3DSTATE_VERTEX_ELEMENTS -0x123003b0: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123003b4: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123003b8: 0x60020100: CONSTANT_BUFFER: valid -0x123003bc: 0x000002c2: offset: 0x000002c0, length: 192 bytes -0x123003c0: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x123003c4: 0x0000002a: vertex count -0x123003c8: 0x00000000: start vertex -0x123003cc: 0x00000001: instance count -0x123003d0: 0x00000000: start instance -0x123003d4: 0x00000000: index bias -0x123003d8: 0x02000000: MI_FLUSH -0x123003dc: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123003e0: 0x00007860: VS state -0x123003e4: 0x000077e1: GS state -0x123003e8: 0x00007821: Clip state -0x123003ec: 0x00007880: SF state -0x123003f0: 0x000078a0: WM state -0x123003f4: 0x00007cc0: CC state -0x123003f8: 0x00000000: MI_NOOP -0x123003fc: 0x00000000: MI_NOOP -0x12300400: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300404: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x12300408: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x1230040c: 0x60020100: CONSTANT_BUFFER: valid -0x12300410: 0x000002c2: offset: 0x000002c0, length: 192 bytes -0x12300414: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300418: 0x00000028: vertex count -0x1230041c: 0x0000002a: start vertex -0x12300420: 0x00000001: instance count -0x12300424: 0x00000000: start instance -0x12300428: 0x00000000: index bias -0x1230042c: 0x02000000: MI_FLUSH -0x12300430: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300434: 0x00007860: VS state -0x12300438: 0x000077c1: GS state -0x1230043c: 0x00007821: Clip state -0x12300440: 0x00007880: SF state -0x12300444: 0x000078a0: WM state -0x12300448: 0x00007cc0: CC state -0x1230044c: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300450: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x12300454: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x12300458: 0x60020100: CONSTANT_BUFFER: valid -0x1230045c: 0x00000382: offset: 0x00000380, length: 192 bytes -0x12300460: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300464: 0x0000002a: vertex count -0x12300468: 0x00000052: start vertex -0x1230046c: 0x00000001: instance count -0x12300470: 0x00000000: start instance -0x12300474: 0x00000000: index bias -0x12300478: 0x02000000: MI_FLUSH -0x1230047c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300480: 0x00007860: VS state -0x12300484: 0x000077a1: GS state -0x12300488: 0x00007821: Clip state -0x1230048c: 0x00007880: SF state -0x12300490: 0x000078a0: WM state -0x12300494: 0x00007cc0: CC state -0x12300498: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x1230049c: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x123004a0: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x123004a4: 0x60020100: CONSTANT_BUFFER: valid -0x123004a8: 0x00000382: offset: 0x00000380, length: 192 bytes -0x123004ac: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x123004b0: 0x00000028: vertex count -0x123004b4: 0x0000007c: start vertex -0x123004b8: 0x00000001: instance count -0x123004bc: 0x00000000: start instance -0x123004c0: 0x00000000: index bias -0x123004c4: 0x02000000: MI_FLUSH -0x123004c8: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123004cc: 0x00007860: VS state -0x123004d0: 0x00007781: GS state -0x123004d4: 0x00007821: Clip state -0x123004d8: 0x00007880: SF state -0x123004dc: 0x000078a0: WM state -0x123004e0: 0x00007cc0: CC state -0x123004e4: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123004e8: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x123004ec: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x123004f0: 0x60020100: CONSTANT_BUFFER: valid -0x123004f4: 0x00000382: offset: 0x00000380, length: 192 bytes -0x123004f8: 0x02000000: MI_FLUSH -0x123004fc: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300500: 0x00007760: VS state -0x12300504: 0x00007781: GS state -0x12300508: 0x00007821: Clip state -0x1230050c: 0x00007880: SF state -0x12300510: 0x000078a0: WM state -0x12300514: 0x00007cc0: CC state -0x12300518: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x1230051c: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x12300520: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x12300524: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300528: 0x00000018: buffer 0: sequential, pitch 24b -0x1230052c: 0x00002a30: buffer address -0x12300530: 0x00007fff: max index -0x12300534: 0x00000000: mbz -0x12300538: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x1230053c: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x12300540: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300544: 0x0440000c: buffer 0: valid, type 0x0040, src offset 0x000c bytes -0x12300548: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x1230054c: 0x60020100: CONSTANT_BUFFER: valid -0x12300550: 0x00000442: offset: 0x00000440, length: 192 bytes -0x12300554: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300558: 0x00000052: vertex count -0x1230055c: 0x00000000: start vertex -0x12300560: 0x00000001: instance count -0x12300564: 0x00000000: start instance -0x12300568: 0x00000000: index bias -0x1230056c: 0x02000000: MI_FLUSH -0x12300570: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300574: 0x00007760: VS state -0x12300578: 0x00000000: GS state -0x1230057c: 0x000076c1: Clip state -0x12300580: 0x00007700: SF state -0x12300584: 0x00007720: WM state -0x12300588: 0x00007cc0: CC state -0x1230058c: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300590: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x12300594: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x12300598: 0x60020100: CONSTANT_BUFFER: valid -0x1230059c: 0x00000442: offset: 0x00000440, length: 192 bytes -0x123005a0: 0x7b001404: 3DPRIMITIVE: tri strip sequential -0x123005a4: 0x00000016: vertex count -0x123005a8: 0x00000052: start vertex -0x123005ac: 0x00000001: instance count -0x123005b0: 0x00000000: start instance -0x123005b4: 0x00000000: index bias -0x123005b8: 0x02000000: MI_FLUSH -0x123005bc: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123005c0: 0x00007620: VS state -0x123005c4: 0x000075c1: GS state -0x123005c8: 0x000075e1: Clip state -0x123005cc: 0x00007640: SF state -0x123005d0: 0x00007660: WM state -0x123005d4: 0x00007cc0: CC state -0x123005d8: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123005dc: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x123005e0: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x123005e4: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x123005e8: 0x0000000c: buffer 0: sequential, pitch 12b -0x123005ec: 0x000033f0: buffer address -0x123005f0: 0x00007fff: max index -0x123005f4: 0x00000000: mbz -0x123005f8: 0x78090001: 3DSTATE_VERTEX_ELEMENTS -0x123005fc: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x12300600: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300604: 0x60020100: CONSTANT_BUFFER: valid -0x12300608: 0x00000502: offset: 0x00000500, length: 192 bytes -0x1230060c: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300610: 0x0000002a: vertex count -0x12300614: 0x00000000: start vertex -0x12300618: 0x00000001: instance count -0x1230061c: 0x00000000: start instance -0x12300620: 0x00000000: index bias -0x12300624: 0x02000000: MI_FLUSH -0x12300628: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x1230062c: 0x00007620: VS state -0x12300630: 0x000075a1: GS state -0x12300634: 0x000075e1: Clip state -0x12300638: 0x00007640: SF state -0x1230063c: 0x00007660: WM state -0x12300640: 0x00007cc0: CC state -0x12300644: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300648: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x1230064c: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x12300650: 0x60020100: CONSTANT_BUFFER: valid -0x12300654: 0x00000502: offset: 0x00000500, length: 192 bytes -0x12300658: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x1230065c: 0x00000028: vertex count -0x12300660: 0x0000002a: start vertex -0x12300664: 0x00000001: instance count -0x12300668: 0x00000000: start instance -0x1230066c: 0x00000000: index bias -0x12300670: 0x02000000: MI_FLUSH -0x12300674: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300678: 0x00007620: VS state -0x1230067c: 0x00007581: GS state -0x12300680: 0x000075e1: Clip state -0x12300684: 0x00007640: SF state -0x12300688: 0x00007660: WM state -0x1230068c: 0x00007cc0: CC state -0x12300690: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300694: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x12300698: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x1230069c: 0x60020100: CONSTANT_BUFFER: valid -0x123006a0: 0x000005c2: offset: 0x000005c0, length: 192 bytes -0x123006a4: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x123006a8: 0x0000002a: vertex count -0x123006ac: 0x00000052: start vertex -0x123006b0: 0x00000001: instance count -0x123006b4: 0x00000000: start instance -0x123006b8: 0x00000000: index bias -0x123006bc: 0x02000000: MI_FLUSH -0x123006c0: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123006c4: 0x00007620: VS state -0x123006c8: 0x00007561: GS state -0x123006cc: 0x000075e1: Clip state -0x123006d0: 0x00007640: SF state -0x123006d4: 0x00007660: WM state -0x123006d8: 0x00007cc0: CC state -0x123006dc: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123006e0: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x123006e4: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x123006e8: 0x60020100: CONSTANT_BUFFER: valid -0x123006ec: 0x000005c2: offset: 0x000005c0, length: 192 bytes -0x123006f0: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x123006f4: 0x00000028: vertex count -0x123006f8: 0x0000007c: start vertex -0x123006fc: 0x00000001: instance count -0x12300700: 0x00000000: start instance -0x12300704: 0x00000000: index bias -0x12300708: 0x02000000: MI_FLUSH -0x1230070c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300710: 0x00007620: VS state -0x12300714: 0x00007541: GS state -0x12300718: 0x000075e1: Clip state -0x1230071c: 0x00007640: SF state -0x12300720: 0x00007660: WM state -0x12300724: 0x00007cc0: CC state -0x12300728: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x1230072c: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x12300730: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x12300734: 0x60020100: CONSTANT_BUFFER: valid -0x12300738: 0x000005c2: offset: 0x000005c0, length: 192 bytes -0x1230073c: 0x02000000: MI_FLUSH -0x12300740: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300744: 0x00007520: VS state -0x12300748: 0x00007541: GS state -0x1230074c: 0x000075e1: Clip state -0x12300750: 0x00007640: SF state -0x12300754: 0x00007660: WM state -0x12300758: 0x00007cc0: CC state -0x1230075c: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300760: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x12300764: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x12300768: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x1230076c: 0x00000018: buffer 0: sequential, pitch 24b -0x12300770: 0x00003bb8: buffer address -0x12300774: 0x00007fff: max index -0x12300778: 0x00000000: mbz -0x1230077c: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x12300780: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x12300784: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300788: 0x0440000c: buffer 0: valid, type 0x0040, src offset 0x000c bytes -0x1230078c: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300790: 0x60020100: CONSTANT_BUFFER: valid -0x12300794: 0x00000682: offset: 0x00000680, length: 192 bytes -0x12300798: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x1230079c: 0x00000052: vertex count -0x123007a0: 0x00000000: start vertex -0x123007a4: 0x00000001: instance count -0x123007a8: 0x00000000: start instance -0x123007ac: 0x00000000: index bias -0x123007b0: 0x02000000: MI_FLUSH -0x123007b4: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123007b8: 0x00007520: VS state -0x123007bc: 0x00000000: GS state -0x123007c0: 0x00007481: Clip state -0x123007c4: 0x000074c0: SF state -0x123007c8: 0x000074e0: WM state -0x123007cc: 0x00007cc0: CC state -0x123007d0: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123007d4: 0x12444100: vs fence: 256, clip_fence: 292, gs_fence: 272 -0x123007d8: 0x40000184: sf fence: 388, vfe_fence: 0, cs_fence: 1024 -0x123007dc: 0x60020100: CONSTANT_BUFFER: valid -0x123007e0: 0x00000682: offset: 0x00000680, length: 192 bytes -0x123007e4: 0x7b001404: 3DPRIMITIVE: tri strip sequential -0x123007e8: 0x00000016: vertex count -0x123007ec: 0x00000052: start vertex -0x123007f0: 0x00000001: instance count -0x123007f4: 0x00000000: start instance -0x123007f8: 0x00000000: index bias -0x123007fc: 0x05000000: MI_BATCH_BUFFER_END diff -Nru libdrm-2.4.52/intel/tests/gen5-3d.batch.sh libdrm-2.4.52+really2.4.21/intel/tests/gen5-3d.batch.sh --- libdrm-2.4.52/intel/tests/gen5-3d.batch.sh 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/gen5-3d.batch.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#!/bin/sh - -TEST_FILENAME=`echo "$0" | sed 's|.sh||'` -./test_decode $TEST_FILENAME - -ret=$? - -# pretty-print a diff showing what happened, and leave the dumped -# around for possibly moving over the ref. -if test $ret = 1; then - REF_FILENAME="$TEST_FILENAME-ref.txt" - NEW_FILENAME="$TEST_FILENAME-new.txt" - ./test_decode $TEST_FILENAME -dump > $NEW_FILENAME - if test $? = 0; then - echo "Differences:" - diff -u $REF_FILENAME $NEW_FILENAME - fi -fi - -exit $ret Binary files /tmp/ilJbdi2KKe/libdrm-2.4.52/intel/tests/gen6-3d.batch and /tmp/VkZlGYjGwT/libdrm-2.4.52+really2.4.21/intel/tests/gen6-3d.batch differ diff -Nru libdrm-2.4.52/intel/tests/gen6-3d.batch-ref.txt libdrm-2.4.52+really2.4.21/intel/tests/gen6-3d.batch-ref.txt --- libdrm-2.4.52/intel/tests/gen6-3d.batch-ref.txt 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/gen6-3d.batch-ref.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,990 +0,0 @@ -0x12300000: 0x7a000002: PIPE_CONTROL -0x12300004: 0x00100002: no write, cs stall, stall at scoreboard, -0x12300008: 0x00000000: -0x1230000c: 0x00000000: -0x12300010: 0x7a000002: PIPE_CONTROL -0x12300014: 0x00004000: qword write, -0x12300018: 0x00000000: -0x1230001c: 0x00000000: -0x12300020: 0x69040000: 3DSTATE_PIPELINE_SELECT -0x12300024: 0x790d0001: 3DSTATE_MULTISAMPLE -0x12300028: 0x00000000: dword 1 -0x1230002c: 0x00000000: dword 2 -0x12300030: 0x78180000: 3DSTATE_SAMPLE_MASK -0x12300034: 0x00000001: dword 1 -0x12300038: 0x790b0002: 3DSTATE_GS_SVB_INDEX -0x1230003c: 0x00000000: dword 1 -0x12300040: 0x00000000: dword 2 -0x12300044: 0xffffffff: dword 3 -0x12300048: 0x790b0002: 3DSTATE_GS_SVB_INDEX -0x1230004c: 0x20000000: dword 1 -0x12300050: 0x00000000: dword 2 -0x12300054: 0xffffffff: dword 3 -0x12300058: 0x790b0002: 3DSTATE_GS_SVB_INDEX -0x1230005c: 0x40000000: dword 1 -0x12300060: 0x00000000: dword 2 -0x12300064: 0xffffffff: dword 3 -0x12300068: 0x790b0002: 3DSTATE_GS_SVB_INDEX -0x1230006c: 0x60000000: dword 1 -0x12300070: 0x00000000: dword 2 -0x12300074: 0xffffffff: dword 3 -0x12300078: 0x61020000: STATE_SIP -0x1230007c: 0x00000000: dword 1 -0x12300080: 0x680b0000: 3DSTATE_VF_STATISTICS -0x12300084: 0x61010008: STATE_BASE_ADDRESS -0x12300088: 0x00000001: general state base address 0x00000000 -0x1230008c: 0x00000001: surface state base address 0x00000000 -0x12300090: 0x00000001: dynamic state base address 0x00000000 -0x12300094: 0x00000001: indirect state base address 0x00000000 -0x12300098: 0x00000001: instruction state base address 0x00000000 -0x1230009c: 0x00000001: general state upper bound disabled -0x123000a0: 0x00000001: dynamic state upper bound disabled -0x123000a4: 0x00000001: indirect state upper bound disabled -0x123000a8: 0x00000001: instruction state upper bound disabled -0x123000ac: 0x780d1c02: 3DSTATE_VIEWPORT_STATE_POINTERS -0x123000b0: 0x00007fe0: clip -0x123000b4: 0x00007fc0: sf -0x123000b8: 0x00007fa0: cc -0x123000bc: 0x78050001: 3DSTATE_URB -0x123000c0: 0x00000100: VS entries 256, alloc size 1 (1024bit row) -0x123000c4: 0x00000000: GS entries 0, alloc size 1 (1024bit row) -0x123000c8: 0x780e0002: 3DSTATE_CC_STATE_POINTERS -0x123000cc: 0x00007f81: blend change 1 -0x123000d0: 0x00007f01: depth stencil change 1 -0x123000d4: 0x00007f41: cc change 1 -0x123000d8: 0x78021302: 3DSTATE_SAMPLER_STATE_POINTERS: VS mod 1, GS mod 1, PS mod 1 -0x123000dc: 0x00000000: VS sampler state -0x123000e0: 0x00000000: GS sampler state -0x123000e4: 0x00000000: WM sampler state -0x123000e8: 0x78150003: 3DSTATE_CONSTANT_VS_STATE -0x123000ec: 0x00000000: dword 1 -0x123000f0: 0x00000000: dword 2 -0x123000f4: 0x00000000: dword 3 -0x123000f8: 0x00000000: dword 4 -0x123000fc: 0x78100004: 3DSTATE_VS -0x12300100: 0x00000000: kernel pointer -0x12300104: 0x00000000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300108: 0x00000000: scratch offset -0x1230010c: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x12300110: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x12300114: 0x7a000002: PIPE_CONTROL -0x12300118: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x1230011c: 0x00000000: -0x12300120: 0x00000000: -0x12300124: 0x78160003: 3DSTATE_CONSTANT_GS_STATE -0x12300128: 0x00000000: dword 1 -0x1230012c: 0x00000000: dword 2 -0x12300130: 0x00000000: dword 3 -0x12300134: 0x00000000: dword 4 -0x12300138: 0x78110005: 3DSTATE_GS -0x1230013c: 0x00000000: kernel pointer -0x12300140: 0x00000000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300144: 0x00000000: scratch offset -0x12300148: 0x00000001: Dispatch GRF start 1, VUE read length 0, VUE read offset 0 -0x1230014c: 0x00000500: Max Threads 1, Rendering enable -0x12300150: 0x00000000: Reorder disable, Discard Adjaceny disable, GS disable -0x12300154: 0x78120002: 3DSTATE_CLIP -0x12300158: 0x00000400: UserClip distance cull test mask 0x0 -0x1230015c: 0x98000026: Clip enable, API mode OGL, Viewport XY test enable, Viewport Z test enable, Guardband test disable, Clip mode 0, Perspective Divide enable, Non-Perspective Barycentric disable, Tri Provoking 2, Line Provoking 1, Trifan Provoking 2 -0x12300160: 0x0003ffe0: Min PointWidth 1, Max PointWidth 2047, Force Zero RTAIndex enable, Max VPIndex 0 -0x12300164: 0x78130012: 3DSTATE_SF -0x12300168: 0x00200810: Attrib Out 0, Attrib Swizzle enable, VUE read length 1, VUE read offset 1 -0x1230016c: 0x00000403: Legacy Global DepthBias disable, FrontFace fill 0, BF fill 0, VP transform enable, FrontWinding_CCW -0x12300170: 0x22000000: AA disable, CullMode 1, Scissor disable, Multisample m ode 0 -0x12300174: 0x4c000808: Last Pixel disable, SubPixel Precision 8, Use PixelWidth 1 -0x12300178: 0x00000000: Global Depth Offset Constant 0.000000 -0x1230017c: 0x00000000: Global Depth Offset Scale 0.000000 -0x12300180: 0x00000000: Global Depth Offset Clamp 0.000000 -0x12300184: 0x00000000: Attrib 1 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 0 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300188: 0x00000000: Attrib 3 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 2 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x1230018c: 0x00000000: Attrib 5 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 4 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300190: 0x00000000: Attrib 7 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 6 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300194: 0x00000000: Attrib 9 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 8 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300198: 0x00000000: Attrib 11 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 10 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x1230019c: 0x00000000: Attrib 13 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 12 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123001a0: 0x00000000: Attrib 15 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 14 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123001a4: 0x00000000: Point Sprite TexCoord Enable -0x123001a8: 0x00000000: Const Interp Enable -0x123001ac: 0x00000000: Attrib 7-0 WrapShortest Enable -0x123001b0: 0x00000000: Attrib 15-8 WrapShortest Enable -0x123001b4: 0x78171003: 3DSTATE_CONSTANT_PS_STATE -0x123001b8: 0x00007ee0: dword 1 -0x123001bc: 0x00000000: dword 2 -0x123001c0: 0x00000000: dword 3 -0x123001c4: 0x00000000: dword 4 -0x123001c8: 0x78140007: 3DSTATE_WM -0x123001cc: 0x000000c0: kernel start pointer 0 -0x123001d0: 0x00000000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x123001d4: 0x00000000: scratch offset -0x123001d8: 0x80020002: Depth Clear 0, Depth Resolve 0, HiZ Resolve 0, Dispatch GRF start[0] 2, start[1] 0, start[2] 2 -0x123001dc: 0x4e084003: MaxThreads 40, PS KillPixel 0, PS computed Z 0, PS use sourceZ 0, Thread Dispatch 1, PS use sourceW 0, Dispatch32 0, Dispatch16 1, Dispatch8 1 -0x123001e0: 0x00000000: Num SF output 0, Pos XY offset 0, ZW interp mode 0 , Barycentric interp mode 0x0, Point raster rule 0, Multisample mode 0, Multisample Dispatch mode 0 -0x123001e4: 0x00000000: kernel start pointer 1 -0x123001e8: 0x00000140: kernel start pointer 2 -0x123001ec: 0x780f0000: 3DSTATE_SCISSOR_POINTERS -0x123001f0: 0x00007d20: scissor rect offset -0x123001f4: 0x78011302: 3DSTATE_BINDING_TABLE_POINTERS: VS mod 1, GS mod 1, PS mod 1 -0x123001f8: 0x00007d40: VS binding table -0x123001fc: 0x00007d40: GS binding table -0x12300200: 0x00007d40: WM binding table -0x12300204: 0x7a000002: PIPE_CONTROL -0x12300208: 0x00002000: no write, depth stall, -0x1230020c: 0x00000000: -0x12300210: 0x00000000: -0x12300214: 0x7a000002: PIPE_CONTROL -0x12300218: 0x00000001: no write, depth cache flush, -0x1230021c: 0x00000000: -0x12300220: 0x00000000: -0x12300224: 0x7a000002: PIPE_CONTROL -0x12300228: 0x00002000: no write, depth stall, -0x1230022c: 0x00000000: -0x12300230: 0x00000000: -0x12300234: 0x79050005: 3DSTATE_DEPTH_BUFFER -0x12300238: 0x2c6c05ff: 2D, unknown, pitch = 1536 bytes, tiled, HiZ 1, Seperate Stencil 1 -0x1230023c: 0x00000000: depth offset -0x12300240: 0x09584ac0: 300x300 -0x12300244: 0x00000000: volume depth -0x12300248: 0x00000000: -0x1230024c: 0x00000000: -0x12300250: 0x790f0001: 3DSTATE_HIER_DEPTH_BUFFER -0x12300254: 0x000005ff: dword 1 -0x12300258: 0x00000000: dword 2 -0x1230025c: 0x790e0001: 3D UNKNOWN: 3d_965 opcode = 0x790e -0x12300260: 0x0000027f: MI_NOOP -0x12300264: 0x00000000: MI_NOOP -0x12300268: 0x79100000: 3DSTATE_CLEAR_PARAMS -0x1230026c: 0x00000000: dword 1 -0x12300270: 0x79000002: 3DSTATE_DRAWING_RECTANGLE -0x12300274: 0x00000000: top left: 0,0 -0x12300278: 0x012b012b: bottom right: 299,299 -0x1230027c: 0x00000000: origin: 0,0 -0x12300280: 0x790b0002: 3DSTATE_GS_SVB_INDEX -0x12300284: 0x00000000: dword 1 -0x12300288: 0x00000000: dword 2 -0x1230028c: 0x00000000: dword 3 -0x12300290: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300294: 0x0000000c: buffer 0: sequential, pitch 12b -0x12300298: 0x00000000: buffer address -0x1230029c: 0x0000ffff: max index -0x123002a0: 0x00000000: mbz -0x123002a4: 0x78090001: 3DSTATE_VERTEX_ELEMENTS -0x123002a8: 0x02400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123002ac: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123002b0: 0x7b001804: 3DPRIMITIVE: tri fan sequential -0x123002b4: 0x00000004: vertex count -0x123002b8: 0x00000000: start vertex -0x123002bc: 0x00000001: instance count -0x123002c0: 0x00000000: start instance -0x123002c4: 0x00000000: index bias -0x123002c8: 0x78050001: 3DSTATE_URB -0x123002cc: 0x00000100: VS entries 256, alloc size 1 (1024bit row) -0x123002d0: 0x00000000: GS entries 0, alloc size 1 (1024bit row) -0x123002d4: 0x780e0002: 3DSTATE_CC_STATE_POINTERS -0x123002d8: 0x00007f81: blend change 1 -0x123002dc: 0x00007cc1: depth stencil change 1 -0x123002e0: 0x00007d01: cc change 1 -0x123002e4: 0x78151003: 3DSTATE_CONSTANT_VS_STATE -0x123002e8: 0x00007b85: dword 1 -0x123002ec: 0x00000000: dword 2 -0x123002f0: 0x00000000: dword 3 -0x123002f4: 0x00000000: dword 4 -0x123002f8: 0x78100004: 3DSTATE_VS -0x123002fc: 0x00000240: kernel pointer -0x12300300: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300304: 0x00000000: scratch offset -0x12300308: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x1230030c: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x12300310: 0x7a000002: PIPE_CONTROL -0x12300314: 0x00100002: no write, cs stall, stall at scoreboard, -0x12300318: 0x00000000: -0x1230031c: 0x00000000: -0x12300320: 0x7a000002: PIPE_CONTROL -0x12300324: 0x00004000: qword write, -0x12300328: 0x00000000: -0x1230032c: 0x00000000: -0x12300330: 0x7a000002: PIPE_CONTROL -0x12300334: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x12300338: 0x00000000: -0x1230033c: 0x00000000: -0x12300340: 0x78120002: 3DSTATE_CLIP -0x12300344: 0x00000400: UserClip distance cull test mask 0x0 -0x12300348: 0x98000026: Clip enable, API mode OGL, Viewport XY test enable, Viewport Z test enable, Guardband test disable, Clip mode 0, Perspective Divide enable, Non-Perspective Barycentric disable, Tri Provoking 2, Line Provoking 1, Trifan Provoking 2 -0x1230034c: 0x0003ffe0: Min PointWidth 1, Max PointWidth 2047, Force Zero RTAIndex enable, Max VPIndex 0 -0x12300350: 0x78130012: 3DSTATE_SF -0x12300354: 0x00600810: Attrib Out 1, Attrib Swizzle enable, VUE read length 1, VUE read offset 1 -0x12300358: 0x00000403: Legacy Global DepthBias disable, FrontFace fill 0, BF fill 0, VP transform enable, FrontWinding_CCW -0x1230035c: 0x62000000: AA disable, CullMode 3, Scissor disable, Multisample m ode 0 -0x12300360: 0x4c000808: Last Pixel disable, SubPixel Precision 8, Use PixelWidth 1 -0x12300364: 0x00000000: Global Depth Offset Constant 0.000000 -0x12300368: 0x00000000: Global Depth Offset Scale 0.000000 -0x1230036c: 0x00000000: Global Depth Offset Clamp 0.000000 -0x12300370: 0x00000000: Attrib 1 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 0 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300374: 0x00000000: Attrib 3 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 2 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300378: 0x00000000: Attrib 5 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 4 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x1230037c: 0x00000000: Attrib 7 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 6 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300380: 0x00000000: Attrib 9 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 8 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300384: 0x00000000: Attrib 11 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 10 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300388: 0x00000000: Attrib 13 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 12 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x1230038c: 0x00000000: Attrib 15 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 14 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300390: 0x00000000: Point Sprite TexCoord Enable -0x12300394: 0x00000001: Const Interp Enable -0x12300398: 0x00000000: Attrib 7-0 WrapShortest Enable -0x1230039c: 0x00000000: Attrib 15-8 WrapShortest Enable -0x123003a0: 0x78170003: 3DSTATE_CONSTANT_PS_STATE -0x123003a4: 0x00000000: dword 1 -0x123003a8: 0x00000000: dword 2 -0x123003ac: 0x00000000: dword 3 -0x123003b0: 0x00000000: dword 4 -0x123003b4: 0x78140007: 3DSTATE_WM -0x123003b8: 0x00000500: kernel start pointer 0 -0x123003bc: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x123003c0: 0x00000000: scratch offset -0x123003c4: 0x80020000: Depth Clear 0, Depth Resolve 0, HiZ Resolve 0, Dispatch GRF start[0] 2, start[1] 0, start[2] 0 -0x123003c8: 0x4e084002: MaxThreads 40, PS KillPixel 0, PS computed Z 0, PS use sourceZ 0, Thread Dispatch 1, PS use sourceW 0, Dispatch32 0, Dispatch16 1, Dispatch8 0 -0x123003cc: 0x00100000: Num SF output 1, Pos XY offset 0, ZW interp mode 0 , Barycentric interp mode 0x0, Point raster rule 0, Multisample mode 0, Multisample Dispatch mode 0 -0x123003d0: 0x00000000: kernel start pointer 1 -0x123003d4: 0x00000500: kernel start pointer 2 -0x123003d8: 0x78011302: 3DSTATE_BINDING_TABLE_POINTERS: VS mod 1, GS mod 1, PS mod 1 -0x123003dc: 0x00007a00: VS binding table -0x123003e0: 0x00007a00: GS binding table -0x123003e4: 0x00007a00: WM binding table -0x123003e8: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x123003ec: 0x0000000c: buffer 0: sequential, pitch 12b -0x123003f0: 0x00000000: buffer address -0x123003f4: 0x00007fff: max index -0x123003f8: 0x00000000: mbz -0x123003fc: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300400: 0x00000052: vertex count -0x12300404: 0x00000000: start vertex -0x12300408: 0x00000001: instance count -0x1230040c: 0x00000000: start instance -0x12300410: 0x00000000: index bias -0x12300414: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300418: 0x00000050: vertex count -0x1230041c: 0x00000052: start vertex -0x12300420: 0x00000001: instance count -0x12300424: 0x00000000: start instance -0x12300428: 0x00000000: index bias -0x1230042c: 0x78151003: 3DSTATE_CONSTANT_VS_STATE -0x12300430: 0x000078c5: dword 1 -0x12300434: 0x00000000: dword 2 -0x12300438: 0x00000000: dword 3 -0x1230043c: 0x00000000: dword 4 -0x12300440: 0x78100004: 3DSTATE_VS -0x12300444: 0x00000240: kernel pointer -0x12300448: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x1230044c: 0x00000000: scratch offset -0x12300450: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x12300454: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x12300458: 0x7a000002: PIPE_CONTROL -0x1230045c: 0x00100002: no write, cs stall, stall at scoreboard, -0x12300460: 0x00000000: -0x12300464: 0x00000000: -0x12300468: 0x7a000002: PIPE_CONTROL -0x1230046c: 0x00004000: qword write, -0x12300470: 0x00000000: -0x12300474: 0x00000000: -0x12300478: 0x7a000002: PIPE_CONTROL -0x1230047c: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x12300480: 0x00000000: -0x12300484: 0x00000000: -0x12300488: 0x78170003: 3DSTATE_CONSTANT_PS_STATE -0x1230048c: 0x00000000: dword 1 -0x12300490: 0x00000000: dword 2 -0x12300494: 0x00000000: dword 3 -0x12300498: 0x00000000: dword 4 -0x1230049c: 0x78140007: 3DSTATE_WM -0x123004a0: 0x00000500: kernel start pointer 0 -0x123004a4: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x123004a8: 0x00000000: scratch offset -0x123004ac: 0x80020000: Depth Clear 0, Depth Resolve 0, HiZ Resolve 0, Dispatch GRF start[0] 2, start[1] 0, start[2] 0 -0x123004b0: 0x4e084002: MaxThreads 40, PS KillPixel 0, PS computed Z 0, PS use sourceZ 0, Thread Dispatch 1, PS use sourceW 0, Dispatch32 0, Dispatch16 1, Dispatch8 0 -0x123004b4: 0x00100000: Num SF output 1, Pos XY offset 0, ZW interp mode 0 , Barycentric interp mode 0x0, Point raster rule 0, Multisample mode 0, Multisample Dispatch mode 0 -0x123004b8: 0x00000000: kernel start pointer 1 -0x123004bc: 0x00000500: kernel start pointer 2 -0x123004c0: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x123004c4: 0x00000052: vertex count -0x123004c8: 0x000000a2: start vertex -0x123004cc: 0x00000001: instance count -0x123004d0: 0x00000000: start instance -0x123004d4: 0x00000000: index bias -0x123004d8: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x123004dc: 0x00000050: vertex count -0x123004e0: 0x000000f4: start vertex -0x123004e4: 0x00000001: instance count -0x123004e8: 0x00000000: start instance -0x123004ec: 0x00000000: index bias -0x123004f0: 0x78050001: 3DSTATE_URB -0x123004f4: 0x00000100: VS entries 256, alloc size 1 (1024bit row) -0x123004f8: 0x00000000: GS entries 0, alloc size 1 (1024bit row) -0x123004fc: 0x78151003: 3DSTATE_CONSTANT_VS_STATE -0x12300500: 0x00007785: dword 1 -0x12300504: 0x00000000: dword 2 -0x12300508: 0x00000000: dword 3 -0x1230050c: 0x00000000: dword 4 -0x12300510: 0x78100004: 3DSTATE_VS -0x12300514: 0x00000640: kernel pointer -0x12300518: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x1230051c: 0x00000000: scratch offset -0x12300520: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x12300524: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x12300528: 0x7a000002: PIPE_CONTROL -0x1230052c: 0x00100002: no write, cs stall, stall at scoreboard, -0x12300530: 0x00000000: -0x12300534: 0x00000000: -0x12300538: 0x7a000002: PIPE_CONTROL -0x1230053c: 0x00004000: qword write, -0x12300540: 0x00000000: -0x12300544: 0x00000000: -0x12300548: 0x7a000002: PIPE_CONTROL -0x1230054c: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x12300550: 0x00000000: -0x12300554: 0x00000000: -0x12300558: 0x78130012: 3DSTATE_SF -0x1230055c: 0x00600810: Attrib Out 1, Attrib Swizzle enable, VUE read length 1, VUE read offset 1 -0x12300560: 0x00000403: Legacy Global DepthBias disable, FrontFace fill 0, BF fill 0, VP transform enable, FrontWinding_CCW -0x12300564: 0x62000000: AA disable, CullMode 3, Scissor disable, Multisample m ode 0 -0x12300568: 0x4c000808: Last Pixel disable, SubPixel Precision 8, Use PixelWidth 1 -0x1230056c: 0x00000000: Global Depth Offset Constant 0.000000 -0x12300570: 0x00000000: Global Depth Offset Scale 0.000000 -0x12300574: 0x00000000: Global Depth Offset Clamp 0.000000 -0x12300578: 0x00000000: Attrib 1 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 0 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x1230057c: 0x00000000: Attrib 3 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 2 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300580: 0x00000000: Attrib 5 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 4 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300584: 0x00000000: Attrib 7 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 6 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300588: 0x00000000: Attrib 9 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 8 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x1230058c: 0x00000000: Attrib 11 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 10 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300590: 0x00000000: Attrib 13 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 12 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300594: 0x00000000: Attrib 15 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 14 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300598: 0x00000000: Point Sprite TexCoord Enable -0x1230059c: 0x00000001: Const Interp Enable -0x123005a0: 0x00000000: Attrib 7-0 WrapShortest Enable -0x123005a4: 0x00000000: Attrib 15-8 WrapShortest Enable -0x123005a8: 0x78011302: 3DSTATE_BINDING_TABLE_POINTERS: VS mod 1, GS mod 1, PS mod 1 -0x123005ac: 0x00007600: VS binding table -0x123005b0: 0x00007600: GS binding table -0x123005b4: 0x00007600: WM binding table -0x123005b8: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x123005bc: 0x00000018: buffer 0: sequential, pitch 24b -0x123005c0: 0x00000f48: buffer address -0x123005c4: 0x00007fff: max index -0x123005c8: 0x00000000: mbz -0x123005cc: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x123005d0: 0x02400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123005d4: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123005d8: 0x0240000c: buffer 0: valid, type 0x0040, src offset 0x000c bytes -0x123005dc: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123005e0: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x123005e4: 0x000000a2: vertex count -0x123005e8: 0x00000000: start vertex -0x123005ec: 0x00000001: instance count -0x123005f0: 0x00000000: start instance -0x123005f4: 0x00000000: index bias -0x123005f8: 0x78151003: 3DSTATE_CONSTANT_VS_STATE -0x123005fc: 0x000074c5: dword 1 -0x12300600: 0x00000000: dword 2 -0x12300604: 0x00000000: dword 3 -0x12300608: 0x00000000: dword 4 -0x1230060c: 0x78100004: 3DSTATE_VS -0x12300610: 0x00000640: kernel pointer -0x12300614: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300618: 0x00000000: scratch offset -0x1230061c: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x12300620: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x12300624: 0x7a000002: PIPE_CONTROL -0x12300628: 0x00100002: no write, cs stall, stall at scoreboard, -0x1230062c: 0x00000000: -0x12300630: 0x00000000: -0x12300634: 0x7a000002: PIPE_CONTROL -0x12300638: 0x00004000: qword write, -0x1230063c: 0x00000000: -0x12300640: 0x00000000: -0x12300644: 0x7a000002: PIPE_CONTROL -0x12300648: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x1230064c: 0x00000000: -0x12300650: 0x00000000: -0x12300654: 0x78120002: 3DSTATE_CLIP -0x12300658: 0x00000400: UserClip distance cull test mask 0x0 -0x1230065c: 0x98000026: Clip enable, API mode OGL, Viewport XY test enable, Viewport Z test enable, Guardband test disable, Clip mode 0, Perspective Divide enable, Non-Perspective Barycentric disable, Tri Provoking 2, Line Provoking 1, Trifan Provoking 2 -0x12300660: 0x0003ffe0: Min PointWidth 1, Max PointWidth 2047, Force Zero RTAIndex enable, Max VPIndex 0 -0x12300664: 0x78130012: 3DSTATE_SF -0x12300668: 0x00600810: Attrib Out 1, Attrib Swizzle enable, VUE read length 1, VUE read offset 1 -0x1230066c: 0x00000403: Legacy Global DepthBias disable, FrontFace fill 0, BF fill 0, VP transform enable, FrontWinding_CCW -0x12300670: 0x62000000: AA disable, CullMode 3, Scissor disable, Multisample m ode 0 -0x12300674: 0x4c000808: Last Pixel disable, SubPixel Precision 8, Use PixelWidth 1 -0x12300678: 0x00000000: Global Depth Offset Constant 0.000000 -0x1230067c: 0x00000000: Global Depth Offset Scale 0.000000 -0x12300680: 0x00000000: Global Depth Offset Clamp 0.000000 -0x12300684: 0x00000000: Attrib 1 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 0 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300688: 0x00000000: Attrib 3 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 2 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x1230068c: 0x00000000: Attrib 5 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 4 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300690: 0x00000000: Attrib 7 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 6 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300694: 0x00000000: Attrib 9 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 8 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300698: 0x00000000: Attrib 11 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 10 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x1230069c: 0x00000000: Attrib 13 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 12 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123006a0: 0x00000000: Attrib 15 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 14 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123006a4: 0x00000000: Point Sprite TexCoord Enable -0x123006a8: 0x00000000: Const Interp Enable -0x123006ac: 0x00000000: Attrib 7-0 WrapShortest Enable -0x123006b0: 0x00000000: Attrib 15-8 WrapShortest Enable -0x123006b4: 0x78170003: 3DSTATE_CONSTANT_PS_STATE -0x123006b8: 0x00000000: dword 1 -0x123006bc: 0x00000000: dword 2 -0x123006c0: 0x00000000: dword 3 -0x123006c4: 0x00000000: dword 4 -0x123006c8: 0x78140007: 3DSTATE_WM -0x123006cc: 0x00000900: kernel start pointer 0 -0x123006d0: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x123006d4: 0x00000000: scratch offset -0x123006d8: 0x80060000: Depth Clear 0, Depth Resolve 0, HiZ Resolve 0, Dispatch GRF start[0] 6, start[1] 0, start[2] 0 -0x123006dc: 0x4e084002: MaxThreads 40, PS KillPixel 0, PS computed Z 0, PS use sourceZ 0, Thread Dispatch 1, PS use sourceW 0, Dispatch32 0, Dispatch16 1, Dispatch8 0 -0x123006e0: 0x00100400: Num SF output 1, Pos XY offset 0, ZW interp mode 0 , Barycentric interp mode 0x1, Point raster rule 0, Multisample mode 0, Multisample Dispatch mode 0 -0x123006e4: 0x00000000: kernel start pointer 1 -0x123006e8: 0x00000900: kernel start pointer 2 -0x123006ec: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x123006f0: 0x0000002a: vertex count -0x123006f4: 0x000000a2: start vertex -0x123006f8: 0x00000001: instance count -0x123006fc: 0x00000000: start instance -0x12300700: 0x00000000: index bias -0x12300704: 0x78050001: 3DSTATE_URB -0x12300708: 0x00000100: VS entries 256, alloc size 1 (1024bit row) -0x1230070c: 0x00000000: GS entries 0, alloc size 1 (1024bit row) -0x12300710: 0x78151003: 3DSTATE_CONSTANT_VS_STATE -0x12300714: 0x00007385: dword 1 -0x12300718: 0x00000000: dword 2 -0x1230071c: 0x00000000: dword 3 -0x12300720: 0x00000000: dword 4 -0x12300724: 0x78100004: 3DSTATE_VS -0x12300728: 0x00000240: kernel pointer -0x1230072c: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300730: 0x00000000: scratch offset -0x12300734: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x12300738: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x1230073c: 0x7a000002: PIPE_CONTROL -0x12300740: 0x00100002: no write, cs stall, stall at scoreboard, -0x12300744: 0x00000000: -0x12300748: 0x00000000: -0x1230074c: 0x7a000002: PIPE_CONTROL -0x12300750: 0x00004000: qword write, -0x12300754: 0x00000000: -0x12300758: 0x00000000: -0x1230075c: 0x7a000002: PIPE_CONTROL -0x12300760: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x12300764: 0x00000000: -0x12300768: 0x00000000: -0x1230076c: 0x78120002: 3DSTATE_CLIP -0x12300770: 0x00000400: UserClip distance cull test mask 0x0 -0x12300774: 0x98000026: Clip enable, API mode OGL, Viewport XY test enable, Viewport Z test enable, Guardband test disable, Clip mode 0, Perspective Divide enable, Non-Perspective Barycentric disable, Tri Provoking 2, Line Provoking 1, Trifan Provoking 2 -0x12300778: 0x0003ffe0: Min PointWidth 1, Max PointWidth 2047, Force Zero RTAIndex enable, Max VPIndex 0 -0x1230077c: 0x78130012: 3DSTATE_SF -0x12300780: 0x00600810: Attrib Out 1, Attrib Swizzle enable, VUE read length 1, VUE read offset 1 -0x12300784: 0x00000403: Legacy Global DepthBias disable, FrontFace fill 0, BF fill 0, VP transform enable, FrontWinding_CCW -0x12300788: 0x62000000: AA disable, CullMode 3, Scissor disable, Multisample m ode 0 -0x1230078c: 0x4c000808: Last Pixel disable, SubPixel Precision 8, Use PixelWidth 1 -0x12300790: 0x00000000: Global Depth Offset Constant 0.000000 -0x12300794: 0x00000000: Global Depth Offset Scale 0.000000 -0x12300798: 0x00000000: Global Depth Offset Clamp 0.000000 -0x1230079c: 0x00000000: Attrib 1 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 0 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123007a0: 0x00000000: Attrib 3 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 2 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123007a4: 0x00000000: Attrib 5 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 4 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123007a8: 0x00000000: Attrib 7 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 6 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123007ac: 0x00000000: Attrib 9 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 8 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123007b0: 0x00000000: Attrib 11 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 10 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123007b4: 0x00000000: Attrib 13 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 12 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123007b8: 0x00000000: Attrib 15 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 14 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123007bc: 0x00000000: Point Sprite TexCoord Enable -0x123007c0: 0x00000001: Const Interp Enable -0x123007c4: 0x00000000: Attrib 7-0 WrapShortest Enable -0x123007c8: 0x00000000: Attrib 15-8 WrapShortest Enable -0x123007cc: 0x78170003: 3DSTATE_CONSTANT_PS_STATE -0x123007d0: 0x00000000: dword 1 -0x123007d4: 0x00000000: dword 2 -0x123007d8: 0x00000000: dword 3 -0x123007dc: 0x00000000: dword 4 -0x123007e0: 0x78140007: 3DSTATE_WM -0x123007e4: 0x00000500: kernel start pointer 0 -0x123007e8: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x123007ec: 0x00000000: scratch offset -0x123007f0: 0x80020000: Depth Clear 0, Depth Resolve 0, HiZ Resolve 0, Dispatch GRF start[0] 2, start[1] 0, start[2] 0 -0x123007f4: 0x4e084002: MaxThreads 40, PS KillPixel 0, PS computed Z 0, PS use sourceZ 0, Thread Dispatch 1, PS use sourceW 0, Dispatch32 0, Dispatch16 1, Dispatch8 0 -0x123007f8: 0x00100000: Num SF output 1, Pos XY offset 0, ZW interp mode 0 , Barycentric interp mode 0x0, Point raster rule 0, Multisample mode 0, Multisample Dispatch mode 0 -0x123007fc: 0x00000000: kernel start pointer 1 -0x12300800: 0x00000500: kernel start pointer 2 -0x12300804: 0x78011302: 3DSTATE_BINDING_TABLE_POINTERS: VS mod 1, GS mod 1, PS mod 1 -0x12300808: 0x00007200: VS binding table -0x1230080c: 0x00007200: GS binding table -0x12300810: 0x00007200: WM binding table -0x12300814: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300818: 0x0000000c: buffer 0: sequential, pitch 12b -0x1230081c: 0x00002268: buffer address -0x12300820: 0x00007fff: max index -0x12300824: 0x00000000: mbz -0x12300828: 0x78090001: 3DSTATE_VERTEX_ELEMENTS -0x1230082c: 0x02400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x12300830: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300834: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300838: 0x0000002a: vertex count -0x1230083c: 0x00000000: start vertex -0x12300840: 0x00000001: instance count -0x12300844: 0x00000000: start instance -0x12300848: 0x00000000: index bias -0x1230084c: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300850: 0x00000028: vertex count -0x12300854: 0x0000002a: start vertex -0x12300858: 0x00000001: instance count -0x1230085c: 0x00000000: start instance -0x12300860: 0x00000000: index bias -0x12300864: 0x78151003: 3DSTATE_CONSTANT_VS_STATE -0x12300868: 0x000070c5: dword 1 -0x1230086c: 0x00000000: dword 2 -0x12300870: 0x00000000: dword 3 -0x12300874: 0x00000000: dword 4 -0x12300878: 0x78100004: 3DSTATE_VS -0x1230087c: 0x00000240: kernel pointer -0x12300880: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300884: 0x00000000: scratch offset -0x12300888: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x1230088c: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x12300890: 0x7a000002: PIPE_CONTROL -0x12300894: 0x00100002: no write, cs stall, stall at scoreboard, -0x12300898: 0x00000000: -0x1230089c: 0x00000000: -0x123008a0: 0x7a000002: PIPE_CONTROL -0x123008a4: 0x00004000: qword write, -0x123008a8: 0x00000000: -0x123008ac: 0x00000000: -0x123008b0: 0x7a000002: PIPE_CONTROL -0x123008b4: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x123008b8: 0x00000000: -0x123008bc: 0x00000000: -0x123008c0: 0x78170003: 3DSTATE_CONSTANT_PS_STATE -0x123008c4: 0x00000000: dword 1 -0x123008c8: 0x00000000: dword 2 -0x123008cc: 0x00000000: dword 3 -0x123008d0: 0x00000000: dword 4 -0x123008d4: 0x78140007: 3DSTATE_WM -0x123008d8: 0x00000500: kernel start pointer 0 -0x123008dc: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x123008e0: 0x00000000: scratch offset -0x123008e4: 0x80020000: Depth Clear 0, Depth Resolve 0, HiZ Resolve 0, Dispatch GRF start[0] 2, start[1] 0, start[2] 0 -0x123008e8: 0x4e084002: MaxThreads 40, PS KillPixel 0, PS computed Z 0, PS use sourceZ 0, Thread Dispatch 1, PS use sourceW 0, Dispatch32 0, Dispatch16 1, Dispatch8 0 -0x123008ec: 0x00100000: Num SF output 1, Pos XY offset 0, ZW interp mode 0 , Barycentric interp mode 0x0, Point raster rule 0, Multisample mode 0, Multisample Dispatch mode 0 -0x123008f0: 0x00000000: kernel start pointer 1 -0x123008f4: 0x00000500: kernel start pointer 2 -0x123008f8: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x123008fc: 0x0000002a: vertex count -0x12300900: 0x00000052: start vertex -0x12300904: 0x00000001: instance count -0x12300908: 0x00000000: start instance -0x1230090c: 0x00000000: index bias -0x12300910: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300914: 0x00000028: vertex count -0x12300918: 0x0000007c: start vertex -0x1230091c: 0x00000001: instance count -0x12300920: 0x00000000: start instance -0x12300924: 0x00000000: index bias -0x12300928: 0x78050001: 3DSTATE_URB -0x1230092c: 0x00000100: VS entries 256, alloc size 1 (1024bit row) -0x12300930: 0x00000000: GS entries 0, alloc size 1 (1024bit row) -0x12300934: 0x78151003: 3DSTATE_CONSTANT_VS_STATE -0x12300938: 0x00006f85: dword 1 -0x1230093c: 0x00000000: dword 2 -0x12300940: 0x00000000: dword 3 -0x12300944: 0x00000000: dword 4 -0x12300948: 0x78100004: 3DSTATE_VS -0x1230094c: 0x00000640: kernel pointer -0x12300950: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300954: 0x00000000: scratch offset -0x12300958: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x1230095c: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x12300960: 0x7a000002: PIPE_CONTROL -0x12300964: 0x00100002: no write, cs stall, stall at scoreboard, -0x12300968: 0x00000000: -0x1230096c: 0x00000000: -0x12300970: 0x7a000002: PIPE_CONTROL -0x12300974: 0x00004000: qword write, -0x12300978: 0x00000000: -0x1230097c: 0x00000000: -0x12300980: 0x7a000002: PIPE_CONTROL -0x12300984: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x12300988: 0x00000000: -0x1230098c: 0x00000000: -0x12300990: 0x78130012: 3DSTATE_SF -0x12300994: 0x00600810: Attrib Out 1, Attrib Swizzle enable, VUE read length 1, VUE read offset 1 -0x12300998: 0x00000403: Legacy Global DepthBias disable, FrontFace fill 0, BF fill 0, VP transform enable, FrontWinding_CCW -0x1230099c: 0x62000000: AA disable, CullMode 3, Scissor disable, Multisample m ode 0 -0x123009a0: 0x4c000808: Last Pixel disable, SubPixel Precision 8, Use PixelWidth 1 -0x123009a4: 0x00000000: Global Depth Offset Constant 0.000000 -0x123009a8: 0x00000000: Global Depth Offset Scale 0.000000 -0x123009ac: 0x00000000: Global Depth Offset Clamp 0.000000 -0x123009b0: 0x00000000: Attrib 1 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 0 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123009b4: 0x00000000: Attrib 3 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 2 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123009b8: 0x00000000: Attrib 5 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 4 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123009bc: 0x00000000: Attrib 7 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 6 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123009c0: 0x00000000: Attrib 9 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 8 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123009c4: 0x00000000: Attrib 11 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 10 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123009c8: 0x00000000: Attrib 13 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 12 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123009cc: 0x00000000: Attrib 15 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 14 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x123009d0: 0x00000000: Point Sprite TexCoord Enable -0x123009d4: 0x00000001: Const Interp Enable -0x123009d8: 0x00000000: Attrib 7-0 WrapShortest Enable -0x123009dc: 0x00000000: Attrib 15-8 WrapShortest Enable -0x123009e0: 0x78011302: 3DSTATE_BINDING_TABLE_POINTERS: VS mod 1, GS mod 1, PS mod 1 -0x123009e4: 0x00006e00: VS binding table -0x123009e8: 0x00006e00: GS binding table -0x123009ec: 0x00006e00: WM binding table -0x123009f0: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x123009f4: 0x00000018: buffer 0: sequential, pitch 24b -0x123009f8: 0x00002a30: buffer address -0x123009fc: 0x00007fff: max index -0x12300a00: 0x00000000: mbz -0x12300a04: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x12300a08: 0x02400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x12300a0c: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300a10: 0x0240000c: buffer 0: valid, type 0x0040, src offset 0x000c bytes -0x12300a14: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300a18: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300a1c: 0x00000052: vertex count -0x12300a20: 0x00000000: start vertex -0x12300a24: 0x00000001: instance count -0x12300a28: 0x00000000: start instance -0x12300a2c: 0x00000000: index bias -0x12300a30: 0x78151003: 3DSTATE_CONSTANT_VS_STATE -0x12300a34: 0x00006cc5: dword 1 -0x12300a38: 0x00000000: dword 2 -0x12300a3c: 0x00000000: dword 3 -0x12300a40: 0x00000000: dword 4 -0x12300a44: 0x78100004: 3DSTATE_VS -0x12300a48: 0x00000640: kernel pointer -0x12300a4c: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300a50: 0x00000000: scratch offset -0x12300a54: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x12300a58: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x12300a5c: 0x7a000002: PIPE_CONTROL -0x12300a60: 0x00100002: no write, cs stall, stall at scoreboard, -0x12300a64: 0x00000000: -0x12300a68: 0x00000000: -0x12300a6c: 0x7a000002: PIPE_CONTROL -0x12300a70: 0x00004000: qword write, -0x12300a74: 0x00000000: -0x12300a78: 0x00000000: -0x12300a7c: 0x7a000002: PIPE_CONTROL -0x12300a80: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x12300a84: 0x00000000: -0x12300a88: 0x00000000: -0x12300a8c: 0x78120002: 3DSTATE_CLIP -0x12300a90: 0x00000400: UserClip distance cull test mask 0x0 -0x12300a94: 0x98000026: Clip enable, API mode OGL, Viewport XY test enable, Viewport Z test enable, Guardband test disable, Clip mode 0, Perspective Divide enable, Non-Perspective Barycentric disable, Tri Provoking 2, Line Provoking 1, Trifan Provoking 2 -0x12300a98: 0x0003ffe0: Min PointWidth 1, Max PointWidth 2047, Force Zero RTAIndex enable, Max VPIndex 0 -0x12300a9c: 0x78130012: 3DSTATE_SF -0x12300aa0: 0x00600810: Attrib Out 1, Attrib Swizzle enable, VUE read length 1, VUE read offset 1 -0x12300aa4: 0x00000403: Legacy Global DepthBias disable, FrontFace fill 0, BF fill 0, VP transform enable, FrontWinding_CCW -0x12300aa8: 0x62000000: AA disable, CullMode 3, Scissor disable, Multisample m ode 0 -0x12300aac: 0x4c000808: Last Pixel disable, SubPixel Precision 8, Use PixelWidth 1 -0x12300ab0: 0x00000000: Global Depth Offset Constant 0.000000 -0x12300ab4: 0x00000000: Global Depth Offset Scale 0.000000 -0x12300ab8: 0x00000000: Global Depth Offset Clamp 0.000000 -0x12300abc: 0x00000000: Attrib 1 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 0 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300ac0: 0x00000000: Attrib 3 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 2 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300ac4: 0x00000000: Attrib 5 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 4 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300ac8: 0x00000000: Attrib 7 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 6 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300acc: 0x00000000: Attrib 9 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 8 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300ad0: 0x00000000: Attrib 11 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 10 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300ad4: 0x00000000: Attrib 13 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 12 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300ad8: 0x00000000: Attrib 15 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 14 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300adc: 0x00000000: Point Sprite TexCoord Enable -0x12300ae0: 0x00000000: Const Interp Enable -0x12300ae4: 0x00000000: Attrib 7-0 WrapShortest Enable -0x12300ae8: 0x00000000: Attrib 15-8 WrapShortest Enable -0x12300aec: 0x78170003: 3DSTATE_CONSTANT_PS_STATE -0x12300af0: 0x00000000: dword 1 -0x12300af4: 0x00000000: dword 2 -0x12300af8: 0x00000000: dword 3 -0x12300afc: 0x00000000: dword 4 -0x12300b00: 0x78140007: 3DSTATE_WM -0x12300b04: 0x00000900: kernel start pointer 0 -0x12300b08: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300b0c: 0x00000000: scratch offset -0x12300b10: 0x80060000: Depth Clear 0, Depth Resolve 0, HiZ Resolve 0, Dispatch GRF start[0] 6, start[1] 0, start[2] 0 -0x12300b14: 0x4e084002: MaxThreads 40, PS KillPixel 0, PS computed Z 0, PS use sourceZ 0, Thread Dispatch 1, PS use sourceW 0, Dispatch32 0, Dispatch16 1, Dispatch8 0 -0x12300b18: 0x00100400: Num SF output 1, Pos XY offset 0, ZW interp mode 0 , Barycentric interp mode 0x1, Point raster rule 0, Multisample mode 0, Multisample Dispatch mode 0 -0x12300b1c: 0x00000000: kernel start pointer 1 -0x12300b20: 0x00000900: kernel start pointer 2 -0x12300b24: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300b28: 0x00000016: vertex count -0x12300b2c: 0x00000052: start vertex -0x12300b30: 0x00000001: instance count -0x12300b34: 0x00000000: start instance -0x12300b38: 0x00000000: index bias -0x12300b3c: 0x78050001: 3DSTATE_URB -0x12300b40: 0x00000100: VS entries 256, alloc size 1 (1024bit row) -0x12300b44: 0x00000000: GS entries 0, alloc size 1 (1024bit row) -0x12300b48: 0x78151003: 3DSTATE_CONSTANT_VS_STATE -0x12300b4c: 0x00006b85: dword 1 -0x12300b50: 0x00000000: dword 2 -0x12300b54: 0x00000000: dword 3 -0x12300b58: 0x00000000: dword 4 -0x12300b5c: 0x78100004: 3DSTATE_VS -0x12300b60: 0x00000240: kernel pointer -0x12300b64: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300b68: 0x00000000: scratch offset -0x12300b6c: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x12300b70: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x12300b74: 0x7a000002: PIPE_CONTROL -0x12300b78: 0x00100002: no write, cs stall, stall at scoreboard, -0x12300b7c: 0x00000000: -0x12300b80: 0x00000000: -0x12300b84: 0x7a000002: PIPE_CONTROL -0x12300b88: 0x00004000: qword write, -0x12300b8c: 0x00000000: -0x12300b90: 0x00000000: -0x12300b94: 0x7a000002: PIPE_CONTROL -0x12300b98: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x12300b9c: 0x00000000: -0x12300ba0: 0x00000000: -0x12300ba4: 0x78120002: 3DSTATE_CLIP -0x12300ba8: 0x00000400: UserClip distance cull test mask 0x0 -0x12300bac: 0x98000026: Clip enable, API mode OGL, Viewport XY test enable, Viewport Z test enable, Guardband test disable, Clip mode 0, Perspective Divide enable, Non-Perspective Barycentric disable, Tri Provoking 2, Line Provoking 1, Trifan Provoking 2 -0x12300bb0: 0x0003ffe0: Min PointWidth 1, Max PointWidth 2047, Force Zero RTAIndex enable, Max VPIndex 0 -0x12300bb4: 0x78130012: 3DSTATE_SF -0x12300bb8: 0x00600810: Attrib Out 1, Attrib Swizzle enable, VUE read length 1, VUE read offset 1 -0x12300bbc: 0x00000403: Legacy Global DepthBias disable, FrontFace fill 0, BF fill 0, VP transform enable, FrontWinding_CCW -0x12300bc0: 0x62000000: AA disable, CullMode 3, Scissor disable, Multisample m ode 0 -0x12300bc4: 0x4c000808: Last Pixel disable, SubPixel Precision 8, Use PixelWidth 1 -0x12300bc8: 0x00000000: Global Depth Offset Constant 0.000000 -0x12300bcc: 0x00000000: Global Depth Offset Scale 0.000000 -0x12300bd0: 0x00000000: Global Depth Offset Clamp 0.000000 -0x12300bd4: 0x00000000: Attrib 1 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 0 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300bd8: 0x00000000: Attrib 3 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 2 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300bdc: 0x00000000: Attrib 5 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 4 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300be0: 0x00000000: Attrib 7 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 6 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300be4: 0x00000000: Attrib 9 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 8 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300be8: 0x00000000: Attrib 11 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 10 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300bec: 0x00000000: Attrib 13 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 12 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300bf0: 0x00000000: Attrib 15 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 14 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300bf4: 0x00000000: Point Sprite TexCoord Enable -0x12300bf8: 0x00000001: Const Interp Enable -0x12300bfc: 0x00000000: Attrib 7-0 WrapShortest Enable -0x12300c00: 0x00000000: Attrib 15-8 WrapShortest Enable -0x12300c04: 0x78170003: 3DSTATE_CONSTANT_PS_STATE -0x12300c08: 0x00000000: dword 1 -0x12300c0c: 0x00000000: dword 2 -0x12300c10: 0x00000000: dword 3 -0x12300c14: 0x00000000: dword 4 -0x12300c18: 0x78140007: 3DSTATE_WM -0x12300c1c: 0x00000500: kernel start pointer 0 -0x12300c20: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300c24: 0x00000000: scratch offset -0x12300c28: 0x80020000: Depth Clear 0, Depth Resolve 0, HiZ Resolve 0, Dispatch GRF start[0] 2, start[1] 0, start[2] 0 -0x12300c2c: 0x4e084002: MaxThreads 40, PS KillPixel 0, PS computed Z 0, PS use sourceZ 0, Thread Dispatch 1, PS use sourceW 0, Dispatch32 0, Dispatch16 1, Dispatch8 0 -0x12300c30: 0x00100000: Num SF output 1, Pos XY offset 0, ZW interp mode 0 , Barycentric interp mode 0x0, Point raster rule 0, Multisample mode 0, Multisample Dispatch mode 0 -0x12300c34: 0x00000000: kernel start pointer 1 -0x12300c38: 0x00000500: kernel start pointer 2 -0x12300c3c: 0x78011302: 3DSTATE_BINDING_TABLE_POINTERS: VS mod 1, GS mod 1, PS mod 1 -0x12300c40: 0x00006a00: VS binding table -0x12300c44: 0x00006a00: GS binding table -0x12300c48: 0x00006a00: WM binding table -0x12300c4c: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300c50: 0x0000000c: buffer 0: sequential, pitch 12b -0x12300c54: 0x000033f0: buffer address -0x12300c58: 0x00007fff: max index -0x12300c5c: 0x00000000: mbz -0x12300c60: 0x78090001: 3DSTATE_VERTEX_ELEMENTS -0x12300c64: 0x02400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x12300c68: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300c6c: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300c70: 0x0000002a: vertex count -0x12300c74: 0x00000000: start vertex -0x12300c78: 0x00000001: instance count -0x12300c7c: 0x00000000: start instance -0x12300c80: 0x00000000: index bias -0x12300c84: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300c88: 0x00000028: vertex count -0x12300c8c: 0x0000002a: start vertex -0x12300c90: 0x00000001: instance count -0x12300c94: 0x00000000: start instance -0x12300c98: 0x00000000: index bias -0x12300c9c: 0x78151003: 3DSTATE_CONSTANT_VS_STATE -0x12300ca0: 0x000068c5: dword 1 -0x12300ca4: 0x00000000: dword 2 -0x12300ca8: 0x00000000: dword 3 -0x12300cac: 0x00000000: dword 4 -0x12300cb0: 0x78100004: 3DSTATE_VS -0x12300cb4: 0x00000240: kernel pointer -0x12300cb8: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300cbc: 0x00000000: scratch offset -0x12300cc0: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x12300cc4: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x12300cc8: 0x7a000002: PIPE_CONTROL -0x12300ccc: 0x00100002: no write, cs stall, stall at scoreboard, -0x12300cd0: 0x00000000: -0x12300cd4: 0x00000000: -0x12300cd8: 0x7a000002: PIPE_CONTROL -0x12300cdc: 0x00004000: qword write, -0x12300ce0: 0x00000000: -0x12300ce4: 0x00000000: -0x12300ce8: 0x7a000002: PIPE_CONTROL -0x12300cec: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x12300cf0: 0x00000000: -0x12300cf4: 0x00000000: -0x12300cf8: 0x78170003: 3DSTATE_CONSTANT_PS_STATE -0x12300cfc: 0x00000000: dword 1 -0x12300d00: 0x00000000: dword 2 -0x12300d04: 0x00000000: dword 3 -0x12300d08: 0x00000000: dword 4 -0x12300d0c: 0x78140007: 3DSTATE_WM -0x12300d10: 0x00000500: kernel start pointer 0 -0x12300d14: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300d18: 0x00000000: scratch offset -0x12300d1c: 0x80020000: Depth Clear 0, Depth Resolve 0, HiZ Resolve 0, Dispatch GRF start[0] 2, start[1] 0, start[2] 0 -0x12300d20: 0x4e084002: MaxThreads 40, PS KillPixel 0, PS computed Z 0, PS use sourceZ 0, Thread Dispatch 1, PS use sourceW 0, Dispatch32 0, Dispatch16 1, Dispatch8 0 -0x12300d24: 0x00100000: Num SF output 1, Pos XY offset 0, ZW interp mode 0 , Barycentric interp mode 0x0, Point raster rule 0, Multisample mode 0, Multisample Dispatch mode 0 -0x12300d28: 0x00000000: kernel start pointer 1 -0x12300d2c: 0x00000500: kernel start pointer 2 -0x12300d30: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300d34: 0x0000002a: vertex count -0x12300d38: 0x00000052: start vertex -0x12300d3c: 0x00000001: instance count -0x12300d40: 0x00000000: start instance -0x12300d44: 0x00000000: index bias -0x12300d48: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300d4c: 0x00000028: vertex count -0x12300d50: 0x0000007c: start vertex -0x12300d54: 0x00000001: instance count -0x12300d58: 0x00000000: start instance -0x12300d5c: 0x00000000: index bias -0x12300d60: 0x78050001: 3DSTATE_URB -0x12300d64: 0x00000100: VS entries 256, alloc size 1 (1024bit row) -0x12300d68: 0x00000000: GS entries 0, alloc size 1 (1024bit row) -0x12300d6c: 0x78151003: 3DSTATE_CONSTANT_VS_STATE -0x12300d70: 0x00006785: dword 1 -0x12300d74: 0x00000000: dword 2 -0x12300d78: 0x00000000: dword 3 -0x12300d7c: 0x00000000: dword 4 -0x12300d80: 0x78100004: 3DSTATE_VS -0x12300d84: 0x00000640: kernel pointer -0x12300d88: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300d8c: 0x00000000: scratch offset -0x12300d90: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x12300d94: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x12300d98: 0x7a000002: PIPE_CONTROL -0x12300d9c: 0x00100002: no write, cs stall, stall at scoreboard, -0x12300da0: 0x00000000: -0x12300da4: 0x00000000: -0x12300da8: 0x7a000002: PIPE_CONTROL -0x12300dac: 0x00004000: qword write, -0x12300db0: 0x00000000: -0x12300db4: 0x00000000: -0x12300db8: 0x7a000002: PIPE_CONTROL -0x12300dbc: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x12300dc0: 0x00000000: -0x12300dc4: 0x00000000: -0x12300dc8: 0x78130012: 3DSTATE_SF -0x12300dcc: 0x00600810: Attrib Out 1, Attrib Swizzle enable, VUE read length 1, VUE read offset 1 -0x12300dd0: 0x00000403: Legacy Global DepthBias disable, FrontFace fill 0, BF fill 0, VP transform enable, FrontWinding_CCW -0x12300dd4: 0x62000000: AA disable, CullMode 3, Scissor disable, Multisample m ode 0 -0x12300dd8: 0x4c000808: Last Pixel disable, SubPixel Precision 8, Use PixelWidth 1 -0x12300ddc: 0x00000000: Global Depth Offset Constant 0.000000 -0x12300de0: 0x00000000: Global Depth Offset Scale 0.000000 -0x12300de4: 0x00000000: Global Depth Offset Clamp 0.000000 -0x12300de8: 0x00000000: Attrib 1 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 0 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300dec: 0x00000000: Attrib 3 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 2 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300df0: 0x00000000: Attrib 5 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 4 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300df4: 0x00000000: Attrib 7 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 6 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300df8: 0x00000000: Attrib 9 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 8 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300dfc: 0x00000000: Attrib 11 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 10 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300e00: 0x00000000: Attrib 13 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 12 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300e04: 0x00000000: Attrib 15 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 14 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300e08: 0x00000000: Point Sprite TexCoord Enable -0x12300e0c: 0x00000001: Const Interp Enable -0x12300e10: 0x00000000: Attrib 7-0 WrapShortest Enable -0x12300e14: 0x00000000: Attrib 15-8 WrapShortest Enable -0x12300e18: 0x78011302: 3DSTATE_BINDING_TABLE_POINTERS: VS mod 1, GS mod 1, PS mod 1 -0x12300e1c: 0x00006600: VS binding table -0x12300e20: 0x00006600: GS binding table -0x12300e24: 0x00006600: WM binding table -0x12300e28: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300e2c: 0x00000018: buffer 0: sequential, pitch 24b -0x12300e30: 0x00003bb8: buffer address -0x12300e34: 0x00007fff: max index -0x12300e38: 0x00000000: mbz -0x12300e3c: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x12300e40: 0x02400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x12300e44: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300e48: 0x0240000c: buffer 0: valid, type 0x0040, src offset 0x000c bytes -0x12300e4c: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300e50: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300e54: 0x00000052: vertex count -0x12300e58: 0x00000000: start vertex -0x12300e5c: 0x00000001: instance count -0x12300e60: 0x00000000: start instance -0x12300e64: 0x00000000: index bias -0x12300e68: 0x78151003: 3DSTATE_CONSTANT_VS_STATE -0x12300e6c: 0x000064c5: dword 1 -0x12300e70: 0x00000000: dword 2 -0x12300e74: 0x00000000: dword 3 -0x12300e78: 0x00000000: dword 4 -0x12300e7c: 0x78100004: 3DSTATE_VS -0x12300e80: 0x00000640: kernel pointer -0x12300e84: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300e88: 0x00000000: scratch offset -0x12300e8c: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x12300e90: 0x76000401: Max Threads 60, Vertex Cache enable, VS func enable -0x12300e94: 0x7a000002: PIPE_CONTROL -0x12300e98: 0x00100002: no write, cs stall, stall at scoreboard, -0x12300e9c: 0x00000000: -0x12300ea0: 0x00000000: -0x12300ea4: 0x7a000002: PIPE_CONTROL -0x12300ea8: 0x00004000: qword write, -0x12300eac: 0x00000000: -0x12300eb0: 0x00000000: -0x12300eb4: 0x7a000002: PIPE_CONTROL -0x12300eb8: 0x00002804: no write, depth stall, instruction cache invalidate, state cache invalidate, -0x12300ebc: 0x00000000: -0x12300ec0: 0x00000000: -0x12300ec4: 0x78120002: 3DSTATE_CLIP -0x12300ec8: 0x00000400: UserClip distance cull test mask 0x0 -0x12300ecc: 0x98000026: Clip enable, API mode OGL, Viewport XY test enable, Viewport Z test enable, Guardband test disable, Clip mode 0, Perspective Divide enable, Non-Perspective Barycentric disable, Tri Provoking 2, Line Provoking 1, Trifan Provoking 2 -0x12300ed0: 0x0003ffe0: Min PointWidth 1, Max PointWidth 2047, Force Zero RTAIndex enable, Max VPIndex 0 -0x12300ed4: 0x78130012: 3DSTATE_SF -0x12300ed8: 0x00600810: Attrib Out 1, Attrib Swizzle enable, VUE read length 1, VUE read offset 1 -0x12300edc: 0x00000403: Legacy Global DepthBias disable, FrontFace fill 0, BF fill 0, VP transform enable, FrontWinding_CCW -0x12300ee0: 0x62000000: AA disable, CullMode 3, Scissor disable, Multisample m ode 0 -0x12300ee4: 0x4c000808: Last Pixel disable, SubPixel Precision 8, Use PixelWidth 1 -0x12300ee8: 0x00000000: Global Depth Offset Constant 0.000000 -0x12300eec: 0x00000000: Global Depth Offset Scale 0.000000 -0x12300ef0: 0x00000000: Global Depth Offset Clamp 0.000000 -0x12300ef4: 0x00000000: Attrib 1 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 0 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300ef8: 0x00000000: Attrib 3 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 2 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300efc: 0x00000000: Attrib 5 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 4 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300f00: 0x00000000: Attrib 7 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 6 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300f04: 0x00000000: Attrib 9 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 8 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300f08: 0x00000000: Attrib 11 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 10 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300f0c: 0x00000000: Attrib 13 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 12 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300f10: 0x00000000: Attrib 15 (Override , Const Source 0, Swizzle Select 0, Source 0); Attrib 14 (Override , Const Source 0, Swizzle Select 0, Source 0) -0x12300f14: 0x00000000: Point Sprite TexCoord Enable -0x12300f18: 0x00000000: Const Interp Enable -0x12300f1c: 0x00000000: Attrib 7-0 WrapShortest Enable -0x12300f20: 0x00000000: Attrib 15-8 WrapShortest Enable -0x12300f24: 0x78170003: 3DSTATE_CONSTANT_PS_STATE -0x12300f28: 0x00000000: dword 1 -0x12300f2c: 0x00000000: dword 2 -0x12300f30: 0x00000000: dword 3 -0x12300f34: 0x00000000: dword 4 -0x12300f38: 0x78140007: 3DSTATE_WM -0x12300f3c: 0x00000900: kernel start pointer 0 -0x12300f40: 0x00010000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x12300f44: 0x00000000: scratch offset -0x12300f48: 0x80060000: Depth Clear 0, Depth Resolve 0, HiZ Resolve 0, Dispatch GRF start[0] 6, start[1] 0, start[2] 0 -0x12300f4c: 0x4e084002: MaxThreads 40, PS KillPixel 0, PS computed Z 0, PS use sourceZ 0, Thread Dispatch 1, PS use sourceW 0, Dispatch32 0, Dispatch16 1, Dispatch8 0 -0x12300f50: 0x00100400: Num SF output 1, Pos XY offset 0, ZW interp mode 0 , Barycentric interp mode 0x1, Point raster rule 0, Multisample mode 0, Multisample Dispatch mode 0 -0x12300f54: 0x00000000: kernel start pointer 1 -0x12300f58: 0x00000900: kernel start pointer 2 -0x12300f5c: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300f60: 0x00000016: vertex count -0x12300f64: 0x00000052: start vertex -0x12300f68: 0x00000001: instance count -0x12300f6c: 0x00000000: start instance -0x12300f70: 0x00000000: index bias -0x12300f74: 0x05000000: MI_BATCH_BUFFER_END diff -Nru libdrm-2.4.52/intel/tests/gen6-3d.batch.sh libdrm-2.4.52+really2.4.21/intel/tests/gen6-3d.batch.sh --- libdrm-2.4.52/intel/tests/gen6-3d.batch.sh 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/gen6-3d.batch.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#!/bin/sh - -TEST_FILENAME=`echo "$0" | sed 's|.sh||'` -./test_decode $TEST_FILENAME - -ret=$? - -# pretty-print a diff showing what happened, and leave the dumped -# around for possibly moving over the ref. -if test $ret = 1; then - REF_FILENAME="$TEST_FILENAME-ref.txt" - NEW_FILENAME="$TEST_FILENAME-new.txt" - ./test_decode $TEST_FILENAME -dump > $NEW_FILENAME - if test $? = 0; then - echo "Differences:" - diff -u $REF_FILENAME $NEW_FILENAME - fi -fi - -exit $ret Binary files /tmp/ilJbdi2KKe/libdrm-2.4.52/intel/tests/gen7-2d-copy.batch and /tmp/VkZlGYjGwT/libdrm-2.4.52+really2.4.21/intel/tests/gen7-2d-copy.batch differ diff -Nru libdrm-2.4.52/intel/tests/gen7-2d-copy.batch-ref.txt libdrm-2.4.52+really2.4.21/intel/tests/gen7-2d-copy.batch-ref.txt --- libdrm-2.4.52/intel/tests/gen7-2d-copy.batch-ref.txt 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/gen7-2d-copy.batch-ref.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -0x12300000: 0x54f08006: XY_SRC_COPY_BLT (rgb enabled, alpha enabled, src tile 1, dst tile 0) -0x12300004: 0x03cc0190: format 8888, pitch 400, rop 0xcc, clipping disabled, -0x12300008: 0x00000000: dst (0,0) -0x1230000c: 0x00640064: dst (100,100) -0x12300010: 0x122e9000: dst offset 0x122e9000 -0x12300014: 0x00000000: src (0,0) -0x12300018: 0x00000080: src pitch 128 -0x1230001c: 0x02ff1000: src offset 0x02ff1000 -0x12300020: 0x13000002: MI_FLUSH_DW post_sync_op='no write' -0x12300024: 0x00000000: address -0x12300028: 0x00000000: dword -0x1230002c: 0x00000000: upper dword -0x12300030: 0x05000000: MI_BATCH_BUFFER_END -0x12300034: 0x00000000: diff -Nru libdrm-2.4.52/intel/tests/gen7-2d-copy.batch.sh libdrm-2.4.52+really2.4.21/intel/tests/gen7-2d-copy.batch.sh --- libdrm-2.4.52/intel/tests/gen7-2d-copy.batch.sh 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/gen7-2d-copy.batch.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#!/bin/sh - -TEST_FILENAME=`echo "$0" | sed 's|.sh||'` -./test_decode $TEST_FILENAME - -ret=$? - -# pretty-print a diff showing what happened, and leave the dumped -# around for possibly moving over the ref. -if test $ret = 1; then - REF_FILENAME="$TEST_FILENAME-ref.txt" - NEW_FILENAME="$TEST_FILENAME-new.txt" - ./test_decode $TEST_FILENAME -dump > $NEW_FILENAME - if test $? = 0; then - echo "Differences:" - diff -u $REF_FILENAME $NEW_FILENAME - fi -fi - -exit $ret Binary files /tmp/ilJbdi2KKe/libdrm-2.4.52/intel/tests/gen7-3d.batch and /tmp/VkZlGYjGwT/libdrm-2.4.52+really2.4.21/intel/tests/gen7-3d.batch differ diff -Nru libdrm-2.4.52/intel/tests/gen7-3d.batch-ref.txt libdrm-2.4.52+really2.4.21/intel/tests/gen7-3d.batch-ref.txt --- libdrm-2.4.52/intel/tests/gen7-3d.batch-ref.txt 2012-10-05 20:48:07.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/gen7-3d.batch-ref.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,212 +0,0 @@ -0x12300000: 0x69040000: 3DSTATE_PIPELINE_SELECT -0x12300004: 0x790d0002: 3DSTATE_MULTISAMPLE -0x12300008: 0x00000000: dword 1 -0x1230000c: 0x00000000: dword 2 -0x12300010: 0x00000000: dword 3 -0x12300014: 0x78180000: 3DSTATE_SAMPLE_MASK -0x12300018: 0x00000001: dword 1 -0x1230001c: 0x61020000: STATE_SIP -0x12300020: 0x00000000: dword 1 -0x12300024: 0x680b0000: 3DSTATE_VF_STATISTICS -0x12300028: 0x61010008: STATE_BASE_ADDRESS -0x1230002c: 0x00000001: general state base address 0x00000000 -0x12300030: 0x091ba001: surface state base address 0x091ba000 -0x12300034: 0x091ba001: dynamic state base address 0x091ba000 -0x12300038: 0x00000001: indirect state base address 0x00000000 -0x1230003c: 0x091c2001: instruction state base address 0x091c2000 -0x12300040: 0x00000001: general state upper bound disabled -0x12300044: 0x091c2001: dynamic state upper bound 0x091c2000 -0x12300048: 0x00000001: indirect state upper bound disabled -0x1230004c: 0x00000001: instruction state upper bound disabled -0x12300050: 0x78230000: 3DSTATE_VIEWPORT_STATE_POINTERS_CC -0x12300054: 0x00007fe0: pointer to CC viewport -0x12300058: 0x78210000: 3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP -0x1230005c: 0x00007f80: pointer to SF_CLIP viewport -0x12300060: 0x78300000: 3DSTATE_URB_VS -0x12300064: 0x040002c0: 16KB start, size=1 64B rows, nr_entries=704, total size 45056B -0x12300068: 0x78330000: 3DSTATE_URB_GS -0x1230006c: 0x04000000: 16KB start, size=1 64B rows, nr_entries=0, total size 0B -0x12300070: 0x78310000: 3DSTATE_URB_HS -0x12300074: 0x04000000: 16KB start, size=1 64B rows, nr_entries=0, total size 0B -0x12300078: 0x78320000: 3DSTATE_URB_DS -0x1230007c: 0x04000000: 16KB start, size=1 64B rows, nr_entries=0, total size 0B -0x12300080: 0x78240000: 3DSTATE_BLEND_STATE_POINTERS -0x12300084: 0x00007f41: pointer to BLEND_STATE at 0x00007f40 (changed) -0x12300088: 0x780e0000: 3DSTATE_CC_STATE_POINTERS -0x1230008c: 0x00007f01: pointer to COLOR_CALC_STATE at 0x00007f00 (changed) -0x12300090: 0x78250000: 3DSTATE_DEPTH_STENCIL_STATE_POINTERS -0x12300094: 0x00007ec1: pointer to DEPTH_STENCIL_STATE at 0x00007ec0 (changed) -0x12300098: 0x78160005: 3DSTATE_CONSTANT_GS -0x1230009c: 0x00000000: len 0 = 0, len 1 = 0 -0x123000a0: 0x00000000: len 2 = 0, len 3 = 0 -0x123000a4: 0x00000000: pointer to constbuf 0 -0x123000a8: 0x00000000: pointer to constbuf 1 -0x123000ac: 0x00000000: pointer to constbuf 2 -0x123000b0: 0x00000000: pointer to constbuf 3 -0x123000b4: 0x78110005: 3DSTATE_GS -0x123000b8: 0x00000000: kernel pointer -0x123000bc: 0x00000000: SPF=0, VME=0, Sampler Count 0, Binding table count 0 -0x123000c0: 0x00000000: scratch offset -0x123000c4: 0x00000401: Dispatch GRF start 1, VUE read length 0, VUE read offset 0 -0x123000c8: 0x00000400: Max Threads 1, Rendering disable -0x123000cc: 0x00000000: Reorder disable, Discard Adjaceny disable, GS disable -0x123000d0: 0x78290000: 3DSTATE_BINDING_TABLE_POINTERS_GS -0x123000d4: 0x00000000: dword 1 -0x123000d8: 0x78190005: 3DSTATE_CONSTANT_HS -0x123000dc: 0x00000000: len 0 = 0, len 1 = 0 -0x123000e0: 0x00000000: len 2 = 0, len 3 = 0 -0x123000e4: 0x00000000: pointer to constbuf 0 -0x123000e8: 0x00000000: pointer to constbuf 1 -0x123000ec: 0x00000000: pointer to constbuf 2 -0x123000f0: 0x00000000: pointer to constbuf 3 -0x123000f4: 0x781b0005: 3DSTATE_HS -0x123000f8: 0x00000000: dword 1 -0x123000fc: 0x00000000: dword 2 -0x12300100: 0x00000000: dword 3 -0x12300104: 0x00000000: dword 4 -0x12300108: 0x00000000: dword 5 -0x1230010c: 0x00000000: dword 6 -0x12300110: 0x78270000: 3DSTATE_BINDING_TABLE_POINTERS_HS -0x12300114: 0x00000000: dword 1 -0x12300118: 0x781c0002: 3DSTATE_TE -0x1230011c: 0x00000000: dword 1 -0x12300120: 0x00000000: dword 2 -0x12300124: 0x00000000: dword 3 -0x12300128: 0x781a0005: 3DSTATE_CONSTANT_DS -0x1230012c: 0x00000000: len 0 = 0, len 1 = 0 -0x12300130: 0x00000000: len 2 = 0, len 3 = 0 -0x12300134: 0x00000000: pointer to constbuf 0 -0x12300138: 0x00000000: pointer to constbuf 1 -0x1230013c: 0x00000000: pointer to constbuf 2 -0x12300140: 0x00000000: pointer to constbuf 3 -0x12300144: 0x781d0004: 3DSTATE_DS -0x12300148: 0x00000000: dword 1 -0x1230014c: 0x00000000: dword 2 -0x12300150: 0x00000000: dword 3 -0x12300154: 0x00000000: dword 4 -0x12300158: 0x00000000: dword 5 -0x1230015c: 0x78280000: 3DSTATE_BINDING_TABLE_POINTERS_DS -0x12300160: 0x00000000: dword 1 -0x12300164: 0x78260000: 3DSTATE_BINDING_TABLE_POINTERS_VS -0x12300168: 0x00007c40: dword 1 -0x1230016c: 0x782b0000: 3DSTATE_SAMPLER_STATE_POINTERS_VS -0x12300170: 0x00007c20: dword 1 -0x12300174: 0x79120000: 3DSTATE_PUSH_CONSTANT_ALLOC_VS -0x12300178: 0x00000008: dword 1 -0x1230017c: 0x78150005: 3DSTATE_CONSTANT_VS -0x12300180: 0x00000002: len 0 = 2, len 1 = 0 -0x12300184: 0x00000000: len 2 = 0, len 3 = 0 -0x12300188: 0x00007e00: pointer to constbuf 0 -0x1230018c: 0x00000000: pointer to constbuf 1 -0x12300190: 0x00000000: pointer to constbuf 2 -0x12300194: 0x00000000: pointer to constbuf 3 -0x12300198: 0x78100004: 3DSTATE_VS -0x1230019c: 0x00000000: kernel pointer -0x123001a0: 0x08000000: SPF=0, VME=0, Sampler Count 1, Binding table count 0 -0x123001a4: 0x00000000: scratch offset -0x123001a8: 0x00100800: Dispatch GRF start 1, VUE read length 1, VUE read offset 0 -0x123001ac: 0xfe000401: Max Threads 128, Vertex Cache enable, VS func enable -0x123001b0: 0x781e0001: 3DSTATE_STREAMOUT -0x123001b4: 0x00000000: dword 1 -0x123001b8: 0x00000000: dword 2 -0x123001bc: 0x78120002: 3DSTATE_CLIP -0x123001c0: 0x00150400: UserClip distance cull test mask 0x0 -0x123001c4: 0x98000026: Clip enable, API mode OGL, Viewport XY test enable, Viewport Z test enable, Guardband test disable, Clip mode 0, Perspective Divide enable, Non-Perspective Barycentric disable, Tri Provoking 2, Line Provoking 1, Trifan Provoking 2 -0x123001c8: 0x0003ffe0: Min PointWidth 1, Max PointWidth 2047, Force Zero RTAIndex enable, Max VPIndex 0 -0x123001cc: 0x781f000c: 3DSTATE_SBE -0x123001d0: 0x00600810: dword 1 -0x123001d4: 0x00000000: dword 2 -0x123001d8: 0x00000000: dword 3 -0x123001dc: 0x00000000: dword 4 -0x123001e0: 0x00000000: dword 5 -0x123001e4: 0x00000000: dword 6 -0x123001e8: 0x00000000: dword 7 -0x123001ec: 0x00000000: dword 8 -0x123001f0: 0x00000000: dword 9 -0x123001f4: 0x00000000: dword 10 -0x123001f8: 0x00000000: dword 11 -0x123001fc: 0x00000000: dword 12 -0x12300200: 0x00000000: dword 13 -0x12300204: 0x78130005: 3DSTATE_SF -0x12300208: 0x00001403: dword 1 -0x1230020c: 0x22000000: dword 2 -0x12300210: 0x4c000808: dword 3 -0x12300214: 0x00000000: dword 4 -0x12300218: 0x00000000: dword 5 -0x1230021c: 0x00000000: dword 6 -0x12300220: 0x78140001: 3DSTATE_WM -0x12300224: 0xa0000840: (PP ), point UR -0x12300228: 0x00000000: MS -0x1230022c: 0x782a0000: 3DSTATE_BINDING_TABLE_POINTERS_PS -0x12300230: 0x00007c40: dword 1 -0x12300234: 0x782f0000: 3DSTATE_SAMPLER_STATE_POINTERS_PS -0x12300238: 0x00007c20: dword 1 -0x1230023c: 0x79160000: 3DSTATE_PUSH_CONSTANT_ALLOC_PS -0x12300240: 0x00080008: dword 1 -0x12300244: 0x78170005: 3DSTATE_CONSTANT_PS -0x12300248: 0x00000000: len 0 = 0, len 1 = 0 -0x1230024c: 0x00000000: len 2 = 0, len 3 = 0 -0x12300250: 0x00000000: pointer to constbuf 0 -0x12300254: 0x00000000: pointer to constbuf 1 -0x12300258: 0x00000000: pointer to constbuf 2 -0x1230025c: 0x00000000: pointer to constbuf 3 -0x12300260: 0x78200006: 3DSTATE_PS -0x12300264: 0x00000140: dword 1 -0x12300268: 0x08000000: dword 2 -0x1230026c: 0x00000000: dword 3 -0x12300270: 0x55000403: dword 4 -0x12300274: 0x00040006: dword 5 -0x12300278: 0x00000000: dword 6 -0x1230027c: 0x00000240: dword 7 -0x12300280: 0x780f0000: 3DSTATE_SCISSOR_POINTERS -0x12300284: 0x00007be0: scissor rect offset -0x12300288: 0x7a000002: PIPE_CONTROL -0x1230028c: 0x00002000: no write, depth stall, -0x12300290: 0x00000000: -0x12300294: 0x00000000: -0x12300298: 0x7a000002: PIPE_CONTROL -0x1230029c: 0x00000001: no write, depth cache flush, -0x123002a0: 0x00000000: -0x123002a4: 0x00000000: -0x123002a8: 0x7a000002: PIPE_CONTROL -0x123002ac: 0x00002000: no write, depth stall, -0x123002b0: 0x00000000: -0x123002b4: 0x00000000: -0x123002b8: 0x78050005: 3DSTATE_DEPTH_BUFFER -0x123002bc: 0xe0040000: dword 1 -0x123002c0: 0x00000000: dword 2 -0x123002c4: 0x00000000: dword 3 -0x123002c8: 0x00000000: dword 4 -0x123002cc: 0x00000000: dword 5 -0x123002d0: 0x00000000: dword 6 -0x123002d4: 0x78070001: 3DSTATE_HIER_DEPTH_BUFFER -0x123002d8: 0x00000000: pitch 1b -0x123002dc: 0x00000000: pointer to HiZ buffer -0x123002e0: 0x78060001: 3DSTATE_STENCIL_BUFFER -0x123002e4: 0x00000000: dword 1 -0x123002e8: 0x00000000: dword 2 -0x123002ec: 0x78040001: 3DSTATE_CLEAR_PARAMS -0x123002f0: 0x00000000: dword 1 -0x123002f4: 0x00000000: dword 2 -0x123002f8: 0x79000002: 3DSTATE_DRAWING_RECTANGLE -0x123002fc: 0x00000000: top left: 0,0 -0x12300300: 0x00130077: bottom right: 119,19 -0x12300304: 0x00000000: origin: 0,0 -0x12300308: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x1230030c: 0x00004014: buffer 0: sequential, pitch 20b -0x12300310: 0x158b3000: buffer address -0x12300314: 0x158c2fff: max index -0x12300318: 0x00000000: mbz -0x1230031c: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x12300320: 0x02850000: buffer 0: valid, type 0x0085, src offset 0x0000 bytes -0x12300324: 0x11230000: (X, Y, 0.0, 1.0), dst offset 0x00 bytes -0x12300328: 0x02400008: buffer 0: valid, type 0x0040, src offset 0x0008 bytes -0x1230032c: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300330: 0x7b000005: 3DPRIMITIVE: -0x12300334: 0x00000007: quad list sequential -0x12300338: 0x00000004: vertex count -0x1230033c: 0x00000000: start vertex -0x12300340: 0x00000001: instance count -0x12300344: 0x00000000: start instance -0x12300348: 0x00000000: index bias -0x1230034c: 0x05000000: MI_BATCH_BUFFER_END diff -Nru libdrm-2.4.52/intel/tests/gen7-3d.batch.sh libdrm-2.4.52+really2.4.21/intel/tests/gen7-3d.batch.sh --- libdrm-2.4.52/intel/tests/gen7-3d.batch.sh 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/gen7-3d.batch.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#!/bin/sh - -TEST_FILENAME=`echo "$0" | sed 's|.sh||'` -./test_decode $TEST_FILENAME - -ret=$? - -# pretty-print a diff showing what happened, and leave the dumped -# around for possibly moving over the ref. -if test $ret = 1; then - REF_FILENAME="$TEST_FILENAME-ref.txt" - NEW_FILENAME="$TEST_FILENAME-new.txt" - ./test_decode $TEST_FILENAME -dump > $NEW_FILENAME - if test $? = 0; then - echo "Differences:" - diff -u $REF_FILENAME $NEW_FILENAME - fi -fi - -exit $ret Binary files /tmp/ilJbdi2KKe/libdrm-2.4.52/intel/tests/gm45-3d.batch and /tmp/VkZlGYjGwT/libdrm-2.4.52+really2.4.21/intel/tests/gm45-3d.batch differ diff -Nru libdrm-2.4.52/intel/tests/gm45-3d.batch-ref.txt libdrm-2.4.52+really2.4.21/intel/tests/gm45-3d.batch-ref.txt --- libdrm-2.4.52/intel/tests/gm45-3d.batch-ref.txt 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/gm45-3d.batch-ref.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,488 +0,0 @@ -0x12300000: 0x69040000: 3DSTATE_PIPELINE_SELECT -0x12300004: 0x79090000: 3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP -0x12300008: 0x00000000: dword 1 -0x1230000c: 0x61020000: STATE_SIP -0x12300010: 0x00000000: dword 1 -0x12300014: 0x680b0000: 3DSTATE_VF_STATISTICS -0x12300018: 0x61010004: STATE_BASE_ADDRESS -0x1230001c: 0x00000001: general state base address 0x00000000 -0x12300020: 0x00000001: surface state base address 0x00000000 -0x12300024: 0x00000001: indirect state base address 0x00000000 -0x12300028: 0x00000001: general state upper bound disabled -0x1230002c: 0x00000001: indirect state upper bound disabled -0x12300030: 0x78010004: 3DSTATE_BINDING_TABLE_POINTERS -0x12300034: 0x00007e20: VS binding table -0x12300038: 0x00000000: GS binding table -0x1230003c: 0x00000000: Clip binding table -0x12300040: 0x00000000: SF binding table -0x12300044: 0x00007e20: WM binding table -0x12300048: 0x79010003: 3DSTATE_CONSTANT_COLOR -0x1230004c: 0x00000000: dword 1 -0x12300050: 0x00000000: dword 2 -0x12300054: 0x00000000: dword 3 -0x12300058: 0x00000000: dword 4 -0x1230005c: 0x79050004: 3DSTATE_DEPTH_BUFFER -0x12300060: 0x2c0805ff: 2D, z24s8, pitch = 1536 bytes, tiled -0x12300064: 0x00000000: depth offset -0x12300068: 0x09584ac0: 300x300 -0x1230006c: 0x00000000: volume depth -0x12300070: 0x00000000: -0x12300074: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300078: 0x00007d60: VS state -0x1230007c: 0x00000000: GS state -0x12300080: 0x00007d21: Clip state -0x12300084: 0x00007d80: SF state -0x12300088: 0x00007de0: WM state -0x1230008c: 0x00007fc0: CC state -0x12300090: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300094: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300098: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x1230009c: 0x60010000: CS_URB_STATE -0x123000a0: 0x00000024: entry_size: 2 [192 bytes], n_entries: 4 -0x123000a4: 0x79000002: 3DSTATE_DRAWING_RECTANGLE -0x123000a8: 0x00000000: top left: 0,0 -0x123000ac: 0x012b012b: bottom right: 299,299 -0x123000b0: 0x00000000: origin: 0,0 -0x123000b4: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x123000b8: 0x0000000c: buffer 0: sequential, pitch 12b -0x123000bc: 0x00000000: buffer address -0x123000c0: 0x00000000: max index -0x123000c4: 0x00000000: mbz -0x123000c8: 0x78090001: 3DSTATE_VERTEX_ELEMENTS -0x123000cc: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123000d0: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123000d4: 0x60020100: CONSTANT_BUFFER: valid -0x123000d8: 0x00000001: offset: 0x00000000, length: 128 bytes -0x123000dc: 0x7b001804: 3DPRIMITIVE: tri fan sequential -0x123000e0: 0x00000004: vertex count -0x123000e4: 0x00000000: start vertex -0x123000e8: 0x00000001: instance count -0x123000ec: 0x00000000: start instance -0x123000f0: 0x00000000: index bias -0x123000f4: 0x78010004: 3DSTATE_BINDING_TABLE_POINTERS -0x123000f8: 0x00007b40: VS binding table -0x123000fc: 0x00000000: GS binding table -0x12300100: 0x00000000: Clip binding table -0x12300104: 0x00000000: SF binding table -0x12300108: 0x00007b40: WM binding table -0x1230010c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300110: 0x00007aa0: VS state -0x12300114: 0x00007a41: GS state -0x12300118: 0x00007a61: Clip state -0x1230011c: 0x00007ac0: SF state -0x12300120: 0x00007b00: WM state -0x12300124: 0x00007cc0: CC state -0x12300128: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x1230012c: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300130: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x12300134: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300138: 0x0000000c: buffer 0: sequential, pitch 12b -0x1230013c: 0x00000000: buffer address -0x12300140: 0x00000000: max index -0x12300144: 0x00000000: mbz -0x12300148: 0x60020100: CONSTANT_BUFFER: valid -0x1230014c: 0x00000082: offset: 0x00000080, length: 192 bytes -0x12300150: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300154: 0x00000052: vertex count -0x12300158: 0x00000000: start vertex -0x1230015c: 0x00000001: instance count -0x12300160: 0x00000000: start instance -0x12300164: 0x00000000: index bias -0x12300168: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x1230016c: 0x00007aa0: VS state -0x12300170: 0x00007a21: GS state -0x12300174: 0x00007a61: Clip state -0x12300178: 0x00007ac0: SF state -0x1230017c: 0x00007b00: WM state -0x12300180: 0x00007cc0: CC state -0x12300184: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300188: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x1230018c: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x12300190: 0x60020100: CONSTANT_BUFFER: valid -0x12300194: 0x00000082: offset: 0x00000080, length: 192 bytes -0x12300198: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x1230019c: 0x00000050: vertex count -0x123001a0: 0x00000052: start vertex -0x123001a4: 0x00000001: instance count -0x123001a8: 0x00000000: start instance -0x123001ac: 0x00000000: index bias -0x123001b0: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123001b4: 0x00007aa0: VS state -0x123001b8: 0x00007a01: GS state -0x123001bc: 0x00007a61: Clip state -0x123001c0: 0x00007ac0: SF state -0x123001c4: 0x00007b00: WM state -0x123001c8: 0x00007cc0: CC state -0x123001cc: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123001d0: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x123001d4: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x123001d8: 0x60020100: CONSTANT_BUFFER: valid -0x123001dc: 0x00000142: offset: 0x00000140, length: 192 bytes -0x123001e0: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x123001e4: 0x00000052: vertex count -0x123001e8: 0x000000a2: start vertex -0x123001ec: 0x00000001: instance count -0x123001f0: 0x00000000: start instance -0x123001f4: 0x00000000: index bias -0x123001f8: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123001fc: 0x00007aa0: VS state -0x12300200: 0x000079e1: GS state -0x12300204: 0x00007a61: Clip state -0x12300208: 0x00007ac0: SF state -0x1230020c: 0x00007b00: WM state -0x12300210: 0x00007cc0: CC state -0x12300214: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300218: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x1230021c: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x12300220: 0x60020100: CONSTANT_BUFFER: valid -0x12300224: 0x00000142: offset: 0x00000140, length: 192 bytes -0x12300228: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x1230022c: 0x00000050: vertex count -0x12300230: 0x000000f4: start vertex -0x12300234: 0x00000001: instance count -0x12300238: 0x00000000: start instance -0x1230023c: 0x00000000: index bias -0x12300240: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300244: 0x00007aa0: VS state -0x12300248: 0x000079c1: GS state -0x1230024c: 0x00007a61: Clip state -0x12300250: 0x00007ac0: SF state -0x12300254: 0x00007b00: WM state -0x12300258: 0x00007cc0: CC state -0x1230025c: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300260: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300264: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x12300268: 0x60020100: CONSTANT_BUFFER: valid -0x1230026c: 0x00000142: offset: 0x00000140, length: 192 bytes -0x12300270: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300274: 0x000079a0: VS state -0x12300278: 0x000079c1: GS state -0x1230027c: 0x00007a61: Clip state -0x12300280: 0x00007ac0: SF state -0x12300284: 0x00007b00: WM state -0x12300288: 0x00007cc0: CC state -0x1230028c: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300290: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300294: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x12300298: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x1230029c: 0x00000018: buffer 0: sequential, pitch 24b -0x123002a0: 0x00000f48: buffer address -0x123002a4: 0x00000000: max index -0x123002a8: 0x00000000: mbz -0x123002ac: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x123002b0: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123002b4: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123002b8: 0x0440000c: buffer 0: valid, type 0x0040, src offset 0x000c bytes -0x123002bc: 0x11130004: (X, Y, Z, 1.0), dst offset 0x10 bytes -0x123002c0: 0x60020100: CONSTANT_BUFFER: valid -0x123002c4: 0x00000202: offset: 0x00000200, length: 192 bytes -0x123002c8: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x123002cc: 0x000000a2: vertex count -0x123002d0: 0x00000000: start vertex -0x123002d4: 0x00000001: instance count -0x123002d8: 0x00000000: start instance -0x123002dc: 0x00000000: index bias -0x123002e0: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123002e4: 0x000079a0: VS state -0x123002e8: 0x00000000: GS state -0x123002ec: 0x00007901: Clip state -0x123002f0: 0x00007940: SF state -0x123002f4: 0x00007960: WM state -0x123002f8: 0x00007cc0: CC state -0x123002fc: 0x00000000: MI_NOOP -0x12300300: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300304: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300308: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x1230030c: 0x60020100: CONSTANT_BUFFER: valid -0x12300310: 0x00000202: offset: 0x00000200, length: 192 bytes -0x12300314: 0x7b001404: 3DPRIMITIVE: tri strip sequential -0x12300318: 0x0000002a: vertex count -0x1230031c: 0x000000a2: start vertex -0x12300320: 0x00000001: instance count -0x12300324: 0x00000000: start instance -0x12300328: 0x00000000: index bias -0x1230032c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300330: 0x00007860: VS state -0x12300334: 0x00007801: GS state -0x12300338: 0x00007821: Clip state -0x1230033c: 0x00007880: SF state -0x12300340: 0x000078a0: WM state -0x12300344: 0x00007cc0: CC state -0x12300348: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x1230034c: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300350: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x12300354: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300358: 0x0000000c: buffer 0: sequential, pitch 12b -0x1230035c: 0x00002268: buffer address -0x12300360: 0x00000000: max index -0x12300364: 0x00000000: mbz -0x12300368: 0x78090001: 3DSTATE_VERTEX_ELEMENTS -0x1230036c: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x12300370: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x12300374: 0x60020100: CONSTANT_BUFFER: valid -0x12300378: 0x000002c2: offset: 0x000002c0, length: 192 bytes -0x1230037c: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300380: 0x0000002a: vertex count -0x12300384: 0x00000000: start vertex -0x12300388: 0x00000001: instance count -0x1230038c: 0x00000000: start instance -0x12300390: 0x00000000: index bias -0x12300394: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300398: 0x00007860: VS state -0x1230039c: 0x000077e1: GS state -0x123003a0: 0x00007821: Clip state -0x123003a4: 0x00007880: SF state -0x123003a8: 0x000078a0: WM state -0x123003ac: 0x00007cc0: CC state -0x123003b0: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123003b4: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x123003b8: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x123003bc: 0x60020100: CONSTANT_BUFFER: valid -0x123003c0: 0x000002c2: offset: 0x000002c0, length: 192 bytes -0x123003c4: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x123003c8: 0x00000028: vertex count -0x123003cc: 0x0000002a: start vertex -0x123003d0: 0x00000001: instance count -0x123003d4: 0x00000000: start instance -0x123003d8: 0x00000000: index bias -0x123003dc: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123003e0: 0x00007860: VS state -0x123003e4: 0x000077c1: GS state -0x123003e8: 0x00007821: Clip state -0x123003ec: 0x00007880: SF state -0x123003f0: 0x000078a0: WM state -0x123003f4: 0x00007cc0: CC state -0x123003f8: 0x00000000: MI_NOOP -0x123003fc: 0x00000000: MI_NOOP -0x12300400: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300404: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300408: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x1230040c: 0x60020100: CONSTANT_BUFFER: valid -0x12300410: 0x00000382: offset: 0x00000380, length: 192 bytes -0x12300414: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300418: 0x0000002a: vertex count -0x1230041c: 0x00000052: start vertex -0x12300420: 0x00000001: instance count -0x12300424: 0x00000000: start instance -0x12300428: 0x00000000: index bias -0x1230042c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300430: 0x00007860: VS state -0x12300434: 0x000077a1: GS state -0x12300438: 0x00007821: Clip state -0x1230043c: 0x00007880: SF state -0x12300440: 0x000078a0: WM state -0x12300444: 0x00007cc0: CC state -0x12300448: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x1230044c: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300450: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x12300454: 0x60020100: CONSTANT_BUFFER: valid -0x12300458: 0x00000382: offset: 0x00000380, length: 192 bytes -0x1230045c: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300460: 0x00000028: vertex count -0x12300464: 0x0000007c: start vertex -0x12300468: 0x00000001: instance count -0x1230046c: 0x00000000: start instance -0x12300470: 0x00000000: index bias -0x12300474: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300478: 0x00007860: VS state -0x1230047c: 0x00007781: GS state -0x12300480: 0x00007821: Clip state -0x12300484: 0x00007880: SF state -0x12300488: 0x000078a0: WM state -0x1230048c: 0x00007cc0: CC state -0x12300490: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300494: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300498: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x1230049c: 0x60020100: CONSTANT_BUFFER: valid -0x123004a0: 0x00000382: offset: 0x00000380, length: 192 bytes -0x123004a4: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123004a8: 0x00007760: VS state -0x123004ac: 0x00007781: GS state -0x123004b0: 0x00007821: Clip state -0x123004b4: 0x00007880: SF state -0x123004b8: 0x000078a0: WM state -0x123004bc: 0x00007cc0: CC state -0x123004c0: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123004c4: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x123004c8: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x123004cc: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x123004d0: 0x00000018: buffer 0: sequential, pitch 24b -0x123004d4: 0x00002a30: buffer address -0x123004d8: 0x00000000: max index -0x123004dc: 0x00000000: mbz -0x123004e0: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x123004e4: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123004e8: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123004ec: 0x0440000c: buffer 0: valid, type 0x0040, src offset 0x000c bytes -0x123004f0: 0x11130004: (X, Y, Z, 1.0), dst offset 0x10 bytes -0x123004f4: 0x60020100: CONSTANT_BUFFER: valid -0x123004f8: 0x00000442: offset: 0x00000440, length: 192 bytes -0x123004fc: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300500: 0x00000052: vertex count -0x12300504: 0x00000000: start vertex -0x12300508: 0x00000001: instance count -0x1230050c: 0x00000000: start instance -0x12300510: 0x00000000: index bias -0x12300514: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300518: 0x00007760: VS state -0x1230051c: 0x00000000: GS state -0x12300520: 0x000076c1: Clip state -0x12300524: 0x00007700: SF state -0x12300528: 0x00007720: WM state -0x1230052c: 0x00007cc0: CC state -0x12300530: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300534: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300538: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x1230053c: 0x60020100: CONSTANT_BUFFER: valid -0x12300540: 0x00000442: offset: 0x00000440, length: 192 bytes -0x12300544: 0x7b001404: 3DPRIMITIVE: tri strip sequential -0x12300548: 0x00000016: vertex count -0x1230054c: 0x00000052: start vertex -0x12300550: 0x00000001: instance count -0x12300554: 0x00000000: start instance -0x12300558: 0x00000000: index bias -0x1230055c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300560: 0x00007620: VS state -0x12300564: 0x000075c1: GS state -0x12300568: 0x000075e1: Clip state -0x1230056c: 0x00007640: SF state -0x12300570: 0x00007660: WM state -0x12300574: 0x00007cc0: CC state -0x12300578: 0x00000000: MI_NOOP -0x1230057c: 0x00000000: MI_NOOP -0x12300580: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300584: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300588: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x1230058c: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300590: 0x0000000c: buffer 0: sequential, pitch 12b -0x12300594: 0x000033f0: buffer address -0x12300598: 0x00000000: max index -0x1230059c: 0x00000000: mbz -0x123005a0: 0x78090001: 3DSTATE_VERTEX_ELEMENTS -0x123005a4: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x123005a8: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x123005ac: 0x60020100: CONSTANT_BUFFER: valid -0x123005b0: 0x00000502: offset: 0x00000500, length: 192 bytes -0x123005b4: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x123005b8: 0x0000002a: vertex count -0x123005bc: 0x00000000: start vertex -0x123005c0: 0x00000001: instance count -0x123005c4: 0x00000000: start instance -0x123005c8: 0x00000000: index bias -0x123005cc: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123005d0: 0x00007620: VS state -0x123005d4: 0x000075a1: GS state -0x123005d8: 0x000075e1: Clip state -0x123005dc: 0x00007640: SF state -0x123005e0: 0x00007660: WM state -0x123005e4: 0x00007cc0: CC state -0x123005e8: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123005ec: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x123005f0: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x123005f4: 0x60020100: CONSTANT_BUFFER: valid -0x123005f8: 0x00000502: offset: 0x00000500, length: 192 bytes -0x123005fc: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300600: 0x00000028: vertex count -0x12300604: 0x0000002a: start vertex -0x12300608: 0x00000001: instance count -0x1230060c: 0x00000000: start instance -0x12300610: 0x00000000: index bias -0x12300614: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300618: 0x00007620: VS state -0x1230061c: 0x00007581: GS state -0x12300620: 0x000075e1: Clip state -0x12300624: 0x00007640: SF state -0x12300628: 0x00007660: WM state -0x1230062c: 0x00007cc0: CC state -0x12300630: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300634: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300638: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x1230063c: 0x60020100: CONSTANT_BUFFER: valid -0x12300640: 0x000005c2: offset: 0x000005c0, length: 192 bytes -0x12300644: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300648: 0x0000002a: vertex count -0x1230064c: 0x00000052: start vertex -0x12300650: 0x00000001: instance count -0x12300654: 0x00000000: start instance -0x12300658: 0x00000000: index bias -0x1230065c: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300660: 0x00007620: VS state -0x12300664: 0x00007561: GS state -0x12300668: 0x000075e1: Clip state -0x1230066c: 0x00007640: SF state -0x12300670: 0x00007660: WM state -0x12300674: 0x00007cc0: CC state -0x12300678: 0x00000000: MI_NOOP -0x1230067c: 0x00000000: MI_NOOP -0x12300680: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300684: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300688: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x1230068c: 0x60020100: CONSTANT_BUFFER: valid -0x12300690: 0x000005c2: offset: 0x000005c0, length: 192 bytes -0x12300694: 0x7b001c04: 3DPRIMITIVE: quad list sequential -0x12300698: 0x00000028: vertex count -0x1230069c: 0x0000007c: start vertex -0x123006a0: 0x00000001: instance count -0x123006a4: 0x00000000: start instance -0x123006a8: 0x00000000: index bias -0x123006ac: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123006b0: 0x00007620: VS state -0x123006b4: 0x00007541: GS state -0x123006b8: 0x000075e1: Clip state -0x123006bc: 0x00007640: SF state -0x123006c0: 0x00007660: WM state -0x123006c4: 0x00007cc0: CC state -0x123006c8: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x123006cc: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x123006d0: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x123006d4: 0x60020100: CONSTANT_BUFFER: valid -0x123006d8: 0x000005c2: offset: 0x000005c0, length: 192 bytes -0x123006dc: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x123006e0: 0x00007520: VS state -0x123006e4: 0x00007541: GS state -0x123006e8: 0x000075e1: Clip state -0x123006ec: 0x00007640: SF state -0x123006f0: 0x00007660: WM state -0x123006f4: 0x00007cc0: CC state -0x123006f8: 0x00000000: MI_NOOP -0x123006fc: 0x00000000: MI_NOOP -0x12300700: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300704: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300708: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x1230070c: 0x78080003: 3DSTATE_VERTEX_BUFFERS -0x12300710: 0x00000018: buffer 0: sequential, pitch 24b -0x12300714: 0x00003bb8: buffer address -0x12300718: 0x00000000: max index -0x1230071c: 0x00000000: mbz -0x12300720: 0x78090003: 3DSTATE_VERTEX_ELEMENTS -0x12300724: 0x04400000: buffer 0: valid, type 0x0040, src offset 0x0000 bytes -0x12300728: 0x11130000: (X, Y, Z, 1.0), dst offset 0x00 bytes -0x1230072c: 0x0440000c: buffer 0: valid, type 0x0040, src offset 0x000c bytes -0x12300730: 0x11130004: (X, Y, Z, 1.0), dst offset 0x10 bytes -0x12300734: 0x60020100: CONSTANT_BUFFER: valid -0x12300738: 0x00000682: offset: 0x00000680, length: 192 bytes -0x1230073c: 0x7b002004: 3DPRIMITIVE: quad strip sequential -0x12300740: 0x00000052: vertex count -0x12300744: 0x00000000: start vertex -0x12300748: 0x00000001: instance count -0x1230074c: 0x00000000: start instance -0x12300750: 0x00000000: index bias -0x12300754: 0x78000005: 3DSTATE_PIPELINED_POINTERS -0x12300758: 0x00007520: VS state -0x1230075c: 0x00000000: GS state -0x12300760: 0x00007481: Clip state -0x12300764: 0x000074c0: SF state -0x12300768: 0x000074e0: WM state -0x1230076c: 0x00007cc0: CC state -0x12300770: 0x60003f01: URB_FENCE: cs vfe sf clip gs vs -0x12300774: 0x05212040: vs fence: 64, clip_fence: 82, gs_fence: 72 -0x12300778: 0x18000062: sf fence: 98, vfe_fence: 0, cs_fence: 384 -0x1230077c: 0x60020100: CONSTANT_BUFFER: valid -0x12300780: 0x00000682: offset: 0x00000680, length: 192 bytes -0x12300784: 0x7b001404: 3DPRIMITIVE: tri strip sequential -0x12300788: 0x00000016: vertex count -0x1230078c: 0x00000052: start vertex -0x12300790: 0x00000001: instance count -0x12300794: 0x00000000: start instance -0x12300798: 0x00000000: index bias -0x1230079c: 0x05000000: MI_BATCH_BUFFER_END diff -Nru libdrm-2.4.52/intel/tests/gm45-3d.batch.sh libdrm-2.4.52+really2.4.21/intel/tests/gm45-3d.batch.sh --- libdrm-2.4.52/intel/tests/gm45-3d.batch.sh 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/gm45-3d.batch.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#!/bin/sh - -TEST_FILENAME=`echo "$0" | sed 's|.sh||'` -./test_decode $TEST_FILENAME - -ret=$? - -# pretty-print a diff showing what happened, and leave the dumped -# around for possibly moving over the ref. -if test $ret = 1; then - REF_FILENAME="$TEST_FILENAME-ref.txt" - NEW_FILENAME="$TEST_FILENAME-new.txt" - ./test_decode $TEST_FILENAME -dump > $NEW_FILENAME - if test $? = 0; then - echo "Differences:" - diff -u $REF_FILENAME $NEW_FILENAME - fi -fi - -exit $ret diff -Nru libdrm-2.4.52/intel/tests/test-batch.sh libdrm-2.4.52+really2.4.21/intel/tests/test-batch.sh --- libdrm-2.4.52/intel/tests/test-batch.sh 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/intel/tests/test-batch.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#!/bin/sh - -TEST_FILENAME=`echo "$0" | sed 's|.sh||'` -./test_decode $TEST_FILENAME - -ret=$? - -# pretty-print a diff showing what happened, and leave the dumped -# around for possibly moving over the ref. -if test $ret = 1; then - REF_FILENAME="$TEST_FILENAME-ref.txt" - NEW_FILENAME="$TEST_FILENAME-new.txt" - ./test_decode $TEST_FILENAME -dump > $NEW_FILENAME - if test $? = 0; then - echo "Differences:" - diff -u $REF_FILENAME $NEW_FILENAME - fi -fi - -exit $ret diff -Nru libdrm-2.4.52/libdrm_lists.h libdrm-2.4.52+really2.4.21/libdrm_lists.h --- libdrm-2.4.52/libdrm_lists.h 2012-10-05 20:48:07.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/libdrm_lists.h 2010-06-07 01:11:45.000000000 +0000 @@ -78,13 +78,6 @@ #define DRMLISTEMPTY(__item) ((__item)->next == (__item)) -#define DRMLISTSINGLE(__list) \ - (!DRMLISTEMPTY(__list) && ((__list)->next == (__list)->prev)) - -#define DRMLISTFOREACH(__item, __list) \ - for ((__item) = (__list)->next; \ - (__item) != (__list); (__item) = (__item)->next) - #define DRMLISTFOREACHSAFE(__item, __temp, __list) \ for ((__item) = (__list)->next, (__temp) = (__item)->next; \ (__item) != (__list); \ @@ -94,25 +87,3 @@ for ((__item) = (__list)->prev, (__temp) = (__item)->prev; \ (__item) != (__list); \ (__item) = (__temp), (__temp) = (__item)->prev) - -#define DRMLISTFOREACHENTRY(__item, __list, __head) \ - for ((__item) = DRMLISTENTRY(typeof(*__item), (__list)->next, __head); \ - &(__item)->__head != (__list); \ - (__item) = DRMLISTENTRY(typeof(*__item), \ - (__item)->__head.next, __head)) - -#define DRMLISTFOREACHENTRYSAFE(__item, __temp, __list, __head) \ - for ((__item) = DRMLISTENTRY(typeof(*__item), (__list)->next, __head), \ - (__temp) = DRMLISTENTRY(typeof(*__item), \ - (__item)->__head.next, __head); \ - &(__item)->__head != (__list); \ - (__item) = (__temp), \ - (__temp) = DRMLISTENTRY(typeof(*__item), \ - (__temp)->__head.next, __head)) - -#define DRMLISTJOIN(__list, __join) if (!DRMLISTEMPTY(__list)) { \ - (__list)->next->prev = (__join); \ - (__list)->prev->next = (__join)->next; \ - (__join)->next->prev = (__list)->prev; \ - (__join)->next = (__list)->next; \ -} diff -Nru libdrm-2.4.52/libkms/api.c libdrm-2.4.52+really2.4.21/libkms/api.c --- libdrm-2.4.52/libkms/api.c 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/libkms/api.c 2010-06-07 01:11:46.000000000 +0000 @@ -80,7 +80,7 @@ type = value; break; default: - return -EINVAL; + return EINVAL; } } diff -Nru libdrm-2.4.52/libkms/dumb.c libdrm-2.4.52+really2.4.21/libkms/dumb.c --- libdrm-2.4.52/libkms/dumb.c 2011-10-11 21:10:32.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/libkms/dumb.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,221 +0,0 @@ -/************************************************************************** - * - * Copyright © 2009 VMware, Inc., Palo Alto, CA., USA - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - * USE OR OTHER DEALINGS IN THE SOFTWARE. - * - **************************************************************************/ - - -#define HAVE_STDINT_H -#define _FILE_OFFSET_BITS 64 - -#include -#include -#include -#include -#include "internal.h" - -#include -#include -#include "xf86drm.h" - -#include "i915_drm.h" - -struct dumb_bo -{ - struct kms_bo base; - unsigned map_count; -}; - -static int -dumb_get_prop(struct kms_driver *kms, unsigned key, unsigned *out) -{ - switch (key) { - case KMS_BO_TYPE: - *out = KMS_BO_TYPE_SCANOUT_X8R8G8B8 | KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8; - break; - default: - return -EINVAL; - } - return 0; -} - -static int -dumb_destroy(struct kms_driver *kms) -{ - free(kms); - return 0; -} - -static int -dumb_bo_create(struct kms_driver *kms, - const unsigned width, const unsigned height, - const enum kms_bo_type type, const unsigned *attr, - struct kms_bo **out) -{ - struct drm_mode_create_dumb arg; - struct dumb_bo *bo; - int i, ret; - - for (i = 0; attr[i]; i += 2) { - switch (attr[i]) { - case KMS_WIDTH: - case KMS_HEIGHT: - break; - case KMS_BO_TYPE: - break; - default: - return -EINVAL; - } - } - - bo = calloc(1, sizeof(*bo)); - if (!bo) - return -ENOMEM; - - memset(&arg, 0, sizeof(arg)); - - /* All BO_TYPE currently are 32bpp formats */ - arg.bpp = 32; - arg.width = width; - arg.height = height; - - ret = drmIoctl(kms->fd, DRM_IOCTL_MODE_CREATE_DUMB, &arg); - if (ret) - goto err_free; - - bo->base.kms = kms; - bo->base.handle = arg.handle; - bo->base.size = arg.size; - bo->base.pitch = arg.pitch; - - *out = &bo->base; - - return 0; - -err_free: - free(bo); - return ret; -} - -static int -dumb_bo_get_prop(struct kms_bo *bo, unsigned key, unsigned *out) -{ - switch (key) { - default: - return -EINVAL; - } -} - -static int -dumb_bo_map(struct kms_bo *_bo, void **out) -{ - struct dumb_bo *bo = (struct dumb_bo *)_bo; - struct drm_mode_map_dumb arg; - void *map = NULL; - int ret; - - if (bo->base.ptr) { - bo->map_count++; - *out = bo->base.ptr; - return 0; - } - - memset(&arg, 0, sizeof(arg)); - arg.handle = bo->base.handle; - - ret = drmIoctl(bo->base.kms->fd, DRM_IOCTL_MODE_MAP_DUMB, &arg); - if (ret) - return ret; - - map = mmap(0, bo->base.size, PROT_READ | PROT_WRITE, MAP_SHARED, bo->base.kms->fd, arg.offset); - if (map == MAP_FAILED) - return -errno; - - bo->base.ptr = map; - bo->map_count++; - *out = bo->base.ptr; - - return 0; -} - -static int -dumb_bo_unmap(struct kms_bo *_bo) -{ - struct dumb_bo *bo = (struct dumb_bo *)_bo; - bo->map_count--; - return 0; -} - -static int -dumb_bo_destroy(struct kms_bo *_bo) -{ - struct dumb_bo *bo = (struct dumb_bo *)_bo; - struct drm_mode_destroy_dumb arg; - int ret; - - if (bo->base.ptr) { - /* XXX Sanity check map_count */ - munmap(bo->base.ptr, bo->base.size); - bo->base.ptr = NULL; - } - - memset(&arg, 0, sizeof(arg)); - arg.handle = bo->base.handle; - - ret = drmIoctl(bo->base.kms->fd, DRM_IOCTL_MODE_DESTROY_DUMB, &arg); - if (ret) - return -errno; - - free(bo); - return 0; -} - -int -dumb_create(int fd, struct kms_driver **out) -{ - struct kms_driver *kms; - int ret; - uint64_t cap = 0; - - ret = drmGetCap(fd, DRM_CAP_DUMB_BUFFER, &cap); - if (ret || cap == 0) - return -EINVAL; - - kms = calloc(1, sizeof(*kms)); - if (!kms) - return -ENOMEM; - - kms->fd = fd; - - kms->bo_create = dumb_bo_create; - kms->bo_map = dumb_bo_map; - kms->bo_unmap = dumb_bo_unmap; - kms->bo_get_prop = dumb_bo_get_prop; - kms->bo_destroy = dumb_bo_destroy; - kms->get_prop = dumb_get_prop; - kms->destroy = dumb_destroy; - *out = kms; - - return 0; -} diff -Nru libdrm-2.4.52/libkms/exynos.c libdrm-2.4.52+really2.4.21/libkms/exynos.c --- libdrm-2.4.52/libkms/exynos.c 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/libkms/exynos.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,207 +0,0 @@ -/* exynos.c - * - * Copyright 2009 Samsung Electronics Co., Ltd. - * Authors: - * SooChan Lim - * Sangjin LEE - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - */ - -#define HAVE_STDINT_H -#define _FILE_OFFSET_BITS 64 - -#include -#include -#include -#include -#include "internal.h" - -#include -#include -#include "xf86drm.h" - -#include "exynos_drm.h" - -struct exynos_bo -{ - struct kms_bo base; - unsigned map_count; -}; - -static int -exynos_get_prop(struct kms_driver *kms, unsigned key, unsigned *out) -{ - switch (key) { - case KMS_BO_TYPE: - *out = KMS_BO_TYPE_SCANOUT_X8R8G8B8 | KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8; - break; - default: - return -EINVAL; - } - return 0; -} - -static int -exynos_destroy(struct kms_driver *kms) -{ - free(kms); - return 0; -} - -static int -exynos_bo_create(struct kms_driver *kms, - const unsigned width, const unsigned height, - const enum kms_bo_type type, const unsigned *attr, - struct kms_bo **out) -{ - struct drm_exynos_gem_create arg; - unsigned size, pitch; - struct exynos_bo *bo; - int i, ret; - - for (i = 0; attr[i]; i += 2) { - switch (attr[i]) { - case KMS_WIDTH: - case KMS_HEIGHT: - case KMS_BO_TYPE: - break; - default: - return -EINVAL; - } - } - - bo = calloc(1, sizeof(*bo)); - if (!bo) - return -ENOMEM; - - if (type == KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8) { - pitch = 64 * 4; - size = 64 * 64 * 4; - } else if (type == KMS_BO_TYPE_SCANOUT_X8R8G8B8) { - pitch = width * 4; - pitch = (pitch + 512 - 1) & ~(512 - 1); - size = pitch * ((height + 4 - 1) & ~(4 - 1)); - } else { - return -EINVAL; - } - - memset(&arg, 0, sizeof(arg)); - arg.size = size; - - ret = drmCommandWriteRead(kms->fd, DRM_EXYNOS_GEM_CREATE, &arg, sizeof(arg)); - if (ret) - goto err_free; - - bo->base.kms = kms; - bo->base.handle = arg.handle; - bo->base.size = size; - bo->base.pitch = pitch; - - *out = &bo->base; - - return 0; - -err_free: - free(bo); - return ret; -} - -static int -exynos_bo_get_prop(struct kms_bo *bo, unsigned key, unsigned *out) -{ - switch (key) { - default: - return -EINVAL; - } -} - -static int -exynos_bo_map(struct kms_bo *_bo, void **out) -{ - struct exynos_bo *bo = (struct exynos_bo *)_bo; - struct drm_exynos_gem_map_off arg; - void *map = NULL; - int ret; - - if (bo->base.ptr) { - bo->map_count++; - *out = bo->base.ptr; - return 0; - } - - memset(&arg, 0, sizeof(arg)); - arg.handle = bo->base.handle; - - ret = drmCommandWriteRead(bo->base.kms->fd, DRM_EXYNOS_GEM_MAP_OFFSET, &arg, sizeof(arg)); - if (ret) - return ret; - - map = mmap(0, bo->base.size, PROT_READ | PROT_WRITE, MAP_SHARED, bo->base.kms->fd, arg.offset); - if (map == MAP_FAILED) - return -errno; - - bo->base.ptr = map; - bo->map_count++; - *out = bo->base.ptr; - - return 0; -} - -static int -exynos_bo_unmap(struct kms_bo *_bo) -{ - struct exynos_bo *bo = (struct exynos_bo *)_bo; - bo->map_count--; - return 0; -} - -static int -exynos_bo_destroy(struct kms_bo *_bo) -{ - struct exynos_bo *bo = (struct exynos_bo *)_bo; - struct drm_gem_close arg; - int ret; - - if (bo->base.ptr) { - /* XXX Sanity check map_count */ - munmap(bo->base.ptr, bo->base.size); - bo->base.ptr = NULL; - } - - memset(&arg, 0, sizeof(arg)); - arg.handle = bo->base.handle; - - ret = drmIoctl(bo->base.kms->fd, DRM_IOCTL_GEM_CLOSE, &arg); - if (ret) - return -errno; - - free(bo); - return 0; -} - -int -exynos_create(int fd, struct kms_driver **out) -{ - struct kms_driver *kms; - - kms = calloc(1, sizeof(*kms)); - if (!kms) - return -ENOMEM; - - kms->fd = fd; - - kms->bo_create = exynos_bo_create; - kms->bo_map = exynos_bo_map; - kms->bo_unmap = exynos_bo_unmap; - kms->bo_get_prop = exynos_bo_get_prop; - kms->bo_destroy = exynos_bo_destroy; - kms->get_prop = exynos_get_prop; - kms->destroy = exynos_destroy; - *out = kms; - - return 0; -} diff -Nru libdrm-2.4.52/libkms/intel.c libdrm-2.4.52+really2.4.21/libkms/intel.c --- libdrm-2.4.52/libkms/intel.c 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/libkms/intel.c 2010-06-07 01:11:46.000000000 +0000 @@ -101,7 +101,6 @@ pitch = (pitch + 512 - 1) & ~(512 - 1); size = pitch * ((height + 4 - 1) & ~(4 - 1)); } else { - free(bo); return -EINVAL; } diff -Nru libdrm-2.4.52/libkms/internal.h libdrm-2.4.52+really2.4.21/libkms/internal.h --- libdrm-2.4.52/libkms/internal.h 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/libkms/internal.h 2010-06-07 01:11:46.000000000 +0000 @@ -68,12 +68,6 @@ int intel_create(int fd, struct kms_driver **out); -int dumb_create(int fd, struct kms_driver **out); - int nouveau_create(int fd, struct kms_driver **out); -int radeon_create(int fd, struct kms_driver **out); - -int exynos_create(int fd, struct kms_driver **out); - #endif diff -Nru libdrm-2.4.52/libkms/libkms.h libdrm-2.4.52+really2.4.21/libkms/libkms.h --- libdrm-2.4.52/libkms/libkms.h 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/libkms/libkms.h 2010-06-07 01:11:46.000000000 +0000 @@ -29,10 +29,6 @@ #ifndef _LIBKMS_H_ #define _LIBKMS_H_ -#if defined(__cplusplus) || defined(c_plusplus) -extern "C" { -#endif - /** * \file * @@ -75,8 +71,4 @@ int kms_bo_unmap(struct kms_bo *bo); int kms_bo_destroy(struct kms_bo **bo); -#if defined(__cplusplus) || defined(c_plusplus) -}; -#endif - #endif diff -Nru libdrm-2.4.52/libkms/linux.c libdrm-2.4.52+really2.4.21/libkms/linux.c --- libdrm-2.4.52/libkms/linux.c 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/libkms/linux.c 2010-06-07 01:11:46.000000000 +0000 @@ -68,7 +68,7 @@ ret = fstat(fd, &buffer); if (ret) - return -EINVAL; + return ret; if (!S_ISCHR(buffer.st_mode)) return -EINVAL; @@ -111,14 +111,6 @@ else if (!strcmp(name, "nouveau")) ret = nouveau_create(fd, out); #endif -#ifdef HAVE_RADEON - else if (!strcmp(name, "radeon")) - ret = radeon_create(fd, out); -#endif -#ifdef HAVE_EXYNOS - else if (!strcmp(name, "exynos")) - ret = exynos_create(fd, out); -#endif else ret = -ENOSYS; @@ -220,9 +212,6 @@ int linux_create(int fd, struct kms_driver **out) { - if (!dumb_create(fd, out)) - return 0; - if (!linux_from_udev(fd, out)) return 0; diff -Nru libdrm-2.4.52/libkms/Makefile.am libdrm-2.4.52+really2.4.21/libkms/Makefile.am --- libdrm-2.4.52/libkms/Makefile.am 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/libkms/Makefile.am 2010-06-07 01:11:46.000000000 +0000 @@ -6,7 +6,7 @@ libkms_la_LTLIBRARIES = libkms.la libkms_ladir = $(libdir) libkms_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libkms_la_LIBADD = ../libdrm.la +libkms_la_LIBADD = #if HAVE_LIBUDEV #libkms_la_LIBADD += $(LIBUDEV_LIBS) @@ -16,7 +16,6 @@ internal.h \ linux.c \ intel.c \ - dumb.c \ api.c if HAVE_VMWGFX @@ -27,15 +26,6 @@ libkms_la_SOURCES += nouveau.c endif -if HAVE_RADEON -libkms_la_SOURCES += radeon.c -endif - -if HAVE_EXYNOS -libkms_la_SOURCES += exynos.c -AM_CFLAGS += -I$(top_srcdir)/exynos -endif - libkmsincludedir = ${includedir}/libkms libkmsinclude_HEADERS = libkms.h diff -Nru libdrm-2.4.52/libkms/Makefile.in libdrm-2.4.52+really2.4.21/libkms/Makefile.in --- libdrm-2.4.52/libkms/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/libkms/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,739 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VMWGFX_TRUE@am__append_1 = vmwgfx.c -@HAVE_NOUVEAU_TRUE@am__append_2 = nouveau.c -@HAVE_RADEON_TRUE@am__append_3 = radeon.c -@HAVE_EXYNOS_TRUE@am__append_4 = exynos.c -@HAVE_EXYNOS_TRUE@am__append_5 = -I$(top_srcdir)/exynos -subdir = libkms -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/libkms.pc.in $(top_srcdir)/build-aux/depcomp \ - $(libkmsinclude_HEADERS) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = libkms.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libkms_ladir)" \ - "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libkmsincludedir)" -LTLIBRARIES = $(libkms_la_LTLIBRARIES) -libkms_la_DEPENDENCIES = ../libdrm.la -am__libkms_la_SOURCES_DIST = internal.h linux.c intel.c dumb.c api.c \ - vmwgfx.c nouveau.c radeon.c exynos.c -@HAVE_VMWGFX_TRUE@am__objects_1 = vmwgfx.lo -@HAVE_NOUVEAU_TRUE@am__objects_2 = nouveau.lo -@HAVE_RADEON_TRUE@am__objects_3 = radeon.lo -@HAVE_EXYNOS_TRUE@am__objects_4 = exynos.lo -am_libkms_la_OBJECTS = linux.lo intel.lo dumb.lo api.lo \ - $(am__objects_1) $(am__objects_2) $(am__objects_3) \ - $(am__objects_4) -libkms_la_OBJECTS = $(am_libkms_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libkms_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libkms_la_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libkms_la_SOURCES) -DIST_SOURCES = $(am__libkms_la_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(pkgconfig_DATA) -HEADERS = $(libkmsinclude_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = $(WARN_CFLAGS) -I$(top_srcdir)/include/drm -I$(top_srcdir) \ - $(am__append_5) -libkms_la_LTLIBRARIES = libkms.la -libkms_ladir = $(libdir) -libkms_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libkms_la_LIBADD = ../libdrm.la - -#if HAVE_LIBUDEV -#libkms_la_LIBADD += $(LIBUDEV_LIBS) -#endif -libkms_la_SOURCES = internal.h linux.c intel.c dumb.c api.c \ - $(am__append_1) $(am__append_2) $(am__append_3) \ - $(am__append_4) -libkmsincludedir = ${includedir}/libkms -libkmsinclude_HEADERS = libkms.h -pkgconfig_DATA = libkms.pc -EXTRA_DIST = libkms.pc.in -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libkms/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign libkms/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -libkms.pc: $(top_builddir)/config.status $(srcdir)/libkms.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-libkms_laLTLIBRARIES: $(libkms_la_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(libkms_la_LTLIBRARIES)'; test -n "$(libkms_ladir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libkms_ladir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libkms_ladir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libkms_ladir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libkms_ladir)"; \ - } - -uninstall-libkms_laLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(libkms_la_LTLIBRARIES)'; test -n "$(libkms_ladir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libkms_ladir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libkms_ladir)/$$f"; \ - done - -clean-libkms_laLTLIBRARIES: - -test -z "$(libkms_la_LTLIBRARIES)" || rm -f $(libkms_la_LTLIBRARIES) - @list='$(libkms_la_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libkms.la: $(libkms_la_OBJECTS) $(libkms_la_DEPENDENCIES) $(EXTRA_libkms_la_DEPENDENCIES) - $(AM_V_CCLD)$(libkms_la_LINK) -rpath $(libkms_ladir) $(libkms_la_OBJECTS) $(libkms_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/api.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dumb.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exynos.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intel.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linux.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nouveau.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeon.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmwgfx.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-libkmsincludeHEADERS: $(libkmsinclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(libkmsinclude_HEADERS)'; test -n "$(libkmsincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(libkmsincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libkmsincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libkmsincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libkmsincludedir)" || exit $$?; \ - done - -uninstall-libkmsincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libkmsinclude_HEADERS)'; test -n "$(libkmsincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(libkmsincludedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libkms_ladir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libkmsincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libkms_laLTLIBRARIES clean-libtool \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-libkms_laLTLIBRARIES \ - install-libkmsincludeHEADERS install-pkgconfigDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libkms_laLTLIBRARIES \ - uninstall-libkmsincludeHEADERS uninstall-pkgconfigDATA - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libkms_laLTLIBRARIES clean-libtool cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-libkms_laLTLIBRARIES \ - install-libkmsincludeHEADERS install-man install-pdf \ - install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-libkms_laLTLIBRARIES uninstall-libkmsincludeHEADERS \ - uninstall-pkgconfigDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/libkms/nouveau.c libdrm-2.4.52+really2.4.21/libkms/nouveau.c --- libdrm-2.4.52/libkms/nouveau.c 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/libkms/nouveau.c 2010-06-07 01:11:46.000000000 +0000 @@ -102,7 +102,6 @@ pitch = (pitch + 512 - 1) & ~(512 - 1); size = pitch * height; } else { - free(bo); return -EINVAL; } diff -Nru libdrm-2.4.52/libkms/radeon.c libdrm-2.4.52+really2.4.21/libkms/radeon.c --- libdrm-2.4.52/libkms/radeon.c 2011-10-11 21:10:11.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/libkms/radeon.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,242 +0,0 @@ -/************************************************************************** - * - * Copyright © 2009 VMware, Inc., Palo Alto, CA., USA - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - * USE OR OTHER DEALINGS IN THE SOFTWARE. - * - **************************************************************************/ - - -#define HAVE_STDINT_H -#define _FILE_OFFSET_BITS 64 - -#include -#include -#include -#include -#include "internal.h" - -#include -#include -#include "xf86drm.h" - -#include "radeon_drm.h" - - -#define ALIGNMENT 512 - -struct radeon_bo -{ - struct kms_bo base; - unsigned map_count; -}; - -static int -radeon_get_prop(struct kms_driver *kms, unsigned key, unsigned *out) -{ - switch (key) { - case KMS_BO_TYPE: - *out = KMS_BO_TYPE_SCANOUT_X8R8G8B8 | KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8; - break; - default: - return -EINVAL; - } - return 0; -} - -static int -radeon_destroy(struct kms_driver *kms) -{ - free(kms); - return 0; -} - -static int -radeon_bo_create(struct kms_driver *kms, - const unsigned width, const unsigned height, - const enum kms_bo_type type, const unsigned *attr, - struct kms_bo **out) -{ - struct drm_radeon_gem_create arg; - unsigned size, pitch; - struct radeon_bo *bo; - int i, ret; - - for (i = 0; attr[i]; i += 2) { - switch (attr[i]) { - case KMS_WIDTH: - case KMS_HEIGHT: - case KMS_BO_TYPE: - break; - default: - return -EINVAL; - } - } - - switch (type) { - case KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8: - pitch = 4 * 64; - size = 4 * 64 * 64; - break; - case KMS_BO_TYPE_SCANOUT_X8R8G8B8: - pitch = width * 4; - pitch = (pitch + ALIGNMENT - 1) & ~(ALIGNMENT - 1); - size = pitch * height; - break; - default: - return -EINVAL; - } - - bo = calloc(1, sizeof(*bo)); - if (!bo) - return -ENOMEM; - - memset(&arg, 0, sizeof(arg)); - arg.size = size; - arg.alignment = ALIGNMENT; - arg.initial_domain = RADEON_GEM_DOMAIN_CPU; - arg.flags = 0; - arg.handle = 0; - - ret = drmCommandWriteRead(kms->fd, DRM_RADEON_GEM_CREATE, - &arg, sizeof(arg)); - if (ret) - goto err_free; - - bo->base.kms = kms; - bo->base.handle = arg.handle; - bo->base.size = size; - bo->base.pitch = pitch; - bo->base.offset = 0; - bo->map_count = 0; - - *out = &bo->base; - - return 0; - -err_free: - free(bo); - return ret; -} - -static int -radeon_bo_get_prop(struct kms_bo *bo, unsigned key, unsigned *out) -{ - switch (key) { - default: - return -EINVAL; - } -} - -static int -radeon_bo_map(struct kms_bo *_bo, void **out) -{ - struct radeon_bo *bo = (struct radeon_bo *)_bo; - struct drm_radeon_gem_mmap arg; - void *map = NULL; - int ret; - - if (bo->base.ptr) { - bo->map_count++; - *out = bo->base.ptr; - return 0; - } - - memset(&arg, 0, sizeof(arg)); - arg.handle = bo->base.handle; - arg.offset = bo->base.offset; - arg.size = (uint64_t)bo->base.size; - - ret = drmCommandWriteRead(bo->base.kms->fd, DRM_RADEON_GEM_MMAP, - &arg, sizeof(arg)); - if (ret) - return -errno; - - map = mmap(0, arg.size, PROT_READ | PROT_WRITE, MAP_SHARED, - bo->base.kms->fd, arg.addr_ptr); - if (map == MAP_FAILED) - return -errno; - - bo->base.ptr = map; - bo->map_count++; - *out = bo->base.ptr; - - return 0; -} - -static int -radeon_bo_unmap(struct kms_bo *_bo) -{ - struct radeon_bo *bo = (struct radeon_bo *)_bo; - if (--bo->map_count == 0) { - munmap(bo->base.ptr, bo->base.size); - bo->base.ptr = NULL; - } - return 0; -} - -static int -radeon_bo_destroy(struct kms_bo *_bo) -{ - struct radeon_bo *bo = (struct radeon_bo *)_bo; - struct drm_gem_close arg; - int ret; - - if (bo->base.ptr) { - /* XXX Sanity check map_count */ - munmap(bo->base.ptr, bo->base.size); - bo->base.ptr = NULL; - } - - memset(&arg, 0, sizeof(arg)); - arg.handle = bo->base.handle; - - ret = drmIoctl(bo->base.kms->fd, DRM_IOCTL_GEM_CLOSE, &arg); - if (ret) - return -errno; - - free(bo); - return 0; -} - -int -radeon_create(int fd, struct kms_driver **out) -{ - struct kms_driver *kms; - - kms = calloc(1, sizeof(*kms)); - if (!kms) - return -ENOMEM; - - kms->fd = fd; - - kms->bo_create = radeon_bo_create; - kms->bo_map = radeon_bo_map; - kms->bo_unmap = radeon_bo_unmap; - kms->bo_get_prop = radeon_bo_get_prop; - kms->bo_destroy = radeon_bo_destroy; - kms->get_prop = radeon_get_prop; - kms->destroy = radeon_destroy; - *out = kms; - - return 0; -} diff -Nru libdrm-2.4.52/m4/libtool.m4 libdrm-2.4.52+really2.4.21/m4/libtool.m4 --- libdrm-2.4.52/m4/libtool.m4 2014-01-20 19:04:43.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/m4/libtool.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,7995 +0,0 @@ -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -m4_define([_LT_COPYING], [dnl -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -]) - -# serial 57 LT_INIT - - -# LT_PREREQ(VERSION) -# ------------------ -# Complain and exit if this libtool version is less that VERSION. -m4_defun([LT_PREREQ], -[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, - [m4_default([$3], - [m4_fatal([Libtool version $1 or higher is required], - 63)])], - [$2])]) - - -# _LT_CHECK_BUILDDIR -# ------------------ -# Complain if the absolute build directory name contains unusual characters -m4_defun([_LT_CHECK_BUILDDIR], -[case `pwd` in - *\ * | *\ *) - AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; -esac -]) - - -# LT_INIT([OPTIONS]) -# ------------------ -AC_DEFUN([LT_INIT], -[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT -AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -AC_BEFORE([$0], [LT_LANG])dnl -AC_BEFORE([$0], [LT_OUTPUT])dnl -AC_BEFORE([$0], [LTDL_INIT])dnl -m4_require([_LT_CHECK_BUILDDIR])dnl - -dnl Autoconf doesn't catch unexpanded LT_ macros by default: -m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl -m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl -dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 -dnl unless we require an AC_DEFUNed macro: -AC_REQUIRE([LTOPTIONS_VERSION])dnl -AC_REQUIRE([LTSUGAR_VERSION])dnl -AC_REQUIRE([LTVERSION_VERSION])dnl -AC_REQUIRE([LTOBSOLETE_VERSION])dnl -m4_require([_LT_PROG_LTMAIN])dnl - -_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) - -dnl Parse OPTIONS -_LT_SET_OPTIONS([$0], [$1]) - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -_LT_SETUP - -# Only expand once: -m4_define([LT_INIT]) -])# LT_INIT - -# Old names: -AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) -AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PROG_LIBTOOL], []) -dnl AC_DEFUN([AM_PROG_LIBTOOL], []) - - -# _LT_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -]) - - -# _LT_FILEUTILS_DEFAULTS -# ---------------------- -# It is okay to use these file commands and assume they have been set -# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. -m4_defun([_LT_FILEUTILS_DEFAULTS], -[: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} -])# _LT_FILEUTILS_DEFAULTS - - -# _LT_SETUP -# --------- -m4_defun([_LT_SETUP], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl - -_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl -dnl -_LT_DECL([], [host_alias], [0], [The host system])dnl -_LT_DECL([], [host], [0])dnl -_LT_DECL([], [host_os], [0])dnl -dnl -_LT_DECL([], [build_alias], [0], [The build system])dnl -_LT_DECL([], [build], [0])dnl -_LT_DECL([], [build_os], [0])dnl -dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -test -z "$LN_S" && LN_S="ln -s" -_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl -dnl -AC_REQUIRE([LT_CMD_MAX_LEN])dnl -_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl -_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl -dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl -m4_require([_LT_CMD_RELOAD])dnl -m4_require([_LT_CHECK_MAGIC_METHOD])dnl -m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl -m4_require([_LT_CMD_OLD_ARCHIVE])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_WITH_SYSROOT])dnl - -_LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi -]) -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -_LT_CHECK_OBJDIR - -m4_require([_LT_TAG_COMPILER])dnl - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -_LT_CC_BASENAME([$compiler]) - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - _LT_PATH_MAGIC - fi - ;; -esac - -# Use C for the default configuration in the libtool script -LT_SUPPORTED_TAG([CC]) -_LT_LANG_C_CONFIG -_LT_LANG_DEFAULT_CONFIG -_LT_CONFIG_COMMANDS -])# _LT_SETUP - - -# _LT_PREPARE_SED_QUOTE_VARS -# -------------------------- -# Define a few sed substitution that help us do robust quoting. -m4_defun([_LT_PREPARE_SED_QUOTE_VARS], -[# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([["`\\]]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' -]) - -# _LT_PROG_LTMAIN -# --------------- -# Note that this code is called both from `configure', and `config.status' -# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# `config.status' has no value for ac_aux_dir unless we are using Automake, -# so we pass a copy along to make sure it has a sensible value anyway. -m4_defun([_LT_PROG_LTMAIN], -[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl -_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -ltmain="$ac_aux_dir/ltmain.sh" -])# _LT_PROG_LTMAIN - - -## ------------------------------------- ## -## Accumulate code for creating libtool. ## -## ------------------------------------- ## - -# So that we can recreate a full libtool script including additional -# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the `libtool' -# label. - - -# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) -# ---------------------------------------- -# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL_INIT], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_INIT], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_INIT]) - - -# _LT_CONFIG_LIBTOOL([COMMANDS]) -# ------------------------------ -# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) - - -# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) -# ----------------------------------------------------- -m4_defun([_LT_CONFIG_SAVE_COMMANDS], -[_LT_CONFIG_LIBTOOL([$1]) -_LT_CONFIG_LIBTOOL_INIT([$2]) -]) - - -# _LT_FORMAT_COMMENT([COMMENT]) -# ----------------------------- -# Add leading comment marks to the start of each line, and a trailing -# full-stop to the whole comment if one is not present already. -m4_define([_LT_FORMAT_COMMENT], -[m4_ifval([$1], [ -m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], - [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) -)]) - - - -## ------------------------ ## -## FIXME: Eliminate VARNAME ## -## ------------------------ ## - - -# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) -# ------------------------------------------------------------------- -# CONFIGNAME is the name given to the value in the libtool script. -# VARNAME is the (base) name used in the configure script. -# VALUE may be 0, 1 or 2 for a computed quote escaped value based on -# VARNAME. Any other value will be used directly. -m4_define([_LT_DECL], -[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], - [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], - [m4_ifval([$1], [$1], [$2])]) - lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) - m4_ifval([$4], - [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) - lt_dict_add_subkey([lt_decl_dict], [$2], - [tagged?], [m4_ifval([$5], [yes], [no])])]) -]) - - -# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) -# -------------------------------------------------------- -m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) - - -# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_tag_varnames], -[_lt_decl_filter([tagged?], [yes], $@)]) - - -# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) -# --------------------------------------------------------- -m4_define([_lt_decl_filter], -[m4_case([$#], - [0], [m4_fatal([$0: too few arguments: $#])], - [1], [m4_fatal([$0: too few arguments: $#: $1])], - [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], - [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], - [lt_dict_filter([lt_decl_dict], $@)])[]dnl -]) - - -# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) -# -------------------------------------------------- -m4_define([lt_decl_quote_varnames], -[_lt_decl_filter([value], [1], $@)]) - - -# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_dquote_varnames], -[_lt_decl_filter([value], [2], $@)]) - - -# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_varnames_tagged], -[m4_assert([$# <= 2])dnl -_$0(m4_quote(m4_default([$1], [[, ]])), - m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), - m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) -m4_define([_lt_decl_varnames_tagged], -[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) - - -# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_all_varnames], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_if([$2], [], - m4_quote(lt_decl_varnames), - m4_quote(m4_shift($@))))[]dnl -]) -m4_define([_lt_decl_all_varnames], -[lt_join($@, lt_decl_varnames_tagged([$1], - lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl -]) - - -# _LT_CONFIG_STATUS_DECLARE([VARNAME]) -# ------------------------------------ -# Quote a variable value, and forward it to `config.status' so that its -# declaration there will have the same value as in `configure'. VARNAME -# must have a single quote delimited value for this to work. -m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) - - -# _LT_CONFIG_STATUS_DECLARATIONS -# ------------------------------ -# We delimit libtool config variables with single quotes, so when -# we write them to config.status, we have to be sure to quote all -# embedded single quotes properly. In configure, this macro expands -# each variable declared with _LT_DECL (and _LT_TAGDECL) into: -# -# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' -m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], -[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), - [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAGS -# ---------------- -# Output comment and list of tags supported by the script -m4_defun([_LT_LIBTOOL_TAGS], -[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags="_LT_TAGS"dnl -]) - - -# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) -# ----------------------------------- -# Extract the dictionary values for VARNAME (optionally with TAG) and -# expand to a commented shell variable setting: -# -# # Some comment about what VAR is for. -# visible_name=$lt_internal_name -m4_define([_LT_LIBTOOL_DECLARE], -[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], - [description])))[]dnl -m4_pushdef([_libtool_name], - m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl -m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), - [0], [_libtool_name=[$]$1], - [1], [_libtool_name=$lt_[]$1], - [2], [_libtool_name=$lt_[]$1], - [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl -m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl -]) - - -# _LT_LIBTOOL_CONFIG_VARS -# ----------------------- -# Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' -# script. Tagged libtool config variables (even for the LIBTOOL CONFIG -# section) are produced by _LT_LIBTOOL_TAG_VARS. -m4_defun([_LT_LIBTOOL_CONFIG_VARS], -[m4_foreach([_lt_var], - m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAG_VARS(TAG) -# ------------------------- -m4_define([_LT_LIBTOOL_TAG_VARS], -[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) - - -# _LT_TAGVAR(VARNAME, [TAGNAME]) -# ------------------------------ -m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) - - -# _LT_CONFIG_COMMANDS -# ------------------- -# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of -# variables for single and double quote escaping we saved from calls -# to _LT_DECL, we can put quote escaped variables declarations -# into `config.status', and then the shell code to quote escape them in -# for loops in `config.status'. Finally, any additional code accumulated -# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. -m4_defun([_LT_CONFIG_COMMANDS], -[AC_PROVIDE_IFELSE([LT_OUTPUT], - dnl If the libtool generation code has been placed in $CONFIG_LT, - dnl instead of duplicating it all over again into config.status, - dnl then we will have config.status run $CONFIG_LT later, so it - dnl needs to know what name is stored there: - [AC_CONFIG_COMMANDS([libtool], - [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], - dnl If the libtool generation code is destined for config.status, - dnl expand the accumulated commands and init code now: - [AC_CONFIG_COMMANDS([libtool], - [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) -])#_LT_CONFIG_COMMANDS - - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], -[ - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -_LT_CONFIG_STATUS_DECLARATIONS -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$[]1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -_LT_OUTPUT_LIBTOOL_INIT -]) - -# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) -# ------------------------------------ -# Generate a child script FILE with all initialization necessary to -# reuse the environment learned by the parent script, and make the -# file executable. If COMMENT is supplied, it is inserted after the -# `#!' sequence but before initialization text begins. After this -# macro, additional text can be appended to FILE to form the body of -# the child script. The macro ends with non-zero status if the -# file could not be fully written (such as if the disk is full). -m4_ifdef([AS_INIT_GENERATED], -[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], -[m4_defun([_LT_GENERATED_FILE_INIT], -[m4_require([AS_PREPARE])]dnl -[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl -[lt_write_fail=0 -cat >$1 <<_ASEOF || lt_write_fail=1 -#! $SHELL -# Generated by $as_me. -$2 -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$1 <<\_ASEOF || lt_write_fail=1 -AS_SHELL_SANITIZE -_AS_PREPARE -exec AS_MESSAGE_FD>&1 -_ASEOF -test $lt_write_fail = 0 && chmod +x $1[]dnl -m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT - -# LT_OUTPUT -# --------- -# This macro allows early generation of the libtool script (before -# AC_OUTPUT is called), incase it is used in configure for compilation -# tests. -AC_DEFUN([LT_OUTPUT], -[: ${CONFIG_LT=./config.lt} -AC_MSG_NOTICE([creating $CONFIG_LT]) -_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], -[# Run this file to recreate a libtool stub with the current configuration.]) - -cat >>"$CONFIG_LT" <<\_LTEOF -lt_cl_silent=false -exec AS_MESSAGE_LOG_FD>>config.log -{ - echo - AS_BOX([Running $as_me.]) -} >&AS_MESSAGE_LOG_FD - -lt_cl_help="\ -\`$as_me' creates a local libtool stub from the current configuration, -for use in further configure time tests before the real libtool is -generated. - -Usage: $[0] [[OPTIONS]] - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - -Report bugs to ." - -lt_cl_version="\ -m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl -m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) -configured by $[0], generated by m4_PACKAGE_STRING. - -Copyright (C) 2011 Free Software Foundation, Inc. -This config.lt script is free software; the Free Software Foundation -gives unlimited permision to copy, distribute and modify it." - -while test $[#] != 0 -do - case $[1] in - --version | --v* | -V ) - echo "$lt_cl_version"; exit 0 ;; - --help | --h* | -h ) - echo "$lt_cl_help"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --quiet | --q* | --silent | --s* | -q ) - lt_cl_silent=: ;; - - -*) AC_MSG_ERROR([unrecognized option: $[1] -Try \`$[0] --help' for more information.]) ;; - - *) AC_MSG_ERROR([unrecognized argument: $[1] -Try \`$[0] --help' for more information.]) ;; - esac - shift -done - -if $lt_cl_silent; then - exec AS_MESSAGE_FD>/dev/null -fi -_LTEOF - -cat >>"$CONFIG_LT" <<_LTEOF -_LT_OUTPUT_LIBTOOL_COMMANDS_INIT -_LTEOF - -cat >>"$CONFIG_LT" <<\_LTEOF -AC_MSG_NOTICE([creating $ofile]) -_LT_OUTPUT_LIBTOOL_COMMANDS -AS_EXIT(0) -_LTEOF -chmod +x "$CONFIG_LT" - -# configure is writing to config.log, but config.lt does its own redirection, -# appending to config.log, which fails on DOS, as config.log is still kept -# open by configure. Here we exec the FD to /dev/null, effectively closing -# config.log, so it can be properly (re)opened and appended to by config.lt. -lt_cl_success=: -test "$silent" = yes && - lt_config_lt_args="$lt_config_lt_args --quiet" -exec AS_MESSAGE_LOG_FD>/dev/null -$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false -exec AS_MESSAGE_LOG_FD>>config.log -$lt_cl_success || AS_EXIT(1) -])# LT_OUTPUT - - -# _LT_CONFIG(TAG) -# --------------- -# If TAG is the built-in tag, create an initial libtool script with a -# default configuration from the untagged config vars. Otherwise add code -# to config.status for appending the configuration named by TAG from the -# matching tagged config vars. -m4_defun([_LT_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_CONFIG_SAVE_COMMANDS([ - m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl - m4_if(_LT_TAG, [C], [ - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -_LT_COPYING -_LT_LIBTOOL_TAGS - -# ### BEGIN LIBTOOL CONFIG -_LT_LIBTOOL_CONFIG_VARS -_LT_LIBTOOL_TAG_VARS -# ### END LIBTOOL CONFIG - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - _LT_PROG_LTMAIN - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - _LT_PROG_REPLACE_SHELLFNS - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -], -[cat <<_LT_EOF >> "$ofile" - -dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded -dnl in a comment (ie after a #). -# ### BEGIN LIBTOOL TAG CONFIG: $1 -_LT_LIBTOOL_TAG_VARS(_LT_TAG) -# ### END LIBTOOL TAG CONFIG: $1 -_LT_EOF -])dnl /m4_if -], -[m4_if([$1], [], [ - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile'], []) -])dnl /_LT_CONFIG_SAVE_COMMANDS -])# _LT_CONFIG - - -# LT_SUPPORTED_TAG(TAG) -# --------------------- -# Trace this macro to discover what tags are supported by the libtool -# --tag option, using: -# autoconf --trace 'LT_SUPPORTED_TAG:$1' -AC_DEFUN([LT_SUPPORTED_TAG], []) - - -# C support is built-in for now -m4_define([_LT_LANG_C_enabled], []) -m4_define([_LT_TAGS], []) - - -# LT_LANG(LANG) -# ------------- -# Enable libtool support for the given language if not already enabled. -AC_DEFUN([LT_LANG], -[AC_BEFORE([$0], [LT_OUTPUT])dnl -m4_case([$1], - [C], [_LT_LANG(C)], - [C++], [_LT_LANG(CXX)], - [Go], [_LT_LANG(GO)], - [Java], [_LT_LANG(GCJ)], - [Fortran 77], [_LT_LANG(F77)], - [Fortran], [_LT_LANG(FC)], - [Windows Resource], [_LT_LANG(RC)], - [m4_ifdef([_LT_LANG_]$1[_CONFIG], - [_LT_LANG($1)], - [m4_fatal([$0: unsupported language: "$1"])])])dnl -])# LT_LANG - - -# _LT_LANG(LANGNAME) -# ------------------ -m4_defun([_LT_LANG], -[m4_ifdef([_LT_LANG_]$1[_enabled], [], - [LT_SUPPORTED_TAG([$1])dnl - m4_append([_LT_TAGS], [$1 ])dnl - m4_define([_LT_LANG_]$1[_enabled], [])dnl - _LT_LANG_$1_CONFIG($1)])dnl -])# _LT_LANG - - -m4_ifndef([AC_PROG_GO], [ -############################################################ -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_GO. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -############################################################ -m4_defun([AC_PROG_GO], -[AC_LANG_PUSH(Go)dnl -AC_ARG_VAR([GOC], [Go compiler command])dnl -AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl -_AC_ARG_VAR_LDFLAGS()dnl -AC_CHECK_TOOL(GOC, gccgo) -if test -z "$GOC"; then - if test -n "$ac_tool_prefix"; then - AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) - fi -fi -if test -z "$GOC"; then - AC_CHECK_PROG(GOC, gccgo, gccgo, false) -fi -])#m4_defun -])#m4_ifndef - - -# _LT_LANG_DEFAULT_CONFIG -# ----------------------- -m4_defun([_LT_LANG_DEFAULT_CONFIG], -[AC_PROVIDE_IFELSE([AC_PROG_CXX], - [LT_LANG(CXX)], - [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) - -AC_PROVIDE_IFELSE([AC_PROG_F77], - [LT_LANG(F77)], - [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) - -AC_PROVIDE_IFELSE([AC_PROG_FC], - [LT_LANG(FC)], - [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) - -dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal -dnl pulling things in needlessly. -AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([LT_PROG_GCJ], - [LT_LANG(GCJ)], - [m4_ifdef([AC_PROG_GCJ], - [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([A][M_PROG_GCJ], - [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([LT_PROG_GCJ], - [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) - -AC_PROVIDE_IFELSE([AC_PROG_GO], - [LT_LANG(GO)], - [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) - -AC_PROVIDE_IFELSE([LT_PROG_RC], - [LT_LANG(RC)], - [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) -])# _LT_LANG_DEFAULT_CONFIG - -# Obsolete macros: -AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) -AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) -AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) -AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) -AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_CXX], []) -dnl AC_DEFUN([AC_LIBTOOL_F77], []) -dnl AC_DEFUN([AC_LIBTOOL_FC], []) -dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) -dnl AC_DEFUN([AC_LIBTOOL_RC], []) - - -# _LT_TAG_COMPILER -# ---------------- -m4_defun([_LT_TAG_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl - -_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl -_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl -_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl -_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_TAG_COMPILER - - -# _LT_COMPILER_BOILERPLATE -# ------------------------ -# Check for compiler boilerplate output or warnings with -# the simple compiler test code. -m4_defun([_LT_COMPILER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* -])# _LT_COMPILER_BOILERPLATE - - -# _LT_LINKER_BOILERPLATE -# ---------------------- -# Check for linker boilerplate output or warnings with -# the simple link test code. -m4_defun([_LT_LINKER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* -])# _LT_LINKER_BOILERPLATE - -# _LT_REQUIRED_DARWIN_CHECKS -# ------------------------- -m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ - case $host_os in - rhapsody* | darwin*) - AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) - AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) - AC_CHECK_TOOL([LIPO], [lipo], [:]) - AC_CHECK_TOOL([OTOOL], [otool], [:]) - AC_CHECK_TOOL([OTOOL64], [otool64], [:]) - _LT_DECL([], [DSYMUTIL], [1], - [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) - _LT_DECL([], [NMEDIT], [1], - [Tool to change global to local symbols on Mac OS X]) - _LT_DECL([], [LIPO], [1], - [Tool to manipulate fat objects and archives on Mac OS X]) - _LT_DECL([], [OTOOL], [1], - [ldd/readelf like tool for Mach-O binaries on Mac OS X]) - _LT_DECL([], [OTOOL64], [1], - [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) - - AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], - [lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - # If there is a non-empty error log, and "single_module" - # appears in it, assume the flag caused a linker warning - if test -s conftest.err && $GREP single_module conftest.err; then - cat conftest.err >&AS_MESSAGE_LOG_FD - # Otherwise, if the output was created with a 0 exit code from - # the compiler, it worked. - elif test -f libconftest.dylib && test $_lt_result -eq 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi]) - - AC_CACHE_CHECK([for -exported_symbols_list linker flag], - [lt_cv_ld_exported_symbols_list], - [lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [lt_cv_ld_exported_symbols_list=yes], - [lt_cv_ld_exported_symbols_list=no]) - LDFLAGS="$save_LDFLAGS" - ]) - - AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], - [lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD - echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD - $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -s conftest.err && $GREP force_load conftest.err; then - cat conftest.err >&AS_MESSAGE_LOG_FD - elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - ]) - case $host_os in - rhapsody* | darwin1.[[012]]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[[012]]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac -]) - - -# _LT_DARWIN_LINKER_FEATURES([TAG]) -# --------------------------------- -# Checks for linker and compiler features on darwin -m4_defun([_LT_DARWIN_LINKER_FEATURES], -[ - m4_require([_LT_REQUIRED_DARWIN_CHECKS]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_automatic, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], - [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='' - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all - _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - m4_if([$1], [CXX], -[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then - _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" - fi -],[]) - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -]) - -# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) -# ---------------------------------- -# Links a minimal program and checks the executable -# for the system default hardcoded library path. In most cases, -# this is /usr/lib:/lib, but when the MPI compilers are used -# the location of the communication and MPI libs are included too. -# If we don't find anything, use the default library path according -# to the aix ld manual. -# Store the results from the different compilers for each TAGNAME. -# Allow to override them for all tags through lt_cv_aix_libpath. -m4_defun([_LT_SYS_MODULE_PATH_AIX], -[m4_require([_LT_DECL_SED])dnl -if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], - [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ - lt_aix_libpath_sed='[ - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }]' - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi],[]) - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" - fi - ]) - aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) -fi -])# _LT_SYS_MODULE_PATH_AIX - - -# _LT_SHELL_INIT(ARG) -# ------------------- -m4_define([_LT_SHELL_INIT], -[m4_divert_text([M4SH-INIT], [$1 -])])# _LT_SHELL_INIT - - - -# _LT_PROG_ECHO_BACKSLASH -# ----------------------- -# Find how we can fake an echo command that does not interpret backslash. -# In particular, with Autoconf 2.60 or later we add some code to the start -# of the generated configure script which will find a shell with a builtin -# printf (which we can use as an echo command). -m4_defun([_LT_PROG_ECHO_BACKSLASH], -[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -AC_MSG_CHECKING([how to print strings]) -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$[]1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - -case "$ECHO" in - printf*) AC_MSG_RESULT([printf]) ;; - print*) AC_MSG_RESULT([print -r]) ;; - *) AC_MSG_RESULT([cat]) ;; -esac - -m4_ifdef([_AS_DETECT_SUGGESTED], -[_AS_DETECT_SUGGESTED([ - test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test "X`printf %s $ECHO`" = "X$ECHO" \ - || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) - -_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) -])# _LT_PROG_ECHO_BACKSLASH - - -# _LT_WITH_SYSROOT -# ---------------- -AC_DEFUN([_LT_WITH_SYSROOT], -[AC_MSG_CHECKING([for sysroot]) -AC_ARG_WITH([sysroot], -[ --with-sysroot[=DIR] Search for dependent libraries within DIR - (or the compiler's sysroot if not specified).], -[], [with_sysroot=no]) - -dnl lt_sysroot will always be passed unquoted. We quote it here -dnl in case the user passed a directory name. -lt_sysroot= -case ${with_sysroot} in #( - yes) - if test "$GCC" = yes; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - AC_MSG_RESULT([${with_sysroot}]) - AC_MSG_ERROR([The sysroot must be an absolute path.]) - ;; -esac - - AC_MSG_RESULT([${lt_sysroot:-no}]) -_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl -[dependent libraries, and in which our libraries should be installed.])]) - -# _LT_ENABLE_LOCK -# --------------- -m4_defun([_LT_ENABLE_LOCK], -[AC_ARG_ENABLE([libtool-lock], - [AS_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_LANG_PUSH(C) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-solaris*) - LD="${LD-ld} -m elf_x86_64" - ;; - sparc*-*-solaris*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - # GNU ld 2.21 introduced _sol2 emulations. Use them if available. - if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD="${LD-ld}_sol2" - fi - ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks="$enable_libtool_lock" -])# _LT_ENABLE_LOCK - - -# _LT_PROG_AR -# ----------- -m4_defun([_LT_PROG_AR], -[AC_CHECK_TOOLS(AR, [ar], false) -: ${AR=ar} -: ${AR_FLAGS=cru} -_LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) - -AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], - [lt_cv_ar_at_file=no - AC_COMPILE_IFELSE([AC_LANG_PROGRAM], - [echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - ]) - ]) - -if test "x$lt_cv_ar_at_file" = xno; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi -_LT_DECL([], [archiver_list_spec], [1], - [How to feed a file listing to the archiver]) -])# _LT_PROG_AR - - -# _LT_CMD_OLD_ARCHIVE -# ------------------- -m4_defun([_LT_CMD_OLD_ARCHIVE], -[_LT_PROG_AR - -AC_CHECK_TOOL(STRIP, strip, :) -test -z "$STRIP" && STRIP=: -_LT_DECL([], [STRIP], [1], [A symbol stripping program]) - -AC_CHECK_TOOL(RANLIB, ranlib, :) -test -z "$RANLIB" && RANLIB=: -_LT_DECL([], [RANLIB], [1], - [Commands used to install an old-style archive]) - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac -_LT_DECL([], [old_postinstall_cmds], [2]) -_LT_DECL([], [old_postuninstall_cmds], [2]) -_LT_TAGDECL([], [old_archive_cmds], [2], - [Commands used to build an old-style archive]) -_LT_DECL([], [lock_old_archive_extraction], [0], - [Whether to use a lock for old archive extraction]) -])# _LT_CMD_OLD_ARCHIVE - - -# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([_LT_COMPILER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - fi - $RM conftest* -]) - -if test x"[$]$2" = xyes; then - m4_if([$5], , :, [$5]) -else - m4_if([$6], , :, [$6]) -fi -])# _LT_COMPILER_OPTION - -# Old name: -AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) - - -# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------- -# Check whether the given linker option works -AC_DEFUN([_LT_LINKER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - else - $2=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" -]) - -if test x"[$]$2" = xyes; then - m4_if([$4], , :, [$4]) -else - m4_if([$5], , :, [$5]) -fi -])# _LT_LINKER_OPTION - -# Old name: -AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) - - -# LT_CMD_MAX_LEN -#--------------- -AC_DEFUN([LT_CMD_MAX_LEN], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - os2*) - # The test takes a long time on OS/2. - lt_cv_sys_max_cmd_len=8192 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac -]) -if test -n $lt_cv_sys_max_cmd_len ; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -max_cmd_len=$lt_cv_sys_max_cmd_len -_LT_DECL([], [max_cmd_len], [0], - [What is the maximum length of a command?]) -])# LT_CMD_MAX_LEN - -# Old name: -AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) - - -# _LT_HEADER_DLFCN -# ---------------- -m4_defun([_LT_HEADER_DLFCN], -[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl -])# _LT_HEADER_DLFCN - - -# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ---------------------------------------------------------------- -m4_defun([_LT_TRY_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test "$cross_compiling" = yes; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -[#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -}] -_LT_EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_dlunknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_TRY_DLOPEN_SELF - - -# LT_SYS_DLOPEN_SELF -# ------------------ -AC_DEFUN([LT_SYS_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ]) - ;; - - *) - AC_CHECK_FUNC([shl_load], - [lt_cv_dlopen="shl_load"], - [AC_CHECK_LIB([dld], [shl_load], - [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], - [AC_CHECK_FUNC([dlopen], - [lt_cv_dlopen="dlopen"], - [AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], - [AC_CHECK_LIB([svld], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], - [AC_CHECK_LIB([dld], [dld_link], - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) - ]) - ]) - ]) - ]) - ]) - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - AC_CACHE_CHECK([whether a program can dlopen itself], - lt_cv_dlopen_self, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, - lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) - ]) - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, - lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) - ]) - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi -_LT_DECL([dlopen_support], [enable_dlopen], [0], - [Whether dlopen is supported]) -_LT_DECL([dlopen_self], [enable_dlopen_self], [0], - [Whether dlopen of programs is supported]) -_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], - [Whether dlopen of statically linked programs is supported]) -])# LT_SYS_DLOPEN_SELF - -# Old name: -AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) - - -# _LT_COMPILER_C_O([TAGNAME]) -# --------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler. -# This macro does not hard code the compiler like AC_PROG_CC_C_O. -m4_defun([_LT_COMPILER_C_O], -[m4_require([_LT_DECL_SED])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . 2>&AS_MESSAGE_LOG_FD - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* -]) -_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], - [Does compiler simultaneously support -c and -o options?]) -])# _LT_COMPILER_C_O - - -# _LT_COMPILER_FILE_LOCKS([TAGNAME]) -# ---------------------------------- -# Check to see if we can do hard links to lock some files if needed -m4_defun([_LT_COMPILER_FILE_LOCKS], -[m4_require([_LT_ENABLE_LOCK])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_COMPILER_C_O([$1]) - -hard_links="nottested" -if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - AC_MSG_RESULT([$hard_links]) - if test "$hard_links" = no; then - AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) - need_locks=warn - fi -else - need_locks=no -fi -_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) -])# _LT_COMPILER_FILE_LOCKS - - -# _LT_CHECK_OBJDIR -# ---------------- -m4_defun([_LT_CHECK_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null]) -objdir=$lt_cv_objdir -_LT_DECL([], [objdir], [0], - [The name of the directory that contains temporary libtool files])dnl -m4_pattern_allow([LT_OBJDIR])dnl -AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", - [Define to the sub-directory in which libtool stores uninstalled libraries.]) -])# _LT_CHECK_OBJDIR - - -# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) -# -------------------------------------- -# Check hardcoding attributes. -m4_defun([_LT_LINKER_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || - test -n "$_LT_TAGVAR(runpath_var, $1)" || - test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then - # Linking always hardcodes the temporary library directory. - _LT_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) - -if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || - test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi -_LT_TAGDECL([], [hardcode_action], [0], - [How to hardcode a shared library path into an executable]) -])# _LT_LINKER_HARDCODE_LIBPATH - - -# _LT_CMD_STRIPLIB -# ---------------- -m4_defun([_LT_CMD_STRIPLIB], -[m4_require([_LT_DECL_EGREP]) -striplib= -old_striplib= -AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -fi -_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) -_LT_DECL([], [striplib], [1]) -])# _LT_CMD_STRIPLIB - - -# _LT_SYS_DYNAMIC_LINKER([TAG]) -# ----------------------------- -# PORTME Fill in your ld.so characteristics -m4_defun([_LT_SYS_DYNAMIC_LINKER], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_OBJDUMP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -AC_MSG_CHECKING([dynamic linker characteristics]) -m4_if([$1], - [], [ -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[[lt_foo]]++; } - if (lt_freq[[lt_foo]] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[[4-9]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[[01]] | aix4.[[01]].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[[45]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec="$LIB" - if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[[23]].*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - # Handle Gentoo/FreeBSD as it was Linux - case $host_vendor in - gentoo) - version_type=linux ;; - *) - version_type=freebsd-$objformat ;; - esac - - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - linux) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - need_lib_prefix=no - need_version=no - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[[01]]* | freebsdelf3.[[01]]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ - freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[[3-9]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux # correct to gnu/linux during the next big refactor - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], - [lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ - LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], - [lt_cv_shlibpath_overrides_runpath=yes])]) - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - ]) - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - -_LT_DECL([], [variables_saved_for_relink], [1], - [Variables whose values should be saved in libtool wrapper scripts and - restored at link time]) -_LT_DECL([], [need_lib_prefix], [0], - [Do we need the "lib" prefix for modules?]) -_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) -_LT_DECL([], [version_type], [0], [Library versioning type]) -_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) -_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) -_LT_DECL([], [shlibpath_overrides_runpath], [0], - [Is shlibpath searched before the hard-coded library search path?]) -_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) -_LT_DECL([], [library_names_spec], [1], - [[List of archive names. First name is the real one, the rest are links. - The last name is the one that the linker finds with -lNAME]]) -_LT_DECL([], [soname_spec], [1], - [[The coded name of the library, if different from the real name]]) -_LT_DECL([], [install_override_mode], [1], - [Permission mode override for installation of shared libraries]) -_LT_DECL([], [postinstall_cmds], [2], - [Command to use after installation of a shared archive]) -_LT_DECL([], [postuninstall_cmds], [2], - [Command to use after uninstallation of a shared archive]) -_LT_DECL([], [finish_cmds], [2], - [Commands used to finish a libtool library installation in a directory]) -_LT_DECL([], [finish_eval], [1], - [[As "finish_cmds", except a single script fragment to be evaled but - not shown]]) -_LT_DECL([], [hardcode_into_libs], [0], - [Whether we should hardcode library paths into libraries]) -_LT_DECL([], [sys_lib_search_path_spec], [2], - [Compile-time system search path for libraries]) -_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], - [Run-time system search path for libraries]) -])# _LT_SYS_DYNAMIC_LINKER - - -# _LT_PATH_TOOL_PREFIX(TOOL) -# -------------------------- -# find a file program which can recognize shared library -AC_DEFUN([_LT_PATH_TOOL_PREFIX], -[m4_require([_LT_DECL_EGREP])dnl -AC_MSG_CHECKING([for $1]) -AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -[case $MAGIC_CMD in -[[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -dnl $ac_dummy forces splitting on constant user-supplied paths. -dnl POSIX.2 word splitting is done only on the output of word expansions, -dnl not every word. This closes a longstanding sh security hole. - ac_dummy="m4_if([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$1; then - lt_cv_path_MAGIC_CMD="$ac_dir/$1" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac]) -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) -else - AC_MSG_RESULT(no) -fi -_LT_DECL([], [MAGIC_CMD], [0], - [Used to examine libraries when file_magic_cmd begins with "file"])dnl -])# _LT_PATH_TOOL_PREFIX - -# Old name: -AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) - - -# _LT_PATH_MAGIC -# -------------- -# find a file program which can recognize a shared library -m4_defun([_LT_PATH_MAGIC], -[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=: - fi -fi -])# _LT_PATH_MAGIC - - -# LT_PATH_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([LT_PATH_LD], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PROG_ECHO_BACKSLASH])dnl - -AC_ARG_WITH([gnu-ld], - [AS_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no])dnl - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(lt_cv_path_LD, -[if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[[3-9]]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - -_LT_DECL([], [deplibs_check_method], [1], - [Method to check whether dependent libraries are shared objects]) -_LT_DECL([], [file_magic_cmd], [1], - [Command to use when deplibs_check_method = "file_magic"]) -_LT_DECL([], [file_magic_glob], [1], - [How to find potential files when deplibs_check_method = "file_magic"]) -_LT_DECL([], [want_nocaseglob], [1], - [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) -])# _LT_CHECK_MAGIC_METHOD - - -# LT_PATH_NM -# ---------- -# find the pathname to a BSD- or MS-compatible name lister -AC_DEFUN([LT_PATH_NM], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi]) -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - DUMPBIN=: - ;; - esac - fi - AC_SUBST([DUMPBIN]) - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi -fi -test -z "$NM" && NM=nm -AC_SUBST([NM]) -_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl - -AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], - [lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) - cat conftest.out >&AS_MESSAGE_LOG_FD - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest*]) -])# LT_PATH_NM - -# Old names: -AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) -AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_PROG_NM], []) -dnl AC_DEFUN([AC_PROG_NM], []) - -# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -# -------------------------------- -# how to determine the name of the shared library -# associated with a specific link library. -# -- PORTME fill in with the dynamic library characteristics -m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], -[m4_require([_LT_DECL_EGREP]) -m4_require([_LT_DECL_OBJDUMP]) -m4_require([_LT_DECL_DLLTOOL]) -AC_CACHE_CHECK([how to associate runtime and link libraries], -lt_cv_sharedlib_from_linklib_cmd, -[lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" - ;; -esac -]) -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - -_LT_DECL([], [sharedlib_from_linklib_cmd], [1], - [Command to associate shared and link libraries]) -])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB - - -# _LT_PATH_MANIFEST_TOOL -# ---------------------- -# locate the manifest tool -m4_defun([_LT_PATH_MANIFEST_TOOL], -[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], - [lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&AS_MESSAGE_LOG_FD - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest*]) -if test "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: -fi -_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl -])# _LT_PATH_MANIFEST_TOOL - - -# LT_LIB_M -# -------- -# check for math library -AC_DEFUN([LT_LIB_M], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) - # These system don't have libm, or don't need it - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, cos, LIBM="-lm") - ;; -esac -AC_SUBST([LIBM]) -])# LT_LIB_M - -# Old name: -AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_CHECK_LIBM], []) - - -# _LT_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------- -m4_defun([_LT_COMPILER_NO_RTTI], -[m4_require([_LT_TAG_COMPILER])dnl - -_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - -if test "$GCC" = yes; then - case $cc_basename in - nvcc*) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; - *) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; - esac - - _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -fi -_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], - [Compiler flag to turn off builtin functions]) -])# _LT_COMPILER_NO_RTTI - - -# _LT_CMD_GLOBAL_SYMBOLS -# ---------------------- -m4_defun([_LT_CMD_GLOBAL_SYMBOLS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([LT_PATH_NM])dnl -AC_REQUIRE([LT_PATH_LD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_TAG_COMPILER])dnl - -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -[ -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[[BCDEGRST]]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) - if test "$host_cpu" = ia64; then - symcode='[[ABCDEGRST]]' - fi - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris*) - symcode='[[BDRT]]' - ;; -sco3.2v5*) - symcode='[[DT]]' - ;; -sysv4.2uw2*) - symcode='[[DT]]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[[ABDT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK ['"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx]" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT@&t@_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT@&t@_DLSYM_CONST -#else -# define LT@&t@_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT@&t@_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[[]] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD - fi - else - echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - -_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], - [Take the output of nm and produce a listing of raw symbols and C names]) -_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], - [Transform the output of nm in a proper C declaration]) -_LT_DECL([global_symbol_to_c_name_address], - [lt_cv_sys_global_symbol_to_c_name_address], [1], - [Transform the output of nm in a C name address pair]) -_LT_DECL([global_symbol_to_c_name_address_lib_prefix], - [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], - [Transform the output of nm in a C name address pair when lib prefix is needed]) -_LT_DECL([], [nm_file_list_spec], [1], - [Specify filename containing input files for $NM]) -]) # _LT_CMD_GLOBAL_SYMBOLS - - -# _LT_COMPILER_PIC([TAGNAME]) -# --------------------------- -m4_defun([_LT_COMPILER_PIC], -[m4_require([_LT_TAG_COMPILER])dnl -_LT_TAGVAR(lt_prog_compiler_wl, $1)= -_LT_TAGVAR(lt_prog_compiler_pic, $1)= -_LT_TAGVAR(lt_prog_compiler_static, $1)= - -m4_if([$1], [CXX], [ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - case $host_os in - aix[[4-9]]*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68*) - # Green Hills C++ Compiler - # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - dgux*) - case $cc_basename in - ec++*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - ghcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | dragonfly*) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - if test "$host_cpu" != ia64; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - KCC*) - # KAI C++ Compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - ecpc* ) - # old Intel C++ for x86_64 which still supported -KPIC. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - icpc* ) - # Intel C++, used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - cxx*) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) - # IBM XL 8.0, 9.0 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - esac - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd*) - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - ;; - RCC*) - # Rational C++ 2.4.1 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - cxx*) - # Digital/Compaq C++ - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - lcc*) - # Lucid - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - *) - ;; - esac - ;; - vxworks*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -], -[ - if test "$GCC" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' - if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" - fi - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - hpux9* | hpux10* | hpux11*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' - _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' - ;; - nagfor*) - # NAG Fortran compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - ccc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All Alpha code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='' - ;; - *Sun\ F* | *Sun*Fortran*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - *Sun\ C*) - # Sun C 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - *Intel*\ [[CF]]*Compiler*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - *Portland\ Group*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - esac - ;; - - newsos6) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All OSF/1 code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - rdos*) - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - solaris*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; - esac - ;; - - sunos4*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - unicos*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - - uts4*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -]) -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" - ;; -esac - -AC_CACHE_CHECK([for $compiler option to produce PIC], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then - _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], - [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], - [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; - esac], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -fi -_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], - [Additional compiler flags for building library objects]) - -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) -# -# Check to make sure the static flag actually works. -# -wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" -_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], - _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), - $lt_tmp_static_flag, - [], - [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) -_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], - [Compiler flag to prevent dynamic linking]) -])# _LT_COMPILER_PIC - - -# _LT_LINKER_SHLIBS([TAGNAME]) -# ---------------------------- -# See if the linker supports building shared libraries. -m4_defun([_LT_LINKER_SHLIBS], -[AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -m4_if([$1], [CXX], [ - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - case $host_os in - aix[[4-9]]*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global defined - # symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw* | cegcc*) - case $cc_basename in - cl*) - _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - ;; - esac - ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac -], [ - runpath_var= - _LT_TAGVAR(allow_undefined_flag, $1)= - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(archive_cmds, $1)= - _LT_TAGVAR(archive_expsym_cmds, $1)= - _LT_TAGVAR(compiler_needs_object, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(hardcode_automatic, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_separator, $1)= - _LT_TAGVAR(hardcode_minus_L, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_TAGVAR(inherit_rpath, $1)=no - _LT_TAGVAR(link_all_deplibs, $1)=unknown - _LT_TAGVAR(module_cmds, $1)= - _LT_TAGVAR(module_expsym_cmds, $1)= - _LT_TAGVAR(old_archive_from_new_cmds, $1)= - _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= - _LT_TAGVAR(thread_safe_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - _LT_TAGVAR(include_expsyms, $1)= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. -dnl Note also adjust exclude_expsyms for C++ above. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - _LT_TAGVAR(ld_shlibs, $1)=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; - *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[[3-9]]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - _LT_TAGVAR(whole_archive_flag_spec, $1)= - tmp_sharedflag='--shared' ;; - xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - sunos4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - - if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then - runpath_var= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; - - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; - - bsdi[[45]]*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl*) - # Native MSVC - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - esac - ;; - - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; - - dgux*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2.*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - hpux9*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - m4_if($1, [], [ - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - _LT_LINKER_OPTION([if $CC understands -b], - _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], - [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) - ;; - esac - fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], - [lt_cv_irix_exported_symbol], - [save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - AC_LINK_IFELSE( - [AC_LANG_SOURCE( - [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], - [C++], [[int foo (void) { return 0; }]], - [Fortran 77], [[ - subroutine foo - end]], - [Fortran], [[ - subroutine foo - end]])])], - [lt_cv_irix_exported_symbol=yes], - [lt_cv_irix_exported_symbol=no]) - LDFLAGS="$save_LDFLAGS"]) - if test "$lt_cv_irix_exported_symbol" = yes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - fi - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - newsos6) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; - esac - fi - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - os2*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - solaris*) - _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - fi - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4) - case $host_vendor in - sni) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4.3*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_TAGVAR(ld_shlibs, $1)=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' - ;; - esac - fi - fi -]) -AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) -test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld - -_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl -_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl -_LT_DECL([], [extract_expsyms_cmds], [2], - [The commands to extract the exported symbol list from a shared archive]) - -# -# Do we need to explicitly link libc? -# -case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $_LT_TAGVAR(archive_cmds, $1) in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - AC_CACHE_CHECK([whether -lc should be explicitly linked in], - [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), - [$RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) - _LT_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) - then - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no - else - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - ]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) - ;; - esac - fi - ;; -esac - -_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], - [Whether or not to add -lc for building shared libraries]) -_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], - [enable_shared_with_static_runtimes], [0], - [Whether or not to disallow shared libs when runtime libs are static]) -_LT_TAGDECL([], [export_dynamic_flag_spec], [1], - [Compiler flag to allow reflexive dlopens]) -_LT_TAGDECL([], [whole_archive_flag_spec], [1], - [Compiler flag to generate shared objects directly from archives]) -_LT_TAGDECL([], [compiler_needs_object], [1], - [Whether the compiler copes with passing no objects directly]) -_LT_TAGDECL([], [old_archive_from_new_cmds], [2], - [Create an old-style archive from a shared archive]) -_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], - [Create a temporary old-style archive to link instead of a shared archive]) -_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) -_LT_TAGDECL([], [archive_expsym_cmds], [2]) -_LT_TAGDECL([], [module_cmds], [2], - [Commands used to build a loadable module if different from building - a shared archive.]) -_LT_TAGDECL([], [module_expsym_cmds], [2]) -_LT_TAGDECL([], [with_gnu_ld], [1], - [Whether we are building with GNU ld or not]) -_LT_TAGDECL([], [allow_undefined_flag], [1], - [Flag that allows shared libraries with undefined symbols to be built]) -_LT_TAGDECL([], [no_undefined_flag], [1], - [Flag that enforces no undefined symbols]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], - [Flag to hardcode $libdir into a binary during linking. - This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_separator], [1], - [Whether we need a single "-rpath" flag with a separated argument]) -_LT_TAGDECL([], [hardcode_direct], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary]) -_LT_TAGDECL([], [hardcode_direct_absolute], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary and the resulting library dependency is - "absolute", i.e impossible to change by setting ${shlibpath_var} if the - library is relocated]) -_LT_TAGDECL([], [hardcode_minus_L], [0], - [Set to "yes" if using the -LDIR flag during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_shlibpath_var], [0], - [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_automatic], [0], - [Set to "yes" if building a shared library automatically hardcodes DIR - into the library and all subsequent libraries and executables linked - against it]) -_LT_TAGDECL([], [inherit_rpath], [0], - [Set to yes if linker adds runtime paths of dependent libraries - to runtime path list]) -_LT_TAGDECL([], [link_all_deplibs], [0], - [Whether libtool must link a program against all its dependency libraries]) -_LT_TAGDECL([], [always_export_symbols], [0], - [Set to "yes" if exported symbols are required]) -_LT_TAGDECL([], [export_symbols_cmds], [2], - [The commands to list exported symbols]) -_LT_TAGDECL([], [exclude_expsyms], [1], - [Symbols that should not be listed in the preloaded symbols]) -_LT_TAGDECL([], [include_expsyms], [1], - [Symbols that must always be exported]) -_LT_TAGDECL([], [prelink_cmds], [2], - [Commands necessary for linking programs (against libraries) with templates]) -_LT_TAGDECL([], [postlink_cmds], [2], - [Commands necessary for finishing linking programs]) -_LT_TAGDECL([], [file_list_spec], [1], - [Specify filename containing input files]) -dnl FIXME: Not yet implemented -dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], -dnl [Compiler flag to generate thread safe objects]) -])# _LT_LINKER_SHLIBS - - -# _LT_LANG_C_CONFIG([TAG]) -# ------------------------ -# Ensure that the configuration variables for a C compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_defun([_LT_LANG_C_CONFIG], -[m4_require([_LT_DECL_EGREP])dnl -lt_save_CC="$CC" -AC_LANG_PUSH(C) - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - -_LT_TAG_COMPILER -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - LT_SYS_DLOPEN_SELF - _LT_CMD_STRIPLIB - - # Report which library types will actually be built - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_CONFIG($1) -fi -AC_LANG_POP -CC="$lt_save_CC" -])# _LT_LANG_C_CONFIG - - -# _LT_LANG_CXX_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a C++ compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_defun([_LT_LANG_CXX_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -else - _lt_caught_CXX_error=yes -fi - -AC_LANG_PUSH(C++) -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(compiler_needs_object, $1)=no -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for C++ test sources. -ac_ext=cpp - -# Object file extension for compiled C++ test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the CXX compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_caught_CXX_error" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="int some_variable = 0;" - - # Code to be used in simple link tests - lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC=$CC - lt_save_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX - lt_save_with_gnu_ld=$with_gnu_ld - lt_save_path_LD=$lt_cv_path_LD - if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx - else - $as_unset lt_cv_prog_gnu_ld - fi - if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX - else - $as_unset lt_cv_path_LD - fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} - CFLAGS=$CXXFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - - if test -n "$compiler"; then - # We don't want -fno-exception when compiling C++ code, so set the - # no_builtin_flag separately - if test "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - else - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - fi - - if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - LT_PATH_LD - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | - $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - - else - GXX=no - with_gnu_ld=no - wlarc= - fi - - # PORTME: fill in a description of your system's C++ link characteristics - AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) - _LT_TAGVAR(ld_shlibs, $1)=yes - case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' - - if test "$GXX" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to - # export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared - # libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - cygwin* | mingw* | pw32* | cegcc*) - case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - func_to_tool_file "$lt_outputfile"~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # g++ - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; - - dgux*) - case $cc_basename in - ec++*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx*) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - freebsd2.*) - # C++ shared libraries reported to be fairly broken before - # switch to ELF - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - freebsd-elf*) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - - freebsd* | dragonfly*) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; - - gnu*) - ;; - - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - hpux9*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - ;; - *) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - irix5* | irix6*) - case $cc_basename in - CC*) - # SGI C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' - fi - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - esac - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc* | ecpc* ) - # Intel C++ - with_gnu_ld=yes - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - case `$CC -V` in - *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) - _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - ;; - cxx*) - # Compaq C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' - ;; - xl* | mpixl* | bgxl*) - # IBM XL 8.0 on PPC, with GNU ld - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='func_echo_all' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - esac - ;; - esac - ;; - - lynxos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - m88k*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - mvs*) - case $cc_basename in - cxx*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - - *nto* | *qnx*) - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; - - openbsd2*) - # C++ shared libraries are fairly broken - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd=func_echo_all - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - case $host in - osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; - *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; - esac - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - cxx*) - case $host in - osf3*) - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - ;; - *) - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ - $RM $lib.exp' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - case $host in - osf3*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - psos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - lcc*) - # Lucid - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(archive_cmds_need_lc,$1)=yes - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. - # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes - - output_verbose_link_cmd='func_echo_all' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - fi - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ - '"$_LT_TAGVAR(old_archive_cmds, $1)" - _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ - '"$_LT_TAGVAR(reload_cmds, $1)" - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - vxworks*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - - AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) - test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - - _LT_TAGVAR(GCC, $1)="$GXX" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC - with_gnu_ld=$lt_save_with_gnu_ld - lt_cv_path_LDCXX=$lt_cv_path_LD - lt_cv_path_LD=$lt_save_path_LD - lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld - lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -fi # test "$_lt_caught_CXX_error" != yes - -AC_LANG_POP -])# _LT_LANG_CXX_CONFIG - - -# _LT_FUNC_STRIPNAME_CNF -# ---------------------- -# func_stripname_cnf prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# -# This function is identical to the (non-XSI) version of func_stripname, -# except this one can be used by m4 code that may be executed by configure, -# rather than the libtool script. -m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl -AC_REQUIRE([_LT_DECL_SED]) -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) -func_stripname_cnf () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname_cnf -])# _LT_FUNC_STRIPNAME_CNF - -# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) -# --------------------------------- -# Figure out "hidden" library dependencies from verbose -# compiler output when linking a shared library. -# Parse the compiler output and extract the necessary -# objects, libraries and library flags. -m4_defun([_LT_SYS_HIDDEN_LIBDEPS], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl -# Dependencies to place before and after the object being linked: -_LT_TAGVAR(predep_objects, $1)= -_LT_TAGVAR(postdep_objects, $1)= -_LT_TAGVAR(predeps, $1)= -_LT_TAGVAR(postdeps, $1)= -_LT_TAGVAR(compiler_lib_search_path, $1)= - -dnl we can't use the lt_simple_compile_test_code here, -dnl because it contains code intended for an executable, -dnl not a library. It's possible we should let each -dnl tag define a new lt_????_link_test_code variable, -dnl but it's only used here... -m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF -int a; -void foo (void) { a = 0; } -_LT_EOF -], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF -class Foo -{ -public: - Foo (void) { a = 0; } -private: - int a; -}; -_LT_EOF -], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF - subroutine foo - implicit none - integer*4 a - a=0 - return - end -_LT_EOF -], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF - subroutine foo - implicit none - integer a - a=0 - return - end -_LT_EOF -], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF -public class foo { - private int a; - public void bar (void) { - a = 0; - } -}; -_LT_EOF -], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF -package foo -func foo() { -} -_LT_EOF -]) - -_lt_libdeps_save_CFLAGS=$CFLAGS -case "$CC $CFLAGS " in #( -*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; -esac - -dnl Parse the compiler output and extract the necessary -dnl objects, libraries and library flags. -if AC_TRY_EVAL(ac_compile); then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. - - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no - - for p in `eval "$output_verbose_link_cmd"`; do - case ${prev}${p} in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" || - test $p = "-R"; then - prev=$p - continue - fi - - # Expand the sysroot to ease extracting the directories later. - if test -z "$prev"; then - case $p in - -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; - -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; - -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; - esac - fi - case $p in - =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; - esac - if test "$pre_test_object_deps_done" = no; then - case ${prev} in - -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then - _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" - else - _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$_LT_TAGVAR(postdeps, $1)"; then - _LT_TAGVAR(postdeps, $1)="${prev}${p}" - else - _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" - fi - fi - prev= - ;; - - *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi - - if test "$pre_test_object_deps_done" = no; then - if test -z "$_LT_TAGVAR(predep_objects, $1)"; then - _LT_TAGVAR(predep_objects, $1)="$p" - else - _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" - fi - else - if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then - _LT_TAGVAR(postdep_objects, $1)="$p" - else - _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling $1 test program" -fi - -$RM -f confest.$objext -CFLAGS=$_lt_libdeps_save_CFLAGS - -# PORTME: override above test on systems where it is broken -m4_if([$1], [CXX], -[case $host_os in -interix[[3-9]]*) - # Interix 3.5 installs completely hosed .la files for C++, so rather than - # hack all around it, let's just trust "g++" to DTRT. - _LT_TAGVAR(predep_objects,$1)= - _LT_TAGVAR(postdep_objects,$1)= - _LT_TAGVAR(postdeps,$1)= - ;; - -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; -esac -]) - -case " $_LT_TAGVAR(postdeps, $1) " in -*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; -esac - _LT_TAGVAR(compiler_lib_search_dirs, $1)= -if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then - _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` -fi -_LT_TAGDECL([], [compiler_lib_search_dirs], [1], - [The directories searched by this compiler when creating a shared library]) -_LT_TAGDECL([], [predep_objects], [1], - [Dependencies to place before and after the objects being linked to - create a shared library]) -_LT_TAGDECL([], [postdep_objects], [1]) -_LT_TAGDECL([], [predeps], [1]) -_LT_TAGDECL([], [postdeps], [1]) -_LT_TAGDECL([], [compiler_lib_search_path], [1], - [The library search path used internally by the compiler when linking - a shared library]) -])# _LT_SYS_HIDDEN_LIBDEPS - - -# _LT_LANG_F77_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a Fortran 77 compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_F77_CONFIG], -[AC_LANG_PUSH(Fortran 77) -if test -z "$F77" || test "X$F77" = "Xno"; then - _lt_disable_F77=yes -fi - -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the F77 compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_F77" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC - lt_save_CFLAGS=$CFLAGS - CC=${F77-"f77"} - CFLAGS=$FFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - GCC=$G77 - if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_TAGVAR(GCC, $1)="$G77" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - GCC=$lt_save_GCC - CC="$lt_save_CC" - CFLAGS="$lt_save_CFLAGS" -fi # test "$_lt_disable_F77" != yes - -AC_LANG_POP -])# _LT_LANG_F77_CONFIG - - -# _LT_LANG_FC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for a Fortran compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_FC_CONFIG], -[AC_LANG_PUSH(Fortran) - -if test -z "$FC" || test "X$FC" = "Xno"; then - _lt_disable_FC=yes -fi - -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for fc test sources. -ac_ext=${ac_fc_srcext-f} - -# Object file extension for compiled fc test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the FC compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_FC" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC - lt_save_CFLAGS=$CFLAGS - CC=${FC-"f95"} - CFLAGS=$FCFLAGS - compiler=$CC - GCC=$ac_cv_fc_compiler_gnu - - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - - if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - GCC=$lt_save_GCC - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS -fi # test "$_lt_disable_FC" != yes - -AC_LANG_POP -])# _LT_LANG_FC_CONFIG - - -# _LT_LANG_GCJ_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Java Compiler compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_GCJ_CONFIG], -[AC_REQUIRE([LT_PROG_GCJ])dnl -AC_LANG_SAVE - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC=yes -CC=${GCJ-"gcj"} -CFLAGS=$GCJFLAGS -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)="$LD" -_LT_CC_BASENAME([$compiler]) - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -_LT_TAGVAR(archive_cmds_need_lc, $1)=no - -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) -fi - -AC_LANG_RESTORE - -GCC=$lt_save_GCC -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_GCJ_CONFIG - - -# _LT_LANG_GO_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Go compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_GO_CONFIG], -[AC_REQUIRE([LT_PROG_GO])dnl -AC_LANG_SAVE - -# Source file extension for Go test sources. -ac_ext=go - -# Object file extension for compiled Go test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="package main; func main() { }" - -# Code to be used in simple link tests -lt_simple_link_test_code='package main; func main() { }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC=yes -CC=${GOC-"gccgo"} -CFLAGS=$GOFLAGS -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)="$LD" -_LT_CC_BASENAME([$compiler]) - -# Go did not exist at the time GCC didn't implicitly link libc in. -_LT_TAGVAR(archive_cmds_need_lc, $1)=no - -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) -fi - -AC_LANG_RESTORE - -GCC=$lt_save_GCC -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_GO_CONFIG - - -# _LT_LANG_RC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for the Windows resource compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_RC_CONFIG], -[AC_REQUIRE([LT_PROG_RC])dnl -AC_LANG_SAVE - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' - -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC= -CC=${RC-"windres"} -CFLAGS= -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) -_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - -if test -n "$compiler"; then - : - _LT_CONFIG($1) -fi - -GCC=$lt_save_GCC -AC_LANG_RESTORE -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_RC_CONFIG - - -# LT_PROG_GCJ -# ----------- -AC_DEFUN([LT_PROG_GCJ], -[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], - [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], - [AC_CHECK_TOOL(GCJ, gcj,) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS)])])[]dnl -]) - -# Old name: -AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_GCJ], []) - - -# LT_PROG_GO -# ---------- -AC_DEFUN([LT_PROG_GO], -[AC_CHECK_TOOL(GOC, gccgo,) -]) - - -# LT_PROG_RC -# ---------- -AC_DEFUN([LT_PROG_RC], -[AC_CHECK_TOOL(RC, windres,) -]) - -# Old name: -AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_RC], []) - - -# _LT_DECL_EGREP -# -------------- -# If we don't have a new enough Autoconf to choose the best grep -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_EGREP], -[AC_REQUIRE([AC_PROG_EGREP])dnl -AC_REQUIRE([AC_PROG_FGREP])dnl -test -z "$GREP" && GREP=grep -_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) -_LT_DECL([], [EGREP], [1], [An ERE matcher]) -_LT_DECL([], [FGREP], [1], [A literal string matcher]) -dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too -AC_SUBST([GREP]) -]) - - -# _LT_DECL_OBJDUMP -# -------------- -# If we don't have a new enough Autoconf to choose the best objdump -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_OBJDUMP], -[AC_CHECK_TOOL(OBJDUMP, objdump, false) -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) -AC_SUBST([OBJDUMP]) -]) - -# _LT_DECL_DLLTOOL -# ---------------- -# Ensure DLLTOOL variable is set. -m4_defun([_LT_DECL_DLLTOOL], -[AC_CHECK_TOOL(DLLTOOL, dlltool, false) -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) -AC_SUBST([DLLTOOL]) -]) - -# _LT_DECL_SED -# ------------ -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -m4_defun([_LT_DECL_SED], -[AC_PROG_SED -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" -_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) -_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], - [Sed that helps us avoid accidentally triggering echo(1) options like -n]) -])# _LT_DECL_SED - -m4_ifndef([AC_PROG_SED], [ -############################################################ -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_SED. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -############################################################ - -m4_defun([AC_PROG_SED], -[AC_MSG_CHECKING([for a sed that does not truncate output]) -AC_CACHE_VAL(lt_cv_path_SED, -[# Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -IFS=$as_save_IFS -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -]) -SED=$lt_cv_path_SED -AC_SUBST([SED]) -AC_MSG_RESULT([$SED]) -])#AC_PROG_SED -])#m4_ifndef - -# Old name: -AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_SED], []) - - -# _LT_CHECK_SHELL_FEATURES -# ------------------------ -# Find out whether the shell is Bourne or XSI compatible, -# or has some other useful features. -m4_defun([_LT_CHECK_SHELL_FEATURES], -[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -AC_MSG_RESULT([$xsi_shell]) -_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) - -AC_MSG_CHECKING([whether the shell understands "+="]) -lt_shell_append=no -( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -AC_MSG_RESULT([$lt_shell_append]) -_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi -_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac -_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl -_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl -])# _LT_CHECK_SHELL_FEATURES - - -# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) -# ------------------------------------------------------ -# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and -# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. -m4_defun([_LT_PROG_FUNCTION_REPLACE], -[dnl { -sed -e '/^$1 ()$/,/^} # $1 /c\ -$1 ()\ -{\ -m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) -} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: -]) - - -# _LT_PROG_REPLACE_SHELLFNS -# ------------------------- -# Replace existing portable implementations of several shell functions with -# equivalent extended shell implementations where those features are available.. -m4_defun([_LT_PROG_REPLACE_SHELLFNS], -[if test x"$xsi_shell" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl - func_split_long_opt_name=${1%%=*} - func_split_long_opt_arg=${1#*=}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl - func_split_short_opt_arg=${1#??} - func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) - - _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) - - _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) - - _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) -fi - -if test x"$lt_shell_append" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) - - _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl - func_quote_for_eval "${2}" -dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ - eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) -fi -]) - -# _LT_PATH_CONVERSION_FUNCTIONS -# ----------------------------- -# Determine which file name conversion functions should be used by -# func_to_host_file (and, implicitly, by func_to_host_path). These are needed -# for certain cross-compile configurations and native mingw. -m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_MSG_CHECKING([how to convert $build file names to $host format]) -AC_CACHE_VAL(lt_cv_to_host_file_cmd, -[case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac -]) -to_host_file_cmd=$lt_cv_to_host_file_cmd -AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) -_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], - [0], [convert $build file names to $host format])dnl - -AC_MSG_CHECKING([how to convert $build file names to toolchain format]) -AC_CACHE_VAL(lt_cv_to_tool_file_cmd, -[#assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac -]) -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) -_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], - [0], [convert $build files to toolchain format])dnl -])# _LT_PATH_CONVERSION_FUNCTIONS diff -Nru libdrm-2.4.52/m4/lt~obsolete.m4 libdrm-2.4.52+really2.4.21/m4/lt~obsolete.m4 --- libdrm-2.4.52/m4/lt~obsolete.m4 2014-01-20 19:04:43.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/m4/lt~obsolete.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ -# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004. -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 5 lt~obsolete.m4 - -# These exist entirely to fool aclocal when bootstrapping libtool. -# -# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) -# which have later been changed to m4_define as they aren't part of the -# exported API, or moved to Autoconf or Automake where they belong. -# -# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN -# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us -# using a macro with the same name in our local m4/libtool.m4 it'll -# pull the old libtool.m4 in (it doesn't see our shiny new m4_define -# and doesn't know about Autoconf macros at all.) -# -# So we provide this file, which has a silly filename so it's always -# included after everything else. This provides aclocal with the -# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything -# because those macros already exist, or will be overwritten later. -# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. -# -# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. -# Yes, that means every name once taken will need to remain here until -# we give up compatibility with versions before 1.7, at which point -# we need to keep only those names which we still refer to. - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) - -m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) -m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) -m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) -m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) -m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) -m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) -m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) -m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) -m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) -m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) -m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) -m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) -m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) -m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) -m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) -m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) -m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) -m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) -m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) -m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) -m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) -m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) -m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) -m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) -m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) -m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) -m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) -m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) -m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) -m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) -m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) -m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) -m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) -m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) -m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) -m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) -m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) -m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) -m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) -m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) -m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) -m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) -m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) -m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) -m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) -m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) -m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) -m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) -m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff -Nru libdrm-2.4.52/m4/ltoptions.m4 libdrm-2.4.52+really2.4.21/m4/ltoptions.m4 --- libdrm-2.4.52/m4/ltoptions.m4 2014-01-20 19:04:43.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/m4/ltoptions.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,384 +0,0 @@ -# Helper functions for option handling. -*- Autoconf -*- -# -# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 7 ltoptions.m4 - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) - - -# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) -# ------------------------------------------ -m4_define([_LT_MANGLE_OPTION], -[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) - - -# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) -# --------------------------------------- -# Set option OPTION-NAME for macro MACRO-NAME, and if there is a -# matching handler defined, dispatch to it. Other OPTION-NAMEs are -# saved as a flag. -m4_define([_LT_SET_OPTION], -[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl -m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), - _LT_MANGLE_DEFUN([$1], [$2]), - [m4_warning([Unknown $1 option `$2'])])[]dnl -]) - - -# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) -# ------------------------------------------------------------ -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -m4_define([_LT_IF_OPTION], -[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) - - -# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) -# ------------------------------------------------------- -# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME -# are set. -m4_define([_LT_UNLESS_OPTIONS], -[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), - [m4_define([$0_found])])])[]dnl -m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 -])[]dnl -]) - - -# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) -# ---------------------------------------- -# OPTION-LIST is a space-separated list of Libtool options associated -# with MACRO-NAME. If any OPTION has a matching handler declared with -# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about -# the unknown option and exit. -m4_defun([_LT_SET_OPTIONS], -[# Set options -m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [_LT_SET_OPTION([$1], _LT_Option)]) - -m4_if([$1],[LT_INIT],[ - dnl - dnl Simply set some default values (i.e off) if boolean options were not - dnl specified: - _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no - ]) - _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no - ]) - dnl - dnl If no reference was made to various pairs of opposing options, then - dnl we run the default mode handler for the pair. For example, if neither - dnl `shared' nor `disable-shared' was passed, we enable building of shared - dnl archives by default: - _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) - _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], - [_LT_ENABLE_FAST_INSTALL]) - ]) -])# _LT_SET_OPTIONS - - -## --------------------------------- ## -## Macros to handle LT_INIT options. ## -## --------------------------------- ## - -# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) -# ----------------------------------------- -m4_define([_LT_MANGLE_DEFUN], -[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) - - -# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) -# ----------------------------------------------- -m4_define([LT_OPTION_DEFINE], -[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl -])# LT_OPTION_DEFINE - - -# dlopen -# ------ -LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes -]) - -AU_DEFUN([AC_LIBTOOL_DLOPEN], -[_LT_SET_OPTION([LT_INIT], [dlopen]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `dlopen' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) - - -# win32-dll -# --------- -# Declare package support for building win32 dll's. -LT_OPTION_DEFINE([LT_INIT], [win32-dll], -[enable_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; -esac - -test -z "$AS" && AS=as -_LT_DECL([], [AS], [1], [Assembler program])dnl - -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl - -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl -])# win32-dll - -AU_DEFUN([AC_LIBTOOL_WIN32_DLL], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -_LT_SET_OPTION([LT_INIT], [win32-dll]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `win32-dll' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) - - -# _LT_ENABLE_SHARED([DEFAULT]) -# ---------------------------- -# implement the --enable-shared flag, and supports the `shared' and -# `disable-shared' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_SHARED], -[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([shared], - [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], - [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) - - _LT_DECL([build_libtool_libs], [enable_shared], [0], - [Whether or not to build shared libraries]) -])# _LT_ENABLE_SHARED - -LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) - -# Old names: -AC_DEFUN([AC_ENABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) -]) - -AC_DEFUN([AC_DISABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], [disable-shared]) -]) - -AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_SHARED], []) -dnl AC_DEFUN([AM_DISABLE_SHARED], []) - - - -# _LT_ENABLE_STATIC([DEFAULT]) -# ---------------------------- -# implement the --enable-static flag, and support the `static' and -# `disable-static' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_STATIC], -[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([static], - [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], - [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_static=]_LT_ENABLE_STATIC_DEFAULT) - - _LT_DECL([build_old_libs], [enable_static], [0], - [Whether or not to build static libraries]) -])# _LT_ENABLE_STATIC - -LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) - -# Old names: -AC_DEFUN([AC_ENABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) -]) - -AC_DEFUN([AC_DISABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], [disable-static]) -]) - -AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_STATIC], []) -dnl AC_DEFUN([AM_DISABLE_STATIC], []) - - - -# _LT_ENABLE_FAST_INSTALL([DEFAULT]) -# ---------------------------------- -# implement the --enable-fast-install flag, and support the `fast-install' -# and `disable-fast-install' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_FAST_INSTALL], -[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([fast-install], - [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], - [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) - -_LT_DECL([fast_install], [enable_fast_install], [0], - [Whether or not to optimize for fast installation])dnl -])# _LT_ENABLE_FAST_INSTALL - -LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) - -# Old names: -AU_DEFUN([AC_ENABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `fast-install' option into LT_INIT's first parameter.]) -]) - -AU_DEFUN([AC_DISABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `disable-fast-install' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) -dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) - - -# _LT_WITH_PIC([MODE]) -# -------------------- -# implement the --with-pic flag, and support the `pic-only' and `no-pic' -# LT_INIT options. -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -m4_define([_LT_WITH_PIC], -[AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for lt_pkg in $withval; do - IFS="$lt_save_ifs" - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [pic_mode=default]) - -test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) - -_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl -])# _LT_WITH_PIC - -LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) - -# Old name: -AU_DEFUN([AC_LIBTOOL_PICMODE], -[_LT_SET_OPTION([LT_INIT], [pic-only]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `pic-only' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) - -## ----------------- ## -## LTDL_INIT Options ## -## ----------------- ## - -m4_define([_LTDL_MODE], []) -LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], - [m4_define([_LTDL_MODE], [nonrecursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [recursive], - [m4_define([_LTDL_MODE], [recursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [subproject], - [m4_define([_LTDL_MODE], [subproject])]) - -m4_define([_LTDL_TYPE], []) -LT_OPTION_DEFINE([LTDL_INIT], [installable], - [m4_define([_LTDL_TYPE], [installable])]) -LT_OPTION_DEFINE([LTDL_INIT], [convenience], - [m4_define([_LTDL_TYPE], [convenience])]) diff -Nru libdrm-2.4.52/m4/ltsugar.m4 libdrm-2.4.52+really2.4.21/m4/ltsugar.m4 --- libdrm-2.4.52/m4/ltsugar.m4 2014-01-20 19:04:43.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/m4/ltsugar.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,123 +0,0 @@ -# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 6 ltsugar.m4 - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) - - -# lt_join(SEP, ARG1, [ARG2...]) -# ----------------------------- -# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their -# associated separator. -# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier -# versions in m4sugar had bugs. -m4_define([lt_join], -[m4_if([$#], [1], [], - [$#], [2], [[$2]], - [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) -m4_define([_lt_join], -[m4_if([$#$2], [2], [], - [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) - - -# lt_car(LIST) -# lt_cdr(LIST) -# ------------ -# Manipulate m4 lists. -# These macros are necessary as long as will still need to support -# Autoconf-2.59 which quotes differently. -m4_define([lt_car], [[$1]]) -m4_define([lt_cdr], -[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], - [$#], 1, [], - [m4_dquote(m4_shift($@))])]) -m4_define([lt_unquote], $1) - - -# lt_append(MACRO-NAME, STRING, [SEPARATOR]) -# ------------------------------------------ -# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. -# Note that neither SEPARATOR nor STRING are expanded; they are appended -# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). -# No SEPARATOR is output if MACRO-NAME was previously undefined (different -# than defined and empty). -# -# This macro is needed until we can rely on Autoconf 2.62, since earlier -# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. -m4_define([lt_append], -[m4_define([$1], - m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) - - - -# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) -# ---------------------------------------------------------- -# Produce a SEP delimited list of all paired combinations of elements of -# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list -# has the form PREFIXmINFIXSUFFIXn. -# Needed until we can rely on m4_combine added in Autoconf 2.62. -m4_define([lt_combine], -[m4_if(m4_eval([$# > 3]), [1], - [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl -[[m4_foreach([_Lt_prefix], [$2], - [m4_foreach([_Lt_suffix], - ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, - [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) - - -# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) -# ----------------------------------------------------------------------- -# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited -# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. -m4_define([lt_if_append_uniq], -[m4_ifdef([$1], - [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], - [lt_append([$1], [$2], [$3])$4], - [$5])], - [lt_append([$1], [$2], [$3])$4])]) - - -# lt_dict_add(DICT, KEY, VALUE) -# ----------------------------- -m4_define([lt_dict_add], -[m4_define([$1($2)], [$3])]) - - -# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) -# -------------------------------------------- -m4_define([lt_dict_add_subkey], -[m4_define([$1($2:$3)], [$4])]) - - -# lt_dict_fetch(DICT, KEY, [SUBKEY]) -# ---------------------------------- -m4_define([lt_dict_fetch], -[m4_ifval([$3], - m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), - m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) - - -# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) -# ----------------------------------------------------------------- -m4_define([lt_if_dict_fetch], -[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], - [$5], - [$6])]) - - -# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) -# -------------------------------------------------------------- -m4_define([lt_dict_filter], -[m4_if([$5], [], [], - [lt_join(m4_quote(m4_default([$4], [[, ]])), - lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), - [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl -]) diff -Nru libdrm-2.4.52/m4/ltversion.m4 libdrm-2.4.52+really2.4.21/m4/ltversion.m4 --- libdrm-2.4.52/m4/ltversion.m4 2014-01-20 19:04:43.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/m4/ltversion.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -# ltversion.m4 -- version numbers -*- Autoconf -*- -# -# Copyright (C) 2004 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# @configure_input@ - -# serial 3337 ltversion.m4 -# This file is part of GNU Libtool - -m4_define([LT_PACKAGE_VERSION], [2.4.2]) -m4_define([LT_PACKAGE_REVISION], [1.3337]) - -AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.2' -macro_revision='1.3337' -_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) -_LT_DECL(, macro_revision, 0) -]) diff -Nru libdrm-2.4.52/Makefile.am libdrm-2.4.52+really2.4.21/Makefile.am --- libdrm-2.4.52/Makefile.am 2014-01-20 18:58:05.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/Makefile.am 2010-06-07 01:11:45.000000000 +0000 @@ -18,7 +18,9 @@ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} +AUTOMAKE_OPTIONS = foreign + +DISTCHECK_CONFIGURE_FLAGS = --enable-nouveau-experimental-api --enable-radeon-experimental-api pkgconfigdir = @pkgconfigdir@ pkgconfig_DATA = libdrm.pc @@ -39,19 +41,7 @@ RADEON_SUBDIR = radeon endif -if HAVE_OMAP -OMAP_SUBDIR = omap -endif - -if HAVE_EXYNOS -EXYNOS_SUBDIR = exynos -endif - -if HAVE_FREEDRENO -FREEDRENO_SUBDIR = freedreno -endif - -SUBDIRS = . $(LIBKMS_SUBDIR) $(INTEL_SUBDIR) $(NOUVEAU_SUBDIR) $(RADEON_SUBDIR) $(OMAP_SUBDIR) $(EXYNOS_SUBDIR) $(FREEDRENO_SUBDIR) tests include man +SUBDIRS = . $(LIBKMS_SUBDIR) $(INTEL_SUBDIR) $(NOUVEAU_SUBDIR) $(RADEON_SUBDIR) tests include libdrm_la_LTLIBRARIES = libdrm.la libdrm_ladir = $(libdir) @@ -59,8 +49,6 @@ libdrm_la_LIBADD = @CLOCK_LIB@ libdrm_la_CPPFLAGS = -I$(top_srcdir)/include/drm -AM_CFLAGS = \ - $(VALGRIND_CFLAGS) libdrm_la_SOURCES = \ xf86drm.c \ diff -Nru libdrm-2.4.52/Makefile.in libdrm-2.4.52+really2.4.21/Makefile.in --- libdrm-2.4.52/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,1106 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Copyright 2005 Adam Jackson. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# on the rights to use, copy, modify, merge, publish, distribute, sub -# license, and/or sell copies of the Software, and to permit persons to whom -# the Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL -# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = . -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/configure $(am__configure_deps) \ - $(srcdir)/config.h.in $(srcdir)/libdrm.pc.in \ - $(top_srcdir)/build-aux/depcomp $(libdrminclude_HEADERS) \ - README build-aux/config.guess build-aux/config.sub \ - build-aux/depcomp build-aux/install-sh build-aux/missing \ - build-aux/ltmain.sh $(top_srcdir)/build-aux/config.guess \ - $(top_srcdir)/build-aux/config.sub \ - $(top_srcdir)/build-aux/install-sh \ - $(top_srcdir)/build-aux/ltmain.sh \ - $(top_srcdir)/build-aux/missing -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = libdrm.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdrm_ladir)" \ - "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libdrmincludedir)" -LTLIBRARIES = $(libdrm_la_LTLIBRARIES) -libdrm_la_DEPENDENCIES = -am_libdrm_la_OBJECTS = libdrm_la-xf86drm.lo libdrm_la-xf86drmHash.lo \ - libdrm_la-xf86drmRandom.lo libdrm_la-xf86drmSL.lo \ - libdrm_la-xf86drmMode.lo -libdrm_la_OBJECTS = $(am_libdrm_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libdrm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libdrm_la_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libdrm_la_SOURCES) -DIST_SOURCES = $(libdrm_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(pkgconfig_DATA) -HEADERS = $(libdrminclude_HEADERS) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir dist dist-all distcheck -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ - $(LISP)config.h.in -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -CSCOPE = cscope -DIST_SUBDIRS = . libkms intel nouveau radeon omap exynos freedreno \ - tests include man -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - if test -d "$(distdir)"; then \ - find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -rf "$(distdir)" \ - || { sleep 5 && rm -rf "$(distdir)"; }; \ - else :; fi -am__post_remove_distdir = $(am__remove_distdir) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 -GZIP_ENV = --best -DIST_TARGETS = dist-bzip2 dist-gzip -distuninstallcheck_listfiles = find . -type f -print -am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ - | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} -pkgconfig_DATA = libdrm.pc -@HAVE_LIBKMS_TRUE@LIBKMS_SUBDIR = libkms -@HAVE_INTEL_TRUE@INTEL_SUBDIR = intel -@HAVE_NOUVEAU_TRUE@NOUVEAU_SUBDIR = nouveau -@HAVE_RADEON_TRUE@RADEON_SUBDIR = radeon -@HAVE_OMAP_TRUE@OMAP_SUBDIR = omap -@HAVE_EXYNOS_TRUE@EXYNOS_SUBDIR = exynos -@HAVE_FREEDRENO_TRUE@FREEDRENO_SUBDIR = freedreno -SUBDIRS = . $(LIBKMS_SUBDIR) $(INTEL_SUBDIR) $(NOUVEAU_SUBDIR) $(RADEON_SUBDIR) $(OMAP_SUBDIR) $(EXYNOS_SUBDIR) $(FREEDRENO_SUBDIR) tests include man -libdrm_la_LTLIBRARIES = libdrm.la -libdrm_ladir = $(libdir) -libdrm_la_LDFLAGS = -version-number 2:4:0 -no-undefined -libdrm_la_LIBADD = @CLOCK_LIB@ -libdrm_la_CPPFLAGS = -I$(top_srcdir)/include/drm -AM_CFLAGS = \ - $(VALGRIND_CFLAGS) - -libdrm_la_SOURCES = \ - xf86drm.c \ - xf86drmHash.c \ - xf86drmRandom.c \ - xf86drmSL.c \ - xf86drmMode.c \ - xf86atomic.h \ - libdrm_lists.h - -libdrmincludedir = ${includedir} -libdrminclude_HEADERS = xf86drm.h xf86drmMode.h -EXTRA_DIST = libdrm.pc.in include/drm/* -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -am--refresh: Makefile - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -$(am__aclocal_m4_deps): - -config.h: stamp-h1 - @if test ! -f $@; then rm -f stamp-h1; else :; fi - @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 -libdrm.pc: $(top_builddir)/config.status $(srcdir)/libdrm.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ - -install-libdrm_laLTLIBRARIES: $(libdrm_la_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(libdrm_la_LTLIBRARIES)'; test -n "$(libdrm_ladir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_ladir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_ladir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdrm_ladir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdrm_ladir)"; \ - } - -uninstall-libdrm_laLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_la_LTLIBRARIES)'; test -n "$(libdrm_ladir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdrm_ladir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdrm_ladir)/$$f"; \ - done - -clean-libdrm_laLTLIBRARIES: - -test -z "$(libdrm_la_LTLIBRARIES)" || rm -f $(libdrm_la_LTLIBRARIES) - @list='$(libdrm_la_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libdrm.la: $(libdrm_la_OBJECTS) $(libdrm_la_DEPENDENCIES) $(EXTRA_libdrm_la_DEPENDENCIES) - $(AM_V_CCLD)$(libdrm_la_LINK) -rpath $(libdrm_ladir) $(libdrm_la_OBJECTS) $(libdrm_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrm_la-xf86drm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrm_la-xf86drmHash.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrm_la-xf86drmMode.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrm_la-xf86drmRandom.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrm_la-xf86drmSL.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -libdrm_la-xf86drm.lo: xf86drm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdrm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libdrm_la-xf86drm.lo -MD -MP -MF $(DEPDIR)/libdrm_la-xf86drm.Tpo -c -o libdrm_la-xf86drm.lo `test -f 'xf86drm.c' || echo '$(srcdir)/'`xf86drm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdrm_la-xf86drm.Tpo $(DEPDIR)/libdrm_la-xf86drm.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xf86drm.c' object='libdrm_la-xf86drm.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdrm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libdrm_la-xf86drm.lo `test -f 'xf86drm.c' || echo '$(srcdir)/'`xf86drm.c - -libdrm_la-xf86drmHash.lo: xf86drmHash.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdrm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libdrm_la-xf86drmHash.lo -MD -MP -MF $(DEPDIR)/libdrm_la-xf86drmHash.Tpo -c -o libdrm_la-xf86drmHash.lo `test -f 'xf86drmHash.c' || echo '$(srcdir)/'`xf86drmHash.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdrm_la-xf86drmHash.Tpo $(DEPDIR)/libdrm_la-xf86drmHash.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xf86drmHash.c' object='libdrm_la-xf86drmHash.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdrm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libdrm_la-xf86drmHash.lo `test -f 'xf86drmHash.c' || echo '$(srcdir)/'`xf86drmHash.c - -libdrm_la-xf86drmRandom.lo: xf86drmRandom.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdrm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libdrm_la-xf86drmRandom.lo -MD -MP -MF $(DEPDIR)/libdrm_la-xf86drmRandom.Tpo -c -o libdrm_la-xf86drmRandom.lo `test -f 'xf86drmRandom.c' || echo '$(srcdir)/'`xf86drmRandom.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdrm_la-xf86drmRandom.Tpo $(DEPDIR)/libdrm_la-xf86drmRandom.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xf86drmRandom.c' object='libdrm_la-xf86drmRandom.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdrm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libdrm_la-xf86drmRandom.lo `test -f 'xf86drmRandom.c' || echo '$(srcdir)/'`xf86drmRandom.c - -libdrm_la-xf86drmSL.lo: xf86drmSL.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdrm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libdrm_la-xf86drmSL.lo -MD -MP -MF $(DEPDIR)/libdrm_la-xf86drmSL.Tpo -c -o libdrm_la-xf86drmSL.lo `test -f 'xf86drmSL.c' || echo '$(srcdir)/'`xf86drmSL.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdrm_la-xf86drmSL.Tpo $(DEPDIR)/libdrm_la-xf86drmSL.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xf86drmSL.c' object='libdrm_la-xf86drmSL.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdrm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libdrm_la-xf86drmSL.lo `test -f 'xf86drmSL.c' || echo '$(srcdir)/'`xf86drmSL.c - -libdrm_la-xf86drmMode.lo: xf86drmMode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdrm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libdrm_la-xf86drmMode.lo -MD -MP -MF $(DEPDIR)/libdrm_la-xf86drmMode.Tpo -c -o libdrm_la-xf86drmMode.lo `test -f 'xf86drmMode.c' || echo '$(srcdir)/'`xf86drmMode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdrm_la-xf86drmMode.Tpo $(DEPDIR)/libdrm_la-xf86drmMode.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xf86drmMode.c' object='libdrm_la-xf86drmMode.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdrm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libdrm_la-xf86drmMode.lo `test -f 'xf86drmMode.c' || echo '$(srcdir)/'`xf86drmMode.c - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool config.lt -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-libdrmincludeHEADERS: $(libdrminclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(libdrminclude_HEADERS)'; test -n "$(libdrmincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrmincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrmincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libdrmincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libdrmincludedir)" || exit $$?; \ - done - -uninstall-libdrmincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libdrminclude_HEADERS)'; test -n "$(libdrmincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(libdrmincludedir)'; $(am__uninstall_files_from_dir) - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscope: cscope.files - test ! -s cscope.files \ - || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) -clean-cscope: - -rm -f cscope.files -cscope.files: clean-cscope cscopelist -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -rm -f cscope.out cscope.in.out cscope.po.out cscope.files - -distdir: $(DISTFILES) - $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done - -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__post_remove_distdir) -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__post_remove_distdir) - -dist-lzip: distdir - tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__post_remove_distdir) - -dist-xz: distdir - tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__post_remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__post_remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__post_remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__post_remove_distdir) - -dist dist-all: - $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' - $(am__post_remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lz*) \ - lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir) - chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_inst - chmod a-w $(distdir) - test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(AM_DISTCHECK_CONFIGURE_FLAGS) \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ - && cd "$$am__cwd" \ - || exit 1 - $(am__post_remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @test -n '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: trying to run $@ with an empty' \ - '$$(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - $(am__cd) '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-recursive -all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) config.h -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdrm_ladir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libdrmincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libdrm_laLTLIBRARIES clean-libtool \ - mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-hdr distclean-libtool distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-libdrm_laLTLIBRARIES \ - install-libdrmincludeHEADERS install-pkgconfigDATA - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-libdrm_laLTLIBRARIES \ - uninstall-libdrmincludeHEADERS uninstall-pkgconfigDATA - -.MAKE: $(am__recursive_targets) all install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ - am--refresh check check-am clean clean-cscope clean-generic \ - clean-libdrm_laLTLIBRARIES clean-libtool cscope cscopelist-am \ - ctags ctags-am dist dist-all dist-bzip2 dist-gzip dist-lzip \ - dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ - distclean-compile distclean-generic distclean-hdr \ - distclean-libtool distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am \ - install-libdrm_laLTLIBRARIES install-libdrmincludeHEADERS \ - install-man install-pdf install-pdf-am install-pkgconfigDATA \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am \ - uninstall-libdrm_laLTLIBRARIES uninstall-libdrmincludeHEADERS \ - uninstall-pkgconfigDATA - - -copy-headers : - cp -r $(kernel_source)/usr/include/drm $(top_srcdir)/include - -commit-headers : copy-headers - git add include - git commit -am "Copy headers from kernel $$(GIT_DIR=$(kernel_source)/.git git describe)" - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/man/drmAvailable.xml libdrm-2.4.52+really2.4.21/man/drmAvailable.xml --- libdrm-2.4.52/man/drmAvailable.xml 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/man/drmAvailable.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ - - - - - - - - Direct Rendering Manager - libdrm - September 2012 - - - Developer - David - Herrmann - dh.herrmann@googlemail.com - - - - - - drmAvailable - 3 - - - - drmAvailable - determine whether a DRM kernel driver has been - loaded - - - - - - #include <xf86drm.h> - - - int drmAvailable - void - - - - - - - Description - drmAvailable allows the caller to determine - whether a kernel DRM driver is loaded. - - - - Return Value - drmAvailable returns 1 if a DRM driver is - currently loaded. Otherwise 0 is returned. - - - - Reporting Bugs - Bugs in this function should be reported to - http://bugs.freedesktop.org under the "Mesa" product, with "Other" or - "libdrm" as the component. - - - - See Also - - drm7, - drmOpen3 - - - diff -Nru libdrm-2.4.52/man/drmHandleEvent.xml libdrm-2.4.52+really2.4.21/man/drmHandleEvent.xml --- libdrm-2.4.52/man/drmHandleEvent.xml 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/man/drmHandleEvent.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,102 +0,0 @@ - - - - - - - - Direct Rendering Manager - libdrm - September 2012 - - - Developer - David - Herrmann - dh.herrmann@googlemail.com - - - - - - drmHandleEvent - 3 - - - - drmHandleEvent - read and process pending DRM events - - - - - - #include <xf86drm.h> - - - int drmHandleEvent - int fd - drmEventContextPtr evctx - - - - - - - Description - drmHandleEvent processes outstanding DRM events - on the DRM file-descriptor passed as fd. This - function should be called after the DRM file-descriptor has polled - readable; it will read the events and use the passed-in - evctx structure to call function pointers - with the parameters noted below: - - -typedef struct _drmEventContext { - int version; - void (*vblank_handler) (int fd, - unsigned int sequence, - unsigned int tv_sec, - unsigned int tv_usec, - void *user_data) - void (*page_flip_handler) (int fd, - unsigned int sequence, - unsigned int tv_sec, - unsigned int tv_usec, - void *user_data) -} drmEventContext, *drmEventContextPtr; - - - - - - - - Return Value - drmHandleEvent returns 0 on - success, or if there is no data to read from the file-descriptor. - Returns -1 if the read on the file-descriptor fails - or returns less than a full event record. - - - - Reporting Bugs - Bugs in this function should be reported to - http://bugs.freedesktop.org under the "Mesa" product, with "Other" or - "libdrm" as the component. - - - - See Also - - drm7, - drm-kms7, - drmModePageFlip3, - drmWaitVBlank3 - - - diff -Nru libdrm-2.4.52/man/drm-kms.xml libdrm-2.4.52+really2.4.21/man/drm-kms.xml --- libdrm-2.4.52/man/drm-kms.xml 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/man/drm-kms.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,342 +0,0 @@ - - - - - - - - Direct Rendering Manager - libdrm - September 2012 - - - Developer - David - Herrmann - dh.herrmann@googlemail.com - - - - - - drm-kms - 7 - - - - drm-kms - Kernel Mode-Setting - - - - - #include <xf86drm.h> - #include <xf86drmMode.h> - - - - - Description - Each DRM device provides access to manage which monitors and displays - are currently used and what frames to be displayed. This task is - called Kernel Mode-Setting (KMS). Historically, - this was done in user-space and called - User-space Mode-Setting (UMS). Almost all - open-source drivers now provide the KMS kernel API to do this in the - kernel, however, many non-open-source binary drivers from different - vendors still do not support this. You can use - drmModeSettingSupported3 - to check whether your driver supports this. To understand how KMS - works, we need to introduce 5 objects: CRTCs, - Planes, Encoders, - Connectors and - Framebuffers. - - - - CRTCs - - A CRTC short for - CRT Controller is an abstraction - representing a part of the chip that contains a pointer to a - scanout buffer. Therefore, the number of CRTCs available - determines how many independent scanout buffers can be active - at any given time. The CRTC structure contains several fields - to support this: a pointer to some video memory (abstracted as - a frame-buffer object), a list of driven connectors, a display - mode and an (x, y) offset into the video memory to support - panning or configurations where one piece of video memory - spans multiple CRTCs. A CRTC is the central point where - configuration of displays happens. You select which objects to - use, which modes and which parameters and then configure each - CRTC via - drmModeCrtcSet3 - to drive the display devices. - - - - Planes - - A plane respresents an image source that - can be blended with or overlayed on top of a CRTC during the - scanout process. Planes are associated with a frame-buffer to - crop a portion of the image memory (source) and optionally - scale it to a destination size. The result is then blended - with or overlayed on top of a CRTC. Planes are not provided by - all hardware and the number of available planes is limited. If - planes are not available or if not enough planes are - available, the user should fall back to normal software - blending (via GPU or CPU). - - - - Encoders - - An encoder takes pixel data from a CRTC - and converts it to a format suitable for any attached - connectors. On some devices, it may be possible to have a CRTC - send data to more than one encoder. In that case, both - encoders would receive data from the same scanout buffer, - resulting in a cloned display - configuration across the connectors attached to each - encoder. - - - - Connectors - - A connector is the final destination of - pixel-data on a device, and usually connects directly to an - external display device like a monitor or laptop panel. A - connector can only be attached to one encoder at a time. The - connector is also the structure where information about the - attached display is kept, so it contains fields for display - data, EDID data, - DPMS and - connection status, and information about - modes supported on the attached displays. - - - - Framebuffers - - Framebuffers are abstract memory objects - that provide a source of pixel data to scanout to a CRTC. - Applications explicitely request the creation of framebuffers - and can control their behavior. Framebuffers rely on the - underneath memory manager for low-level memory operations. - When creating a framebuffer, applications pass a memory handle - through the API which is used as backing storage. The - framebuffer itself is only an abstract object with no data. It - just refers to memory buffers that must be created with the - drm-memory7 - API. - - - - - - - Mode-Setting - Before mode-setting can be performed, an application needs to call - drmSetMaster3 - to become DRM-Master. It then has exclusive - access to the KMS API. A call to - drmModeGetResources3 - returns a list of CRTCs, - Connectors, Encoders and - Planes. - - Normal procedure now includes: First, you select which connectors - you want to use. Users are mostly interested in which monitor or - display-panel is active so you need to make sure to arrange them in - the correct logical order and select the correct ones to use. For - each connector, you need to find a CRTC to drive this connector. If - you want to clone output to two or more connectors, you may use a - single CRTC for all cloned connectors (if the hardware supports - this). To find a suitable CRTC, you need to iterate over the list of - encoders that are available for each connector. Each encoder - contains a list of CRTCs that it can work with and you simply select - one of these CRTCs. If you later program the CRTC to control a - connector, it automatically selects the best encoder. However, this - procedure is needed so your CRTC has at least one working encoder - for the selected connector. See the Examples - section below for more information. - - All valid modes for a connector can be retrieved with a call to - drmModeGetConnector3 - You need to select the mode you want to use and save it. The first - mode in the list is the default mode with the highest resolution - possible and often a suitable choice. - - After you have a working connector+CRTC+mode combination, you need - to create a framebuffer that is used for scanout. Memory buffer - allocation is driver-depedent and described in - drm-memory7. - You need to create a buffer big enough for your selected mode. Now - you can create a framebuffer object that uses your memory-buffer as - scanout buffer. You can do this with - drmModeAddFB3 - and - drmModeAddFB23. - - As a last step, you want to program your CRTC to drive your selected - connector. You can do this with a call to - drmModeSetCrtc3. - - - - Page-Flipping - A call to - drmModeSetCrtc3 - is executed immediately and forces the CRTC to use the new scanout - buffer. If you want smooth-transitions without tearing, you probably - use double-buffering. You need to create one framebuffer object for - each buffer you use. You can then call - drmModeSetCrtc3 - on the next buffer to flip. If you want to synchronize your flips - with vertical-blanks, you can use - drmModePageFlip3 - which schedules your page-flip for the next - vblank. - - - - Planes - Planes are controlled independently from CRTCs. That is, a call to - drmModeSetCrtc3 - does not affect planes. Instead, you need to call - drmModeSetPlane3 - to configure a plane. This requires the plane ID, a CRTC, a - framebuffer and offsets into the plane-framebuffer and the - CRTC-framebuffer. The CRTC then blends the content from the plane - over the CRTC framebuffer buffer during scanout. As this does not - involve any software-blending, it is way faster than traditional - blending. However, plane resources are limited. See - drmModeGetPlaneResources3 - for more information. - - - - Cursors - Similar to planes, many hardware also supports cursors. A cursor is - a very small buffer with an image that is blended over the CRTC - framebuffer. You can set a different cursor for each CRTC with - drmModeSetCursor3 - and move it on the screen with - drmModeMoveCursor3. - This allows to move the cursor on the screen without rerendering. If - no hardware cursors are supported, you need to rerender for each - frame the cursor is moved. - - - - - - Examples - Some examples of how basic mode-setting can be done. See the man-page - of each DRM function for more information. - - - CRTC/Encoder Selection - If you retrieved all display configuration information via - drmModeGetResources3 - as drmModeRes *res, - selected a connector from the list in - res->connectors - and retrieved the connector-information as - drmModeConnector *conn - via - drmModeGetConnector3 - then this example shows, how you can find a suitable CRTC id to - drive this connector. This function takes a file-descriptor to the - DRM device (see - drmOpen3) - as fd, a pointer to the retrieved resources as - res and a pointer to the selected connector as - conn. It returns an integer smaller than 0 on - failure, otherwise, a valid CRTC id is returned. - - -static int modeset_find_crtc(int fd, drmModeRes *res, drmModeConnector *conn) -{ - drmModeEncoder *enc; - unsigned int i, j; - - /* iterate all encoders of this connector */ - for (i = 0; i < conn->count_encoders; ++i) { - enc = drmModeGetEncoder(fd, conn->encoders[i]); - if (!enc) { - /* cannot retrieve encoder, ignoring... */ - continue; - } - - /* iterate all global CRTCs */ - for (j = 0; j < res->count_crtcs; ++j) { - /* check whether this CRTC works with the encoder */ - if (!(enc->possible_crtcs & (1 << j))) - continue; - - - /* Here you need to check that no other connector - * currently uses the CRTC with id "crtc". If you intend - * to drive one connector only, then you can skip this - * step. Otherwise, simply scan your list of configured - * connectors and CRTCs whether this CRTC is already - * used. If it is, then simply continue the search here. */ - if (res->crtcs[j] "is unused") { - drmModeFreeEncoder(enc); - return res->crtcs[j]; - } - } - - drmModeFreeEncoder(enc); - } - - /* cannot find a suitable CRTC */ - return -ENOENT; -} - - - - - - - - Reporting Bugs - Bugs in this manual should be reported to - http://bugs.freedesktop.org under the "Mesa" product, with "Other" or - "libdrm" as the component. - - - - See Also - - drm7, - drm-memory7, - drmModeGetResources3, - drmModeGetConnector3, - drmModeGetEncoder3, - drmModeGetCrtc3, - drmModeSetCrtc3, - drmModeGetFB3, - drmModeAddFB3, - drmModeAddFB23, - drmModeRmFB3, - drmModePageFlip3, - drmModeGetPlaneResources3, - drmModeGetPlane3, - drmModeSetPlane3, - drmModeSetCursor3, - drmModeMoveCursor3, - drmSetMaster3, - drmAvailable3, - drmCheckModesettingSupported3, - drmOpen3 - - - diff -Nru libdrm-2.4.52/man/drm-memory.xml libdrm-2.4.52+really2.4.21/man/drm-memory.xml --- libdrm-2.4.52/man/drm-memory.xml 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/man/drm-memory.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,430 +0,0 @@ - - - - - - - - Direct Rendering Manager - libdrm - September 2012 - - - Developer - David - Herrmann - dh.herrmann@googlemail.com - - - - - - drm-memory - 7 - - - - drm-memory - drm-mm - drm-gem - drm-ttm - DRM Memory Management - - - - - #include <xf86drm.h> - - - - - Description - Many modern high-end GPUs come with their own memory managers. They - even include several different caches that need to be synchronized - during access. Textures, framebuffers, command buffers and more need - to be stored in memory that can be accessed quickly by the GPU. - Therefore, memory management on GPUs is highly driver- and - hardware-dependent. - - However, there are several frameworks in the kernel that are used by - more than one driver. These can be used for trivial mode-setting - without requiring driver-dependent code. But for - hardware-accelerated rendering you need to read the manual pages for - the driver you want to work with. - - - Dumb-Buffers - Almost all in-kernel DRM hardware drivers support an API called - Dumb-Buffers. This API allows to create buffers - of arbitrary size that can be used for scanout. These buffers can be - memory mapped via - mmap2 - so you can render into them on the CPU. However, GPU access to these - buffers is often not possible. Therefore, they are fine for simple - tasks but not suitable for complex compositions and - renderings. - - The DRM_IOCTL_MODE_CREATE_DUMB ioctl can be - used to create a dumb buffer. The kernel will return a 32bit handle - that can be used to manage the buffer with the DRM API. You can - create framebuffers with - drmModeAddFB3 - and use it for mode-setting and scanout. To access the buffer, you - first need to retrieve the offset of the buffer. The - DRM_IOCTL_MODE_MAP_DUMB ioctl requests the DRM - subsystem to prepare the buffer for memory-mapping and returns a - fake-offset that can be used with - mmap2. - - The DRM_IOCTL_MODE_CREATE_DUMB ioctl takes as - argument a structure of type - struct drm_mode_create_dumb: - - -struct drm_mode_create_dumb { - __u32 height; - __u32 width; - __u32 bpp; - __u32 flags; - - __u32 handle; - __u32 pitch; - __u64 size; -}; - - - The fields height, - width, bpp and - flags have to be provided by the caller. - The other fields are filled by the kernel with the return values. - height and - width are the dimensions of the - rectangular buffer that is created. bpp - is the number of bits-per-pixel and must be a multiple of - 8. You most commonly want to pass - 32 here. The flags - field is currently unused and must be zeroed. Different flags to - modify the behavior may be added in the future. After calling the - ioctl, the handle, - pitch and size - fields are filled by the kernel. handle - is a 32bit gem handle that identifies the buffer. This is used by - several other calls that take a gem-handle or memory-buffer as - argument. The pitch field is the - pitch (or stride) of the new buffer. Most drivers use 32bit or 64bit - aligned stride-values. The size field - contains the absolute size in bytes of the buffer. This can normally - also be computed with - (height * pitch + width) * bpp / 4. - - To prepare the buffer for - mmap2 - you need to use the DRM_IOCTL_MODE_MAP_DUMB - ioctl. It takes as argument a structure of type - struct drm_mode_map_dumb: - - -struct drm_mode_map_dumb { - __u32 handle; - __u32 pad; - - __u64 offset; -}; - - - You need to put the gem-handle that was previously retrieved via - DRM_IOCTL_MODE_CREATE_DUMB into the - handle field. The - pad field is unused padding and must be - zeroed. After completion, the offset - field will contain an offset that can be used with - mmap2 - on the DRM file-descriptor. - - If you don't need your dumb-buffer, anymore, you have to destroy it - with DRM_IOCTL_MODE_DESTROY_DUMB. If you close - the DRM file-descriptor, all open dumb-buffers are automatically - destroyed. This ioctl takes as argument a structure of type - struct drm_mode_destroy_dumb: - - -struct drm_mode_destroy_dumb { - __u32 handle; -}; - - - You only need to put your handle into the - handle field. After this call, the handle - is invalid and may be reused for new buffers by the dumb-API. - - - - - TTM - TTM stands for - Translation Table Manager and is a generic - memory-manager provided by the kernel. It does not provide a common - user-space API so you need to look at each driver interface if you - want to use it. See for instance the radeon manpages for more - information on memory-management with radeon and TTM. - - - - GEM - GEM stands for - Graphics Execution Manager and is a generic DRM - memory-management framework in the kernel, that is used by many - different drivers. Gem is designed to manage graphics memory, - control access to the graphics device execution context and handle - essentially NUMA environment unique to modern graphics hardware. Gem - allows multiple applications to share graphics device resources - without the need to constantly reload the entire graphics card. Data - may be shared between multiple applications with gem ensuring that - the correct memory synchronization occurs. - - Gem provides simple mechanisms to manage graphics data and control - execution flow within the linux DRM subsystem. However, gem is not a - complete framework that is fully driver independent. Instead, if - provides many functions that are shared between many drivers, but - each driver has to implement most of memory-management with - driver-dependent ioctls. This manpage tries to describe the - semantics (and if it applies, the syntax) that is shared between all - drivers that use gem. - - All GEM APIs are defined as - ioctl2 - on the DRM file descriptor. An application must be authorized via - drmAuthMagic3 - to the current DRM-Master to access the GEM subsystem. A driver that - does not support gem will return ENODEV for all - these ioctls. Invalid object handles return - EINVAL and invalid object names return - ENOENT. - - Gem provides explicit memory management primitives. System pages are - allocated when the object is created, either as the fundamental - storage for hardware where system memory is used by the graphics - processor directly, or as backing store for graphics-processor - resident memory. - - Objects are referenced from user-space using handles. These are, for - all intents and purposes, equivalent to file descriptors but avoid - the overhead. Newer kernel drivers also support the - drm-prime7 - infrastructure which can return real file-descriptor for gem-handles - using the linux dma-buf API. Objects may be published with a name so - that other applications and processes can access them. The name - remains valid as long as the object exists. Gem-objects are - reference counted in the kernel. The object is only destroyed when - all handles from user-space were closed. - - Gem-buffers cannot be created with a generic API. Each driver - provides its own API to create gem-buffers. See for example - DRM_I915_GEM_CREATE, - DRM_NOUVEAU_GEM_NEW or - DRM_RADEON_GEM_CREATE. Each of these ioctls - returns a gem-handle that can be passed to different generic ioctls. - The libgbm library from the - mesa3D distribution tries to provide a - driver-independent API to create gbm buffers and retrieve a - gbm-handle to them. It allows to create buffers for different - use-cases including scanout, rendering, cursors and CPU-access. See - the libgbm library for more information or look at the - driver-dependent man-pages (for example - drm-intel7 - or - drm-radeon7). - - Gem-buffers can be closed with the - DRM_IOCTL_GEM_CLOSE ioctl. It takes as argument - a structure of type struct drm_gem_close: - - -struct drm_gem_close { - __u32 handle; - __u32 pad; -}; - - - The handle field is the gem-handle to be - closed. The pad field is unused padding. - It must be zeroed. After this call the gem handle cannot be used by - this process anymore and may be reused for new gem objects by the - gem API. - - If you want to share gem-objects between different processes, you - can create a name for them and pass this name to other processes - which can then open this gem-object. Names are currently 32bit - integer IDs and have no special protection. That is, if you put a - name on your gem-object, every other client that has access to the - DRM device and is authenticated via - drmAuthMagic3 - to the current DRM-Master, can guess the name - and open or access the gem-object. If you want more fine-grained - access control, you can use the new - drm-prime7 - API to retrieve file-descriptors for gem-handles. To create a name - for a gem-handle, you use the - DRM_IOCTL_GEM_FLINK ioctl. It takes as argument - a structure of type struct drm_gem_flink: - - -struct drm_gem_flink { - __u32 handle; - __u32 name; -}; - - - You have to put your handle into the - handle field. After completion, the - kernel has put the new unique name into the - name field. You can now pass this name to - other processes which can then import the name with the - DRM_IOCTL_GEM_OPEN ioctl. It takes as argument - a structure of type struct drm_gem_open: - - -struct drm_gem_open { - __u32 name; - - __u32 handle; - __u32 size; -}; - - - You have to fill in the name field with - the name of the gem-object that you want to open. The kernel will - fill in the handle and - size fields with the new handle and size - of the gem-object. You can now access the gem-object via the handle - as if you created it with the gem API. - - Besides generic buffer management, the GEM API does not provide any - generic access. Each driver implements its own functionality on top - of this API. This includes execution-buffers, GTT management, - context creation, CPU access, GPU I/O and more. The next - higher-level API is OpenGL. So if you want to - use more GPU features, you should use the - mesa3D library to create OpenGL contexts on DRM - devices. This does not require any - windowing-system like X11, but can also be done on raw DRM devices. - However, this is beyond the scope of this man-page. You may have a - look at other mesa3D manpages, including libgbm and libEGL. 2D - software-rendering (rendering with the CPU) can be achieved with the - dumb-buffer-API in a driver-independent fashion, however, for - hardware-accelerated 2D or 3D rendering you must use OpenGL. Any - other API that tries to abstract the driver-internals to access - GEM-execution-buffers and other GPU internals, would simply reinvent - OpenGL so it is not provided. But if you need more detailed - information for a specific driver, you may have a look into the - driver-manpages, including - drm-intel7, - drm-radeon7 - and - drm-nouveau7. - However, the - drm-prime7 - infrastructure and the generic gem API as described here allow - display-managers to handle graphics-buffers and render-clients - without any deeper knowledge of the GPU that is used. Moreover, it - allows to move objects between GPUs and implement complex - display-servers that don't do any rendering on their own. See its - man-page for more information. - - - - - Examples - This section includes examples for basic memory-management - tasks. - - - Dumb-Buffers - This examples shows how to create a dumb-buffer via the generic - DRM API. This is driver-independent (as long as the driver - supports dumb-buffers) and provides memory-mapped buffers that can - be used for scanout. This example creates a full-HD 1920x1080 - buffer with 32 bits-per-pixel and a color-depth of 24 bits. The - buffer is then bound to a framebuffer which can be used for - scanout with the KMS API (see - drm-kms7). - - -struct drm_mode_create_dumb creq; -struct drm_mode_destroy_dumb dreq; -struct drm_mode_map_dumb mreq; -uint32_t fb; -int ret; -void *map; - -/* create dumb buffer */ -memset(&creq, 0, sizeof(creq)); -creq.width = 1920; -creq.height = 1080; -creq.bpp = 32; -ret = drmIoctl(fd, DRM_IOCTL_MODE_CREATE_DUMB, &creq); -if (ret < 0) { - /* buffer creation failed; see "errno" for more error codes */ - ... -} -/* creq.pitch, creq.handle and creq.size are filled by this ioctl with - * the requested values and can be used now. */ - -/* create framebuffer object for the dumb-buffer */ -ret = drmModeAddFB(fd, 1920, 1080, 24, 32, creq.pitch, creq.handle, &fb); -if (ret) { - /* frame buffer creation failed; see "errno" */ - ... -} -/* the framebuffer "fb" can now used for scanout with KMS */ - -/* prepare buffer for memory mapping */ -memset(&mreq, 0, sizeof(mreq)); -mreq.handle = creq.handle; -ret = drmIoctl(fd, DRM_IOCTL_MODE_MAP_DUMB, &mreq); -if (ret) { - /* DRM buffer preparation failed; see "errno" */ - ... -} -/* mreq.offset now contains the new offset that can be used with mmap() */ - -/* perform actual memory mapping */ -map = mmap(0, creq.size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, mreq.offset); -if (map == MAP_FAILED) { - /* memory-mapping failed; see "errno" */ - ... -} - -/* clear the framebuffer to 0 */ -memset(map, 0, creq.size); - - - - - - - - Reporting Bugs - Bugs in this manual should be reported to - http://bugs.freedesktop.org under the "Mesa" product, with "Other" or - "libdrm" as the component. - - - - See Also - - drm7, - drm-kms7, - drm-prime7, - drmAvailable3, - drmOpen3, - drm-intel7, - drm-radeon7, - drm-nouveau7 - - - diff -Nru libdrm-2.4.52/man/drmModeGetResources.xml libdrm-2.4.52+really2.4.21/man/drmModeGetResources.xml --- libdrm-2.4.52/man/drmModeGetResources.xml 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/man/drmModeGetResources.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,139 +0,0 @@ - - - - - - - - Direct Rendering Manager - libdrm - September 2012 - - - Developer - David - Herrmann - dh.herrmann@googlemail.com - - - - - - drmModeGetResources - 3 - - - - drmModeGetResources - retrieve current display configuration information - - - - - - #include <xf86drm.h> - #include <xf86drmMode.h> - - - drmModeResPtr drmModeGetResources - int fd - - - - - - - Description - drmModeGetResources allocates, populates, and - returns a drmModeRes structure containing - information about the current display configuration. The structure - contains the following fields: - - -typedef struct _drmModeRes { - int count_fbs; - uint32_t *fbs; - - int count_crtcs; - uint32_t *crtcs; - - int count_connectors; - uint32_t *connectors; - - int count_encoders; - uint32_t *encoders; - - uint32_t min_width, max_width; - uint32_t min_height, max_height; -} drmModeRes, *drmModeResPtr; - - - - - The count_fbs and - fbs fields indicate the number of currently - allocated framebuffer objects (i.e., objects that can be attached to - a given CRTC or sprite for display). - - The count_crtcs and - crtcs fields list the available CRTCs in - the configuration. A CRTC is simply an object that can scan out a - framebuffer to a display sink, and contains mode timing and relative - position information. CRTCs drive encoders, which are responsible for - converting the pixel stream into a specific display protocol (e.g., - MIPI or HDMI). - - The count_connectors and - connectors fields list the available - physical connectors on the system. Note that some of these may not be - exposed from the chassis (e.g., LVDS or eDP). Connectors are attached - to encoders and contain information about the attached display sink - (e.g., width and height in mm, subpixel ordering, and various other - properties). - - The count_encoders and - encoders fields list the available encoders - on the device. Each encoder may be associated with a CRTC, and may be - used to drive a particular encoder. - - The min* and - max* fields indicate the maximum size of a - framebuffer for this device (i.e., the scanout size limit). - - - - Return Value - drmModeGetResources returns a drmModeRes - structure pointer on success, NULL on failure. The - returned structure must be freed with - drmModeFreeResources3. - - - - Reporting Bugs - Bugs in this function should be reported to - http://bugs.freedesktop.org under the "Mesa" product, with "Other" or - "libdrm" as the component. - - - - See Also - - drm7, - drm-kms7, - drmModeGetFB3, - drmModeAddFB3, - drmModeAddFB23, - drmModeRmFB3, - drmModeDirtyFB3, - drmModeGetCrtc3, - drmModeSetCrtc3, - drmModeGetEncoder3, - drmModeGetConnector3 - - - diff -Nru libdrm-2.4.52/man/drm.xml libdrm-2.4.52+really2.4.21/man/drm.xml --- libdrm-2.4.52/man/drm.xml 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/man/drm.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,137 +0,0 @@ - - - - - - - - Direct Rendering Manager - libdrm - September 2012 - - - Developer - David - Herrmann - dh.herrmann@googlemail.com - - - - - - drm - 7 - - - - drm - Direct Rendering Manager - - - - - #include <xf86drm.h> - - - - - Description - The Direct Rendering Manager (DRM) is a framework - to manage Graphics Processing Units (GPUs). It is - designed to support the needs of complex graphics devices, usually - containing programmable pipelines well suited to 3D graphics - acceleration. Furthermore, it is responsible for memory management, - interrupt handling and DMA to provide a uniform interface to - applications. - - In earlier days, the kernel framework was solely used to provide raw - hardware access to priviledged user-space processes which implement - all the hardware abstraction layers. But more and more tasks where - moved into the kernel. All these interfaces are based on - ioctl2 - commands on the DRM character device. The libdrm - library provides wrappers for these system-calls and many helpers to - simplify the API. - - When a GPU is detected, the DRM system loads a driver for the detected - hardware type. Each connected GPU is then presented to user-space via - a character-device that is usually available as - /dev/dri/card0 and can be accessed with - open2 - and - close2. - However, it still depends on the grapics driver which interfaces are - available on these devices. If an interface is not available, the - syscalls will fail with EINVAL. - - - Authentication - All DRM devices provide authentication mechanisms. Only a DRM-Master - is allowed to perform mode-setting or modify core state and only one - user can be DRM-Master at a time. See - drmSetMaster3 - for information on how to become DRM-Master and what the limitations - are. Other DRM users can be authenticated to the DRM-Master via - drmAuthMagic3 - so they can perform buffer allocations and rendering. - - - - Mode-Setting - Managing connected monitors and displays and changing the current - modes is called Mode-Setting. This is - restricted to the current DRM-Master. Historically, this was - implemented in user-space, but new DRM drivers implement a kernel - interface to perform mode-setting called - Kernel Mode Setting (KMS). If your - hardware-driver supports it, you can use the KMS API provided by - DRM. This includes allocating framebuffers, selecting modes and - managing CRTCs and encoders. See - drm-kms7 - for more. - - - - Memory Management - The most sophisticated tasks for GPUs today is managing memory - objects. Textures, framebuffers, command-buffers and all other kinds - of commands for the GPU have to be stored in memory. The DRM driver - takes care of managing all memory objects, flushing caches, - synchronizing access and providing CPU access to GPU memory. All - memory management is hardware driver dependent. However, two generic - frameworks are available that are used by most DRM drivers. These - are the Translation Table Manager (TTM) and the - Graphics Execution Manager (GEM). They provide - generic APIs to create, destroy and access buffers from user-space. - However, there are still many differences between the drivers so - driver-depedent code is still needed. Many helpers are provided in - libgbm (Graphics Buffer Manager) from the - mesa-project. For more information on DRM - memory-management, see - drm-memory7. - - - - - Reporting Bugs - Bugs in this manual should be reported to - http://bugs.freedesktop.org under the "Mesa" product, with "Other" or - "libdrm" as the component. - - - - See Also - - drm-kms7, - drm-memory7, - drmSetMaster3, - drmAuthMagic3, - drmAvailable3, - drmOpen3 - - - diff -Nru libdrm-2.4.52/man/Makefile.am libdrm-2.4.52+really2.4.21/man/Makefile.am --- libdrm-2.4.52/man/Makefile.am 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/man/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -# -# This generates man-pages out of the Docbook XML files. Simply add your files -# to the $MANPAGES array. If aliases are created, please add them to the -# MANPAGES_ALIASES array so they get installed correctly. -# - -MANPAGES = \ - drm.7 \ - drm-kms.7 \ - drm-memory.7 \ - drmAvailable.3 \ - drmHandleEvent.3 \ - drmModeGetResources.3 -MANPAGES_ALIASES = \ - drm-mm.7 \ - drm-gem.7 \ - drm-ttm.7 - -XML_FILES = \ - $(patsubst %.1,%.xml,$(patsubst %.3,%.xml,$(patsubst %.5,%.xml,$(patsubst %.7,%.xml,$(MANPAGES))))) - -EXTRA_DIST = $(XML_FILES) -CLEANFILES = $(MANPAGES) $(MANPAGES_ALIASES) .man_fixup -man_MANS = - -if BUILD_MANPAGES -if HAVE_MANPAGES_STYLESHEET - -man_MANS += $(MANPAGES) $(MANPAGES_ALIASES) - -XSLTPROC_FLAGS = \ - --stringparam man.authors.section.enabled 0 \ - --stringparam man.copyright.section.enabled 0 \ - --stringparam funcsynopsis.style ansi \ - --stringparam man.output.quietly 1 \ - --nonet - -XSLTPROC_PROCESS_MAN = \ - $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ - $(XSLTPROC) -o "$@" $(XSLTPROC_FLAGS) $(MANPAGES_STYLESHEET) "$<" && \ - touch .man_fixup - -# Force .man_fixup if $(MANPAGES) are not built -.man_fixup: | $(MANPAGES) - @touch .man_fixup - -$(MANPAGES_ALIASES): $(MANPAGES) .man_fixup - $(AM_V_GEN)if test -n "$@" ; then $(SED) -i -e 's/^\.so \([a-z_]\+\)\.\([0-9]\)$$/\.so man\2\/\1\.\2/' "$@" ; fi - -%.1: $(top_srcdir)/man/%.xml - $(XSLTPROC_PROCESS_MAN) - -%.3: $(top_srcdir)/man/%.xml - $(XSLTPROC_PROCESS_MAN) - -%.5: $(top_srcdir)/man/%.xml - $(XSLTPROC_PROCESS_MAN) - -%.7: $(top_srcdir)/man/%.xml - $(XSLTPROC_PROCESS_MAN) - -endif # HAVE_MANPAGES_STYLESHEET -endif # BUILD_MANPAGES diff -Nru libdrm-2.4.52/man/Makefile.in libdrm-2.4.52+really2.4.21/man/Makefile.in --- libdrm-2.4.52/man/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/man/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,624 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# This generates man-pages out of the Docbook XML files. Simply add your files -# to the $MANPAGES array. If aliases are created, please add them to the -# MANPAGES_ALIASES array so they get installed correctly. -# -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@am__append_1 = $(MANPAGES) $(MANPAGES_ALIASES) -subdir = man -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -man3dir = $(mandir)/man3 -am__installdirs = "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man7dir)" -man7dir = $(mandir)/man7 -NROFF = nroff -MANS = $(man_MANS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -MANPAGES = \ - drm.7 \ - drm-kms.7 \ - drm-memory.7 \ - drmAvailable.3 \ - drmHandleEvent.3 \ - drmModeGetResources.3 - -MANPAGES_ALIASES = \ - drm-mm.7 \ - drm-gem.7 \ - drm-ttm.7 - -XML_FILES = \ - $(patsubst %.1,%.xml,$(patsubst %.3,%.xml,$(patsubst %.5,%.xml,$(patsubst %.7,%.xml,$(MANPAGES))))) - -EXTRA_DIST = $(XML_FILES) -CLEANFILES = $(MANPAGES) $(MANPAGES_ALIASES) .man_fixup -man_MANS = $(am__append_1) -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@XSLTPROC_FLAGS = \ -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ --stringparam man.authors.section.enabled 0 \ -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ --stringparam man.copyright.section.enabled 0 \ -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ --stringparam funcsynopsis.style ansi \ -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ --stringparam man.output.quietly 1 \ -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ --nonet - -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@XSLTPROC_PROCESS_MAN = \ -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ $(XSLTPROC) -o "$@" $(XSLTPROC_FLAGS) $(MANPAGES_STYLESHEET) "$<" && \ -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ touch .man_fixup - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign man/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man3: $(man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(man_MANS)'; \ - test -n "$(man3dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.3[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \ - done; } - -uninstall-man3: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man3dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.3[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir) -install-man7: $(man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(man_MANS)'; \ - test -n "$(man7dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man7dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man7dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.7[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^7][0-9a-z]*$$,7,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man7dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man7dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man7dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man7dir)" || exit $$?; }; \ - done; } - -uninstall-man7: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man7dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.7[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^7][0-9a-z]*$$,7,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man7dir)'; $(am__uninstall_files_from_dir) -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(MANS) -installdirs: - for dir in "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man7dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man3 install-man7 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man - -uninstall-man: uninstall-man3 uninstall-man7 - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - cscopelist-am ctags-am distclean distclean-generic \ - distclean-libtool distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-man3 install-man7 install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ - uninstall-am uninstall-man uninstall-man3 uninstall-man7 - - -# Force .man_fixup if $(MANPAGES) are not built -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@.man_fixup: | $(MANPAGES) -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ @touch .man_fixup - -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@$(MANPAGES_ALIASES): $(MANPAGES) .man_fixup -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ $(AM_V_GEN)if test -n "$@" ; then $(SED) -i -e 's/^\.so \([a-z_]\+\)\.\([0-9]\)$$/\.so man\2\/\1\.\2/' "$@" ; fi - -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@%.1: $(top_srcdir)/man/%.xml -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ $(XSLTPROC_PROCESS_MAN) - -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@%.3: $(top_srcdir)/man/%.xml -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ $(XSLTPROC_PROCESS_MAN) - -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@%.5: $(top_srcdir)/man/%.xml -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ $(XSLTPROC_PROCESS_MAN) - -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@%.7: $(top_srcdir)/man/%.xml -@BUILD_MANPAGES_TRUE@@HAVE_MANPAGES_STYLESHEET_TRUE@ $(XSLTPROC_PROCESS_MAN) - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/nouveau/abi16.c libdrm-2.4.52+really2.4.21/nouveau/abi16.c --- libdrm-2.4.52/nouveau/abi16.c 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/abi16.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,223 +0,0 @@ -/* - * Copyright 2012 Red Hat Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: Ben Skeggs - */ - -#include -#include -#include - -#include "private.h" - - -int -abi16_chan_nv04(struct nouveau_object *obj) -{ - struct nouveau_device *dev = (struct nouveau_device *)obj->parent; - struct nv04_fifo *nv04 = obj->data; - struct drm_nouveau_channel_alloc req = {nv04->vram, nv04->gart}; - int ret; - - ret = drmCommandWriteRead(dev->fd, DRM_NOUVEAU_CHANNEL_ALLOC, - &req, sizeof(req)); - if (ret) - return ret; - - nv04->base.channel = req.channel; - nv04->base.pushbuf = req.pushbuf_domains; - nv04->notify = req.notifier_handle; - nv04->base.object->handle = req.channel; - nv04->base.object->length = sizeof(*nv04); - return 0; -} - -int -abi16_chan_nvc0(struct nouveau_object *obj) -{ - struct nouveau_device *dev = (struct nouveau_device *)obj->parent; - struct drm_nouveau_channel_alloc req = {}; - struct nvc0_fifo *nvc0 = obj->data; - int ret; - - ret = drmCommandWriteRead(dev->fd, DRM_NOUVEAU_CHANNEL_ALLOC, - &req, sizeof(req)); - if (ret) - return ret; - - nvc0->base.channel = req.channel; - nvc0->base.pushbuf = req.pushbuf_domains; - nvc0->notify = req.notifier_handle; - nvc0->base.object->handle = req.channel; - nvc0->base.object->length = sizeof(*nvc0); - return 0; -} - -int -abi16_chan_nve0(struct nouveau_object *obj) -{ - struct nouveau_device *dev = (struct nouveau_device *)obj->parent; - struct drm_nouveau_channel_alloc req = {}; - struct nve0_fifo *nve0 = obj->data; - int ret; - - if (obj->length > offsetof(struct nve0_fifo, engine)) { - req.fb_ctxdma_handle = 0xffffffff; - req.tt_ctxdma_handle = nve0->engine; - } - - ret = drmCommandWriteRead(dev->fd, DRM_NOUVEAU_CHANNEL_ALLOC, - &req, sizeof(req)); - if (ret) - return ret; - - nve0->base.channel = req.channel; - nve0->base.pushbuf = req.pushbuf_domains; - nve0->notify = req.notifier_handle; - nve0->base.object->handle = req.channel; - nve0->base.object->length = sizeof(*nve0); - return 0; -} - -int -abi16_engobj(struct nouveau_object *obj) -{ - struct drm_nouveau_grobj_alloc req = { - obj->parent->handle, obj->handle, obj->oclass - }; - struct nouveau_device *dev; - int ret; - - dev = nouveau_object_find(obj, NOUVEAU_DEVICE_CLASS); - ret = drmCommandWrite(dev->fd, DRM_NOUVEAU_GROBJ_ALLOC, - &req, sizeof(req)); - if (ret) - return ret; - - obj->length = sizeof(struct nouveau_object *); - return 0; -} - -int -abi16_ntfy(struct nouveau_object *obj) -{ - struct nv04_notify *ntfy = obj->data; - struct drm_nouveau_notifierobj_alloc req = { - obj->parent->handle, ntfy->object->handle, ntfy->length - }; - struct nouveau_device *dev; - int ret; - - dev = nouveau_object_find(obj, NOUVEAU_DEVICE_CLASS); - ret = drmCommandWriteRead(dev->fd, DRM_NOUVEAU_NOTIFIEROBJ_ALLOC, - &req, sizeof(req)); - if (ret) - return ret; - - ntfy->offset = req.offset; - ntfy->object->length = sizeof(*ntfy); - return 0; -} - -void -abi16_bo_info(struct nouveau_bo *bo, struct drm_nouveau_gem_info *info) -{ - struct nouveau_bo_priv *nvbo = nouveau_bo(bo); - - nvbo->map_handle = info->map_handle; - bo->handle = info->handle; - bo->size = info->size; - bo->offset = info->offset; - - bo->flags = 0; - if (info->domain & NOUVEAU_GEM_DOMAIN_VRAM) - bo->flags |= NOUVEAU_BO_VRAM; - if (info->domain & NOUVEAU_GEM_DOMAIN_GART) - bo->flags |= NOUVEAU_BO_GART; - if (!(info->tile_flags & NOUVEAU_GEM_TILE_NONCONTIG)) - bo->flags |= NOUVEAU_BO_CONTIG; - if (nvbo->map_handle) - bo->flags |= NOUVEAU_BO_MAP; - - if (bo->device->chipset >= 0xc0) { - bo->config.nvc0.memtype = (info->tile_flags & 0xff00) >> 8; - bo->config.nvc0.tile_mode = info->tile_mode; - } else - if (bo->device->chipset >= 0x80 || bo->device->chipset == 0x50) { - bo->config.nv50.memtype = (info->tile_flags & 0x07f00) >> 8 | - (info->tile_flags & 0x30000) >> 9; - bo->config.nv50.tile_mode = info->tile_mode << 4; - } else { - bo->config.nv04.surf_flags = info->tile_flags & 7; - bo->config.nv04.surf_pitch = info->tile_mode; - } -} - -int -abi16_bo_init(struct nouveau_bo *bo, uint32_t alignment, - union nouveau_bo_config *config) -{ - struct nouveau_device *dev = bo->device; - struct drm_nouveau_gem_new req = {}; - struct drm_nouveau_gem_info *info = &req.info; - int ret; - - if (bo->flags & NOUVEAU_BO_VRAM) - info->domain |= NOUVEAU_GEM_DOMAIN_VRAM; - if (bo->flags & NOUVEAU_BO_GART) - info->domain |= NOUVEAU_GEM_DOMAIN_GART; - if (!info->domain) - info->domain |= NOUVEAU_GEM_DOMAIN_VRAM | - NOUVEAU_GEM_DOMAIN_GART; - - if (bo->flags & NOUVEAU_BO_MAP) - info->domain |= NOUVEAU_GEM_DOMAIN_MAPPABLE; - - if (!(bo->flags & NOUVEAU_BO_CONTIG)) - info->tile_flags = NOUVEAU_GEM_TILE_NONCONTIG; - - info->size = bo->size; - req.align = alignment; - - if (config) { - if (dev->chipset >= 0xc0) { - info->tile_flags = (config->nvc0.memtype & 0xff) << 8; - info->tile_mode = config->nvc0.tile_mode; - } else - if (dev->chipset >= 0x80 || dev->chipset == 0x50) { - info->tile_flags = (config->nv50.memtype & 0x07f) << 8 | - (config->nv50.memtype & 0x180) << 9; - info->tile_mode = config->nv50.tile_mode >> 4; - } else { - info->tile_flags = config->nv04.surf_flags & 7; - info->tile_mode = config->nv04.surf_pitch; - } - } - - if (!nouveau_device(dev)->have_bo_usage) - info->tile_flags &= 0x0000ff00; - - ret = drmCommandWriteRead(dev->fd, DRM_NOUVEAU_GEM_NEW, - &req, sizeof(req)); - if (ret == 0) - abi16_bo_info(bo, &req.info); - return ret; -} diff -Nru libdrm-2.4.52/nouveau/bufctx.c libdrm-2.4.52+really2.4.21/nouveau/bufctx.c --- libdrm-2.4.52/nouveau/bufctx.c 2012-10-05 20:48:07.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/bufctx.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,170 +0,0 @@ -/* - * Copyright 2012 Red Hat Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: Ben Skeggs - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include -#include - -#include "libdrm_lists.h" - -#include "nouveau.h" -#include "private.h" - -struct nouveau_bufref_priv { - struct nouveau_bufref base; - struct nouveau_bufref_priv *next; - struct nouveau_bufctx *bufctx; -}; - -static inline struct nouveau_bufref_priv * -nouveau_bufref(struct nouveau_bufref *bctx) -{ - return (struct nouveau_bufref_priv *)bctx; -} - -struct nouveau_bufbin_priv { - struct nouveau_bufref_priv *list; - int relocs; -}; - -struct nouveau_bufctx_priv { - struct nouveau_bufctx base; - struct nouveau_bufref_priv *free; - int nr_bins; - struct nouveau_bufbin_priv bins[]; -}; - -static inline struct nouveau_bufctx_priv * -nouveau_bufctx(struct nouveau_bufctx *bctx) -{ - return (struct nouveau_bufctx_priv *)bctx; -} - -int -nouveau_bufctx_new(struct nouveau_client *client, int bins, - struct nouveau_bufctx **pbctx) -{ - struct nouveau_bufctx_priv *priv; - - priv = calloc(1, sizeof(*priv) + sizeof(priv->bins[0]) * bins); - if (priv) { - DRMINITLISTHEAD(&priv->base.head); - DRMINITLISTHEAD(&priv->base.pending); - DRMINITLISTHEAD(&priv->base.current); - priv->base.client = client; - priv->nr_bins = bins; - *pbctx = &priv->base; - return 0; - } - - return -ENOMEM; -} - -void -nouveau_bufctx_del(struct nouveau_bufctx **pbctx) -{ - struct nouveau_bufctx_priv *pctx = nouveau_bufctx(*pbctx); - struct nouveau_bufref_priv *pref; - if (pctx) { - while (pctx->nr_bins--) - nouveau_bufctx_reset(&pctx->base, pctx->nr_bins); - while ((pref = pctx->free)) { - pctx->free = pref->next; - free(pref); - } - free(pctx); - *pbctx = NULL; - } -} - -void -nouveau_bufctx_reset(struct nouveau_bufctx *bctx, int bin) -{ - struct nouveau_bufctx_priv *pctx = nouveau_bufctx(bctx); - struct nouveau_bufbin_priv *pbin = &pctx->bins[bin]; - struct nouveau_bufref_priv *pref; - - while ((pref = pbin->list)) { - DRMLISTDELINIT(&pref->base.thead); - pbin->list = pref->next; - pref->next = pctx->free; - pctx->free = pref; - } - - bctx->relocs -= pbin->relocs; - pbin->relocs = 0; -} - -struct nouveau_bufref * -nouveau_bufctx_refn(struct nouveau_bufctx *bctx, int bin, - struct nouveau_bo *bo, uint32_t flags) -{ - struct nouveau_bufctx_priv *pctx = nouveau_bufctx(bctx); - struct nouveau_bufbin_priv *pbin = &pctx->bins[bin]; - struct nouveau_bufref_priv *pref = pctx->free; - - if (!pref) - pref = malloc(sizeof(*pref)); - else - pctx->free = pref->next; - - if (pref) { - pref->base.bo = bo; - pref->base.flags = flags; - pref->base.packet = 0; - - DRMLISTADDTAIL(&pref->base.thead, &bctx->pending); - pref->bufctx = bctx; - pref->next = pbin->list; - pbin->list = pref; - } - - return &pref->base; -} - -struct nouveau_bufref * -nouveau_bufctx_mthd(struct nouveau_bufctx *bctx, int bin, uint32_t packet, - struct nouveau_bo *bo, uint64_t data, uint32_t flags, - uint32_t vor, uint32_t tor) -{ - struct nouveau_bufctx_priv *pctx = nouveau_bufctx(bctx); - struct nouveau_bufbin_priv *pbin = &pctx->bins[bin]; - struct nouveau_bufref *bref = nouveau_bufctx_refn(bctx, bin, bo, flags); - if (bref) { - bref->packet = packet; - bref->data = data; - bref->vor = vor; - bref->tor = tor; - pbin->relocs++; - bctx->relocs++; - } - return bref; -} diff -Nru libdrm-2.4.52/nouveau/libdrm_nouveau.pc.in libdrm-2.4.52+really2.4.21/nouveau/libdrm_nouveau.pc.in --- libdrm-2.4.52/nouveau/libdrm_nouveau.pc.in 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/libdrm_nouveau.pc.in 2010-06-07 01:11:45.000000000 +0000 @@ -5,7 +5,7 @@ Name: libdrm_nouveau Description: Userspace interface to nouveau kernel DRM services -Version: @PACKAGE_VERSION@ +Version: 0.6 Libs: -L${libdir} -ldrm_nouveau -Cflags: -I${includedir} -I${includedir}/libdrm +Cflags: -I${includedir} -I${includedir}/libdrm -I${includedir}/nouveau Requires.private: libdrm diff -Nru libdrm-2.4.52/nouveau/Makefile.am libdrm-2.4.52+really2.4.21/nouveau/Makefile.am --- libdrm-2.4.52/nouveau/Makefile.am 2012-10-05 20:48:07.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/Makefile.am 2010-06-07 01:11:45.000000000 +0000 @@ -3,23 +3,39 @@ -I$(top_srcdir) \ -I$(top_srcdir)/nouveau \ $(PTHREADSTUBS_CFLAGS) \ - -I$(top_srcdir)/include/drm \ - -DDEBUG + -I$(top_srcdir)/include/drm libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la libdrm_nouveau_ladir = $(libdir) -libdrm_nouveau_la_LDFLAGS = -version-number 2:0:0 -no-undefined +libdrm_nouveau_la_LDFLAGS = -version-number 1:0:0 -no-undefined libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ -libdrm_nouveau_la_SOURCES = nouveau.c \ - pushbuf.c \ - bufctx.c \ - abi16.c \ - private.h +libdrm_nouveau_la_SOURCES = \ + nouveau_device.c \ + nouveau_channel.c \ + nouveau_pushbuf.c \ + nouveau_grobj.c \ + nouveau_notifier.c \ + nouveau_bo.c \ + nouveau_resource.c \ + nouveau_private.h \ + nouveau_reloc.c + +libdrm_nouveaucommonincludedir = ${includedir}/nouveau +libdrm_nouveaucommoninclude_HEADERS = \ + nouveau_device.h \ + nouveau_channel.h \ + nouveau_grobj.h \ + nouveau_notifier.h \ + nouveau_pushbuf.h \ + nouveau_bo.h \ + nouveau_resource.h \ + nouveau_reloc.h libdrm_nouveauincludedir = ${includedir}/libdrm -libdrm_nouveauinclude_HEADERS = nouveau.h +libdrm_nouveauinclude_HEADERS = \ + nouveau_drmif.h pkgconfigdir = @pkgconfigdir@ pkgconfig_DATA = libdrm_nouveau.pc diff -Nru libdrm-2.4.52/nouveau/Makefile.in libdrm-2.4.52+really2.4.21/nouveau/Makefile.in --- libdrm-2.4.52/nouveau/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,729 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = nouveau -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/libdrm_nouveau.pc.in $(top_srcdir)/build-aux/depcomp \ - $(libdrm_nouveauinclude_HEADERS) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = libdrm_nouveau.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdrm_nouveau_ladir)" \ - "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(libdrm_nouveauincludedir)" -LTLIBRARIES = $(libdrm_nouveau_la_LTLIBRARIES) -libdrm_nouveau_la_DEPENDENCIES = ../libdrm.la -am_libdrm_nouveau_la_OBJECTS = nouveau.lo pushbuf.lo bufctx.lo \ - abi16.lo -libdrm_nouveau_la_OBJECTS = $(am_libdrm_nouveau_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libdrm_nouveau_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(libdrm_nouveau_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libdrm_nouveau_la_SOURCES) -DIST_SOURCES = $(libdrm_nouveau_la_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(pkgconfig_DATA) -HEADERS = $(libdrm_nouveauinclude_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = \ - $(WARN_CFLAGS) \ - -I$(top_srcdir) \ - -I$(top_srcdir)/nouveau \ - $(PTHREADSTUBS_CFLAGS) \ - -I$(top_srcdir)/include/drm \ - -DDEBUG - -libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la -libdrm_nouveau_ladir = $(libdir) -libdrm_nouveau_la_LDFLAGS = -version-number 2:0:0 -no-undefined -libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ -libdrm_nouveau_la_SOURCES = nouveau.c \ - pushbuf.c \ - bufctx.c \ - abi16.c \ - private.h - -libdrm_nouveauincludedir = ${includedir}/libdrm -libdrm_nouveauinclude_HEADERS = nouveau.h -pkgconfig_DATA = libdrm_nouveau.pc -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nouveau/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign nouveau/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -libdrm_nouveau.pc: $(top_builddir)/config.status $(srcdir)/libdrm_nouveau.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-libdrm_nouveau_laLTLIBRARIES: $(libdrm_nouveau_la_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(libdrm_nouveau_la_LTLIBRARIES)'; test -n "$(libdrm_nouveau_ladir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_nouveau_ladir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_nouveau_ladir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdrm_nouveau_ladir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdrm_nouveau_ladir)"; \ - } - -uninstall-libdrm_nouveau_laLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_nouveau_la_LTLIBRARIES)'; test -n "$(libdrm_nouveau_ladir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdrm_nouveau_ladir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdrm_nouveau_ladir)/$$f"; \ - done - -clean-libdrm_nouveau_laLTLIBRARIES: - -test -z "$(libdrm_nouveau_la_LTLIBRARIES)" || rm -f $(libdrm_nouveau_la_LTLIBRARIES) - @list='$(libdrm_nouveau_la_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libdrm_nouveau.la: $(libdrm_nouveau_la_OBJECTS) $(libdrm_nouveau_la_DEPENDENCIES) $(EXTRA_libdrm_nouveau_la_DEPENDENCIES) - $(AM_V_CCLD)$(libdrm_nouveau_la_LINK) -rpath $(libdrm_nouveau_ladir) $(libdrm_nouveau_la_OBJECTS) $(libdrm_nouveau_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/abi16.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bufctx.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nouveau.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pushbuf.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-libdrm_nouveauincludeHEADERS: $(libdrm_nouveauinclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(libdrm_nouveauinclude_HEADERS)'; test -n "$(libdrm_nouveauincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_nouveauincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_nouveauincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libdrm_nouveauincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libdrm_nouveauincludedir)" || exit $$?; \ - done - -uninstall-libdrm_nouveauincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_nouveauinclude_HEADERS)'; test -n "$(libdrm_nouveauincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(libdrm_nouveauincludedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libdrm_nouveau_ladir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libdrm_nouveauincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libdrm_nouveau_laLTLIBRARIES \ - clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-libdrm_nouveau_laLTLIBRARIES \ - install-libdrm_nouveauincludeHEADERS install-pkgconfigDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libdrm_nouveau_laLTLIBRARIES \ - uninstall-libdrm_nouveauincludeHEADERS uninstall-pkgconfigDATA - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libdrm_nouveau_laLTLIBRARIES clean-libtool cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-libdrm_nouveau_laLTLIBRARIES \ - install-libdrm_nouveauincludeHEADERS install-man install-pdf \ - install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-libdrm_nouveau_laLTLIBRARIES \ - uninstall-libdrm_nouveauincludeHEADERS uninstall-pkgconfigDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/nouveau/nouveau_bo.c libdrm-2.4.52+really2.4.21/nouveau/nouveau_bo.c --- libdrm-2.4.52/nouveau/nouveau_bo.c 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_bo.c 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,541 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif +#include +#include +#include +#include + +#include + +#include "nouveau_private.h" + +int +nouveau_bo_init(struct nouveau_device *dev) +{ + return 0; +} + +void +nouveau_bo_takedown(struct nouveau_device *dev) +{ +} + +static int +nouveau_bo_info(struct nouveau_bo_priv *nvbo, struct drm_nouveau_gem_info *arg) +{ + nvbo->handle = nvbo->base.handle = arg->handle; + nvbo->domain = arg->domain; + nvbo->size = arg->size; + nvbo->offset = arg->offset; + nvbo->map_handle = arg->map_handle; + nvbo->base.tile_mode = arg->tile_mode; + nvbo->base.tile_flags = arg->tile_flags; + return 0; +} + +static int +nouveau_bo_allocated(struct nouveau_bo_priv *nvbo) +{ + if (nvbo->sysmem || nvbo->handle) + return 1; + return 0; +} + +static int +nouveau_bo_ualloc(struct nouveau_bo_priv *nvbo) +{ + if (nvbo->user || nvbo->sysmem) { + assert(nvbo->sysmem); + return 0; + } + + nvbo->sysmem = malloc(nvbo->size); + if (!nvbo->sysmem) + return -ENOMEM; + + return 0; +} + +static void +nouveau_bo_ufree(struct nouveau_bo_priv *nvbo) +{ + if (nvbo->sysmem) { + if (!nvbo->user) + free(nvbo->sysmem); + nvbo->sysmem = NULL; + } +} + +static void +nouveau_bo_kfree(struct nouveau_bo_priv *nvbo) +{ + struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device); + struct drm_gem_close req; + + if (!nvbo->handle) + return; + + if (nvbo->map) { + munmap(nvbo->map, nvbo->size); + nvbo->map = NULL; + } + + req.handle = nvbo->handle; + nvbo->handle = 0; + drmIoctl(nvdev->fd, DRM_IOCTL_GEM_CLOSE, &req); +} + +static int +nouveau_bo_kalloc(struct nouveau_bo_priv *nvbo, struct nouveau_channel *chan) +{ + struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device); + struct drm_nouveau_gem_new req; + struct drm_nouveau_gem_info *info = &req.info; + int ret; + + if (nvbo->handle) + return 0; + + req.channel_hint = chan ? chan->id : 0; + req.align = nvbo->align; + + + info->size = nvbo->size; + info->domain = 0; + + if (nvbo->flags & NOUVEAU_BO_VRAM) + info->domain |= NOUVEAU_GEM_DOMAIN_VRAM; + if (nvbo->flags & NOUVEAU_BO_GART) + info->domain |= NOUVEAU_GEM_DOMAIN_GART; + if (!info->domain) { + info->domain |= (NOUVEAU_GEM_DOMAIN_VRAM | + NOUVEAU_GEM_DOMAIN_GART); + } + + if (nvbo->flags & NOUVEAU_BO_MAP) + info->domain |= NOUVEAU_GEM_DOMAIN_MAPPABLE; + + info->tile_mode = nvbo->base.tile_mode; + info->tile_flags = nvbo->base.tile_flags; + + ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_GEM_NEW, + &req, sizeof(req)); + if (ret) + return ret; + + nouveau_bo_info(nvbo, &req.info); + return 0; +} + +static int +nouveau_bo_kmap(struct nouveau_bo_priv *nvbo) +{ + struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device); + + if (nvbo->map) + return 0; + + if (!nvbo->map_handle) + return -EINVAL; + + nvbo->map = mmap(0, nvbo->size, PROT_READ | PROT_WRITE, + MAP_SHARED, nvdev->fd, nvbo->map_handle); + if (nvbo->map == MAP_FAILED) { + nvbo->map = NULL; + return -errno; + } + + return 0; +} + +int +nouveau_bo_new_tile(struct nouveau_device *dev, uint32_t flags, int align, + int size, uint32_t tile_mode, uint32_t tile_flags, + struct nouveau_bo **bo) +{ + struct nouveau_bo_priv *nvbo; + int ret; + + if (!dev || !bo || *bo) + return -EINVAL; + + nvbo = calloc(1, sizeof(struct nouveau_bo_priv)); + if (!nvbo) + return -ENOMEM; + nvbo->base.device = dev; + nvbo->base.size = size; + nvbo->base.tile_mode = tile_mode; + nvbo->base.tile_flags = tile_flags; + + nvbo->refcount = 1; + nvbo->flags = flags; + nvbo->size = size; + nvbo->align = align; + + if (flags & (NOUVEAU_BO_VRAM | NOUVEAU_BO_GART)) { + ret = nouveau_bo_kalloc(nvbo, NULL); + if (ret) { + nouveau_bo_ref(NULL, (void *)&nvbo); + return ret; + } + } + + *bo = &nvbo->base; + return 0; +} + +int +nouveau_bo_new(struct nouveau_device *dev, uint32_t flags, int align, + int size, struct nouveau_bo **bo) +{ + return nouveau_bo_new_tile(dev, flags, align, size, 0, 0, bo); +} + +int +nouveau_bo_user(struct nouveau_device *dev, void *ptr, int size, + struct nouveau_bo **bo) +{ + struct nouveau_bo_priv *nvbo; + int ret; + + ret = nouveau_bo_new(dev, NOUVEAU_BO_MAP, 0, size, bo); + if (ret) + return ret; + nvbo = nouveau_bo(*bo); + + nvbo->sysmem = ptr; + nvbo->user = 1; + return 0; +} + +int +nouveau_bo_wrap(struct nouveau_device *dev, uint32_t handle, + struct nouveau_bo **bo) +{ + struct nouveau_device_priv *nvdev = nouveau_device(dev); + struct drm_nouveau_gem_info req; + struct nouveau_bo_priv *nvbo; + int ret; + + ret = nouveau_bo_new(dev, 0, 0, 0, bo); + if (ret) + return ret; + nvbo = nouveau_bo(*bo); + + req.handle = handle; + ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_GEM_INFO, + &req, sizeof(req)); + if (ret) { + nouveau_bo_ref(NULL, bo); + return ret; + } + + nouveau_bo_info(nvbo, &req); + nvbo->base.size = nvbo->size; + return 0; +} + +int +nouveau_bo_handle_get(struct nouveau_bo *bo, uint32_t *handle) +{ + struct nouveau_device_priv *nvdev = nouveau_device(bo->device); + struct nouveau_bo_priv *nvbo = nouveau_bo(bo); + int ret; + + if (!bo || !handle) + return -EINVAL; + + if (!nvbo->global_handle) { + struct drm_gem_flink req; + + ret = nouveau_bo_kalloc(nvbo, NULL); + if (ret) + return ret; + + req.handle = nvbo->handle; + ret = drmIoctl(nvdev->fd, DRM_IOCTL_GEM_FLINK, &req); + if (ret) { + nouveau_bo_kfree(nvbo); + return ret; + } + + nvbo->global_handle = req.name; + } + + *handle = nvbo->global_handle; + return 0; +} + +int +nouveau_bo_handle_ref(struct nouveau_device *dev, uint32_t handle, + struct nouveau_bo **bo) +{ + struct nouveau_device_priv *nvdev = nouveau_device(dev); + struct nouveau_bo_priv *nvbo; + struct drm_gem_open req; + int ret; + + req.name = handle; + ret = drmIoctl(nvdev->fd, DRM_IOCTL_GEM_OPEN, &req); + if (ret) { + nouveau_bo_ref(NULL, bo); + return ret; + } + + ret = nouveau_bo_wrap(dev, req.handle, bo); + if (ret) { + nouveau_bo_ref(NULL, bo); + return ret; + } + + nvbo = nouveau_bo(*bo); + nvbo->base.handle = nvbo->handle; + return 0; +} + +static void +nouveau_bo_del(struct nouveau_bo **bo) +{ + struct nouveau_bo_priv *nvbo; + + if (!bo || !*bo) + return; + nvbo = nouveau_bo(*bo); + *bo = NULL; + + if (--nvbo->refcount) + return; + + if (nvbo->pending) { + nvbo->pending = NULL; + nouveau_pushbuf_flush(nvbo->pending_channel, 0); + } + + nouveau_bo_ufree(nvbo); + nouveau_bo_kfree(nvbo); + free(nvbo); +} + +int +nouveau_bo_ref(struct nouveau_bo *ref, struct nouveau_bo **pbo) +{ + if (!pbo) + return -EINVAL; + + if (ref) + nouveau_bo(ref)->refcount++; + + if (*pbo) + nouveau_bo_del(pbo); + + *pbo = ref; + return 0; +} + +static int +nouveau_bo_wait(struct nouveau_bo *bo, int cpu_write, int no_wait, int no_block) +{ + struct nouveau_device_priv *nvdev = nouveau_device(bo->device); + struct nouveau_bo_priv *nvbo = nouveau_bo(bo); + struct drm_nouveau_gem_cpu_prep req; + int ret; + + if (!nvbo->global_handle && !nvbo->write_marker && !cpu_write) + return 0; + + if (nvbo->pending && + (nvbo->pending->write_domains || cpu_write)) { + nvbo->pending = NULL; + nouveau_pushbuf_flush(nvbo->pending_channel, 0); + } + + req.handle = nvbo->handle; + req.flags = 0; + if (cpu_write) + req.flags |= NOUVEAU_GEM_CPU_PREP_WRITE; + if (no_wait) + req.flags |= NOUVEAU_GEM_CPU_PREP_NOWAIT; + if (no_block) + req.flags |= NOUVEAU_GEM_CPU_PREP_NOBLOCK; + + do { + ret = drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GEM_CPU_PREP, + &req, sizeof(req)); + } while (ret == -EAGAIN); + if (ret) + return ret; + + if (ret == 0) + nvbo->write_marker = 0; + return 0; +} + +int +nouveau_bo_map_range(struct nouveau_bo *bo, uint32_t delta, uint32_t size, + uint32_t flags) +{ + struct nouveau_bo_priv *nvbo = nouveau_bo(bo); + int ret; + + if (!nvbo || bo->map) + return -EINVAL; + + if (!nouveau_bo_allocated(nvbo)) { + if (nvbo->flags & (NOUVEAU_BO_VRAM | NOUVEAU_BO_GART)) { + ret = nouveau_bo_kalloc(nvbo, NULL); + if (ret) + return ret; + } + + if (!nouveau_bo_allocated(nvbo)) { + ret = nouveau_bo_ualloc(nvbo); + if (ret) + return ret; + } + } + + if (nvbo->sysmem) { + bo->map = (char *)nvbo->sysmem + delta; + } else { + ret = nouveau_bo_kmap(nvbo); + if (ret) + return ret; + + if (!(flags & NOUVEAU_BO_NOSYNC)) { + ret = nouveau_bo_wait(bo, (flags & NOUVEAU_BO_WR), + (flags & NOUVEAU_BO_NOWAIT), 0); + if (ret) + return ret; + } + + bo->map = (char *)nvbo->map + delta; + } + + return 0; +} + +void +nouveau_bo_map_flush(struct nouveau_bo *bo, uint32_t delta, uint32_t size) +{ +} + +int +nouveau_bo_map(struct nouveau_bo *bo, uint32_t flags) +{ + return nouveau_bo_map_range(bo, 0, bo->size, flags); +} + +void +nouveau_bo_unmap(struct nouveau_bo *bo) +{ + struct nouveau_bo_priv *nvbo = nouveau_bo(bo); + + if (bo->map && !nvbo->sysmem) { + struct nouveau_device_priv *nvdev = nouveau_device(bo->device); + struct drm_nouveau_gem_cpu_fini req; + + req.handle = nvbo->handle; + drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GEM_CPU_FINI, + &req, sizeof(req)); + } + + bo->map = NULL; +} + +int +nouveau_bo_busy(struct nouveau_bo *bo, uint32_t access) +{ + return nouveau_bo_wait(bo, (access & NOUVEAU_BO_WR), 1, 1); +} + +uint32_t +nouveau_bo_pending(struct nouveau_bo *bo) +{ + struct nouveau_bo_priv *nvbo = nouveau_bo(bo); + uint32_t flags; + + if (!nvbo->pending) + return 0; + + flags = 0; + if (nvbo->pending->read_domains) + flags |= NOUVEAU_BO_RD; + if (nvbo->pending->write_domains) + flags |= NOUVEAU_BO_WR; + + return flags; +} + +struct drm_nouveau_gem_pushbuf_bo * +nouveau_bo_emit_buffer(struct nouveau_channel *chan, struct nouveau_bo *bo) +{ + struct nouveau_pushbuf_priv *nvpb = &nouveau_channel(chan)->pb; + struct nouveau_bo_priv *nvbo = nouveau_bo(bo); + struct drm_nouveau_gem_pushbuf_bo *pbbo; + struct nouveau_bo *ref = NULL; + int ret; + + if (nvbo->pending) + return nvbo->pending; + + if (!nvbo->handle) { + ret = nouveau_bo_kalloc(nvbo, chan); + if (ret) + return NULL; + + if (nvbo->sysmem) { + void *sysmem_tmp = nvbo->sysmem; + + nvbo->sysmem = NULL; + ret = nouveau_bo_map(bo, NOUVEAU_BO_WR); + if (ret) + return NULL; + nvbo->sysmem = sysmem_tmp; + + memcpy(bo->map, nvbo->sysmem, nvbo->base.size); + nouveau_bo_ufree(nvbo); + nouveau_bo_unmap(bo); + } + } + + if (nvpb->nr_buffers >= NOUVEAU_GEM_MAX_BUFFERS) + return NULL; + pbbo = nvpb->buffers + nvpb->nr_buffers++; + nvbo->pending = pbbo; + nvbo->pending_channel = chan; + nvbo->pending_refcnt = 0; + + nouveau_bo_ref(bo, &ref); + pbbo->user_priv = (uint64_t)(unsigned long)ref; + pbbo->handle = nvbo->handle; + pbbo->valid_domains = NOUVEAU_GEM_DOMAIN_VRAM | NOUVEAU_GEM_DOMAIN_GART; + pbbo->read_domains = 0; + pbbo->write_domains = 0; + pbbo->presumed.domain = nvbo->domain; + pbbo->presumed.offset = nvbo->offset; + pbbo->presumed.valid = 1; + return pbbo; +} diff -Nru libdrm-2.4.52/nouveau/nouveau_bo.h libdrm-2.4.52+really2.4.21/nouveau/nouveau_bo.h --- libdrm-2.4.52/nouveau/nouveau_bo.h 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_bo.h 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,98 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __NOUVEAU_BO_H__ +#define __NOUVEAU_BO_H__ + +/* Relocation/Buffer type flags */ +#define NOUVEAU_BO_VRAM (1 << 0) +#define NOUVEAU_BO_GART (1 << 1) +#define NOUVEAU_BO_RD (1 << 2) +#define NOUVEAU_BO_WR (1 << 3) +#define NOUVEAU_BO_RDWR (NOUVEAU_BO_RD | NOUVEAU_BO_WR) +#define NOUVEAU_BO_MAP (1 << 4) +#define NOUVEAU_BO_LOW (1 << 6) +#define NOUVEAU_BO_HIGH (1 << 7) +#define NOUVEAU_BO_OR (1 << 8) +#define NOUVEAU_BO_INVAL (1 << 12) +#define NOUVEAU_BO_NOSYNC (1 << 13) +#define NOUVEAU_BO_NOWAIT (1 << 14) +#define NOUVEAU_BO_IFLUSH (1 << 15) +#define NOUVEAU_BO_DUMMY (1 << 31) + +struct nouveau_bo { + struct nouveau_device *device; + uint32_t handle; + + uint64_t size; + void *map; + + uint32_t tile_mode; + uint32_t tile_flags; +}; + +int +nouveau_bo_new(struct nouveau_device *, uint32_t flags, int align, int size, + struct nouveau_bo **); + +int +nouveau_bo_new_tile(struct nouveau_device *, uint32_t flags, int align, + int size, uint32_t tile_mode, uint32_t tile_flags, + struct nouveau_bo **); + +int +nouveau_bo_user(struct nouveau_device *, void *ptr, int size, + struct nouveau_bo **); + +int +nouveau_bo_wrap(struct nouveau_device *, uint32_t handle, struct nouveau_bo **); + +int +nouveau_bo_handle_get(struct nouveau_bo *, uint32_t *); + +int +nouveau_bo_handle_ref(struct nouveau_device *, uint32_t handle, + struct nouveau_bo **); + +int +nouveau_bo_ref(struct nouveau_bo *, struct nouveau_bo **); + +int +nouveau_bo_map_range(struct nouveau_bo *, uint32_t delta, uint32_t size, + uint32_t flags); + +void +nouveau_bo_map_flush(struct nouveau_bo *, uint32_t delta, uint32_t size); + +int +nouveau_bo_map(struct nouveau_bo *, uint32_t flags); + +void +nouveau_bo_unmap(struct nouveau_bo *); + +int +nouveau_bo_busy(struct nouveau_bo *, uint32_t access); + +uint32_t +nouveau_bo_pending(struct nouveau_bo *); + +#endif diff -Nru libdrm-2.4.52/nouveau/nouveau.c libdrm-2.4.52+really2.4.21/nouveau/nouveau.c --- libdrm-2.4.52/nouveau/nouveau.c 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,544 +0,0 @@ -/* - * Copyright 2012 Red Hat Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: Ben Skeggs - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include "libdrm_lists.h" -#include "nouveau_drm.h" - -#include "nouveau.h" -#include "private.h" - -#ifdef DEBUG -uint32_t nouveau_debug = 0; - -static void -debug_init(char *args) -{ - if (args) { - int n = strtol(args, NULL, 0); - if (n >= 0) - nouveau_debug = n; - } -} -#endif - -/* this is the old libdrm's version of nouveau_device_wrap(), the symbol - * is kept here to prevent AIGLX from crashing if the DDX is linked against - * the new libdrm, but the DRI driver against the old - */ -int -nouveau_device_open_existing(struct nouveau_device **pdev, int close, int fd, - drm_context_t ctx) -{ - return -EACCES; -} - -int -nouveau_device_wrap(int fd, int close, struct nouveau_device **pdev) -{ - struct nouveau_device_priv *nvdev = calloc(1, sizeof(*nvdev)); - struct nouveau_device *dev = &nvdev->base; - uint64_t chipset, vram, gart, bousage; - drmVersionPtr ver; - int ret; - char *tmp; - -#ifdef DEBUG - debug_init(getenv("NOUVEAU_LIBDRM_DEBUG")); -#endif - - if (!nvdev) - return -ENOMEM; - nvdev->base.fd = fd; - - ver = drmGetVersion(fd); - if (ver) dev->drm_version = (ver->version_major << 24) | - (ver->version_minor << 8) | - ver->version_patchlevel; - drmFreeVersion(ver); - - if ( dev->drm_version != 0x00000010 && - (dev->drm_version < 0x01000000 || - dev->drm_version >= 0x02000000)) { - nouveau_device_del(&dev); - return -EINVAL; - } - - ret = nouveau_getparam(dev, NOUVEAU_GETPARAM_CHIPSET_ID, &chipset); - if (ret == 0) - ret = nouveau_getparam(dev, NOUVEAU_GETPARAM_FB_SIZE, &vram); - if (ret == 0) - ret = nouveau_getparam(dev, NOUVEAU_GETPARAM_AGP_SIZE, &gart); - if (ret) { - nouveau_device_del(&dev); - return ret; - } - - ret = nouveau_getparam(dev, NOUVEAU_GETPARAM_HAS_BO_USAGE, &bousage); - if (ret == 0) - nvdev->have_bo_usage = (bousage != 0); - - nvdev->close = close; - - tmp = getenv("NOUVEAU_LIBDRM_VRAM_LIMIT_PERCENT"); - if (tmp) - nvdev->vram_limit_percent = atoi(tmp); - else - nvdev->vram_limit_percent = 80; - tmp = getenv("NOUVEAU_LIBDRM_GART_LIMIT_PERCENT"); - if (tmp) - nvdev->gart_limit_percent = atoi(tmp); - else - nvdev->gart_limit_percent = 80; - DRMINITLISTHEAD(&nvdev->bo_list); - nvdev->base.object.oclass = NOUVEAU_DEVICE_CLASS; - nvdev->base.lib_version = 0x01000000; - nvdev->base.chipset = chipset; - nvdev->base.vram_size = vram; - nvdev->base.gart_size = gart; - nvdev->base.vram_limit = - (nvdev->base.vram_size * nvdev->vram_limit_percent) / 100; - nvdev->base.gart_limit = - (nvdev->base.gart_size * nvdev->gart_limit_percent) / 100; - - *pdev = &nvdev->base; - return 0; -} - -int -nouveau_device_open(const char *busid, struct nouveau_device **pdev) -{ - int ret = -ENODEV, fd = drmOpen("nouveau", busid); - if (fd >= 0) { - ret = nouveau_device_wrap(fd, 1, pdev); - if (ret) - drmClose(fd); - } - return ret; -} - -void -nouveau_device_del(struct nouveau_device **pdev) -{ - struct nouveau_device_priv *nvdev = nouveau_device(*pdev); - if (nvdev) { - if (nvdev->close) - drmClose(nvdev->base.fd); - free(nvdev->client); - free(nvdev); - *pdev = NULL; - } -} - -int -nouveau_getparam(struct nouveau_device *dev, uint64_t param, uint64_t *value) -{ - struct drm_nouveau_getparam r = { param, 0 }; - int fd = dev->fd, ret = - drmCommandWriteRead(fd, DRM_NOUVEAU_GETPARAM, &r, sizeof(r)); - *value = r.value; - return ret; -} - -int -nouveau_setparam(struct nouveau_device *dev, uint64_t param, uint64_t value) -{ - struct drm_nouveau_setparam r = { param, value }; - return drmCommandWrite(dev->fd, DRM_NOUVEAU_SETPARAM, &r, sizeof(r)); -} - -int -nouveau_client_new(struct nouveau_device *dev, struct nouveau_client **pclient) -{ - struct nouveau_device_priv *nvdev = nouveau_device(dev); - struct nouveau_client_priv *pcli; - int id = 0, i, ret = -ENOMEM; - uint32_t *clients; - - for (i = 0; i < nvdev->nr_client; i++) { - id = ffs(nvdev->client[i]) - 1; - if (id >= 0) - goto out; - } - - clients = realloc(nvdev->client, sizeof(uint32_t) * (i + 1)); - if (!clients) - return ret; - nvdev->client = clients; - nvdev->client[i] = 0; - nvdev->nr_client++; - -out: - pcli = calloc(1, sizeof(*pcli)); - if (pcli) { - nvdev->client[i] |= (1 << id); - pcli->base.device = dev; - pcli->base.id = (i * 32) + id; - ret = 0; - } - - *pclient = &pcli->base; - return ret; -} - -void -nouveau_client_del(struct nouveau_client **pclient) -{ - struct nouveau_client_priv *pcli = nouveau_client(*pclient); - struct nouveau_device_priv *nvdev; - if (pcli) { - int id = pcli->base.id; - nvdev = nouveau_device(pcli->base.device); - nvdev->client[id / 32] &= ~(1 << (id % 32)); - free(pcli->kref); - free(pcli); - } -} - -int -nouveau_object_new(struct nouveau_object *parent, uint64_t handle, - uint32_t oclass, void *data, uint32_t length, - struct nouveau_object **pobj) -{ - struct nouveau_device *dev; - struct nouveau_object *obj; - int ret = -EINVAL; - - if (length == 0) - length = sizeof(struct nouveau_object *); - obj = malloc(sizeof(*obj) + length); - obj->parent = parent; - obj->handle = handle; - obj->oclass = oclass; - obj->length = length; - obj->data = obj + 1; - if (data) - memcpy(obj->data, data, length); - *(struct nouveau_object **)obj->data = obj; - - dev = nouveau_object_find(obj, NOUVEAU_DEVICE_CLASS); - switch (parent->oclass) { - case NOUVEAU_DEVICE_CLASS: - switch (obj->oclass) { - case NOUVEAU_FIFO_CHANNEL_CLASS: - { - if (dev->chipset < 0xc0) - ret = abi16_chan_nv04(obj); - else - if (dev->chipset < 0xe0) - ret = abi16_chan_nvc0(obj); - else - ret = abi16_chan_nve0(obj); - } - break; - default: - break; - } - break; - case NOUVEAU_FIFO_CHANNEL_CLASS: - switch (obj->oclass) { - case NOUVEAU_NOTIFIER_CLASS: - ret = abi16_ntfy(obj); - break; - default: - ret = abi16_engobj(obj); - break; - } - default: - break; - } - - if (ret) { - free(obj); - return ret; - } - - *pobj = obj; - return 0; -} - -void -nouveau_object_del(struct nouveau_object **pobj) -{ - struct nouveau_object *obj = *pobj; - struct nouveau_device *dev; - if (obj) { - dev = nouveau_object_find(obj, NOUVEAU_DEVICE_CLASS); - if (obj->oclass == NOUVEAU_FIFO_CHANNEL_CLASS) { - struct drm_nouveau_channel_free req; - req.channel = obj->handle; - drmCommandWrite(dev->fd, DRM_NOUVEAU_CHANNEL_FREE, - &req, sizeof(req)); - } else { - struct drm_nouveau_gpuobj_free req; - req.channel = obj->parent->handle; - req.handle = obj->handle; - drmCommandWrite(dev->fd, DRM_NOUVEAU_GPUOBJ_FREE, - &req, sizeof(req)); - } - } - free(obj); - *pobj = NULL; -} - -void * -nouveau_object_find(struct nouveau_object *obj, uint32_t pclass) -{ - while (obj && obj->oclass != pclass) { - obj = obj->parent; - if (pclass == NOUVEAU_PARENT_CLASS) - break; - } - return obj; -} - -static void -nouveau_bo_del(struct nouveau_bo *bo) -{ - struct nouveau_bo_priv *nvbo = nouveau_bo(bo); - struct drm_gem_close req = { bo->handle }; - DRMLISTDEL(&nvbo->head); - if (bo->map) - munmap(bo->map, bo->size); - drmIoctl(bo->device->fd, DRM_IOCTL_GEM_CLOSE, &req); - free(nvbo); -} - -int -nouveau_bo_new(struct nouveau_device *dev, uint32_t flags, uint32_t align, - uint64_t size, union nouveau_bo_config *config, - struct nouveau_bo **pbo) -{ - struct nouveau_device_priv *nvdev = nouveau_device(dev); - struct nouveau_bo_priv *nvbo = calloc(1, sizeof(*nvbo)); - struct nouveau_bo *bo = &nvbo->base; - int ret; - - if (!nvbo) - return -ENOMEM; - atomic_set(&nvbo->refcnt, 1); - bo->device = dev; - bo->flags = flags; - bo->size = size; - - ret = abi16_bo_init(bo, align, config); - if (ret) { - free(nvbo); - return ret; - } - - DRMLISTADD(&nvbo->head, &nvdev->bo_list); - - *pbo = bo; - return 0; -} - -int -nouveau_bo_wrap(struct nouveau_device *dev, uint32_t handle, - struct nouveau_bo **pbo) -{ - struct nouveau_device_priv *nvdev = nouveau_device(dev); - struct drm_nouveau_gem_info req = { .handle = handle }; - struct nouveau_bo_priv *nvbo; - int ret; - - DRMLISTFOREACHENTRY(nvbo, &nvdev->bo_list, head) { - if (nvbo->base.handle == handle) { - *pbo = NULL; - nouveau_bo_ref(&nvbo->base, pbo); - return 0; - } - } - - ret = drmCommandWriteRead(dev->fd, DRM_NOUVEAU_GEM_INFO, - &req, sizeof(req)); - if (ret) - return ret; - - nvbo = calloc(1, sizeof(*nvbo)); - if (nvbo) { - atomic_set(&nvbo->refcnt, 1); - nvbo->base.device = dev; - abi16_bo_info(&nvbo->base, &req); - DRMLISTADD(&nvbo->head, &nvdev->bo_list); - *pbo = &nvbo->base; - return 0; - } - - return -ENOMEM; -} - -int -nouveau_bo_name_ref(struct nouveau_device *dev, uint32_t name, - struct nouveau_bo **pbo) -{ - struct nouveau_device_priv *nvdev = nouveau_device(dev); - struct nouveau_bo_priv *nvbo; - struct drm_gem_open req = { .name = name }; - int ret; - - DRMLISTFOREACHENTRY(nvbo, &nvdev->bo_list, head) { - if (nvbo->name == name) { - *pbo = NULL; - nouveau_bo_ref(&nvbo->base, pbo); - return 0; - } - } - - ret = drmIoctl(dev->fd, DRM_IOCTL_GEM_OPEN, &req); - if (ret == 0) { - ret = nouveau_bo_wrap(dev, req.handle, pbo); - nouveau_bo((*pbo))->name = name; - } - - return ret; -} - -int -nouveau_bo_name_get(struct nouveau_bo *bo, uint32_t *name) -{ - struct drm_gem_flink req = { .handle = bo->handle }; - struct nouveau_bo_priv *nvbo = nouveau_bo(bo); - if (!nvbo->name) { - int ret = drmIoctl(bo->device->fd, DRM_IOCTL_GEM_FLINK, &req); - if (ret) - return ret; - nvbo->name = req.name; - } - *name = nvbo->name; - return 0; -} - -void -nouveau_bo_ref(struct nouveau_bo *bo, struct nouveau_bo **pref) -{ - struct nouveau_bo *ref = *pref; - if (bo) { - atomic_inc(&nouveau_bo(bo)->refcnt); - } - if (ref) { - if (atomic_dec_and_test(&nouveau_bo(ref)->refcnt)) - nouveau_bo_del(ref); - } - *pref = bo; -} - -int -nouveau_bo_prime_handle_ref(struct nouveau_device *dev, int prime_fd, - struct nouveau_bo **bo) -{ - int ret; - unsigned int handle; - - ret = drmPrimeFDToHandle(dev->fd, prime_fd, &handle); - if (ret) { - nouveau_bo_ref(NULL, bo); - return ret; - } - - ret = nouveau_bo_wrap(dev, handle, bo); - if (ret) { - nouveau_bo_ref(NULL, bo); - return ret; - } - - return 0; -} - -int -nouveau_bo_set_prime(struct nouveau_bo *bo, int *prime_fd) -{ - struct nouveau_bo_priv *nvbo = nouveau_bo(bo); - int ret; - - ret = drmPrimeHandleToFD(bo->device->fd, nvbo->base.handle, DRM_CLOEXEC, prime_fd); - if (ret) - return ret; - return 0; -} - -int -nouveau_bo_wait(struct nouveau_bo *bo, uint32_t access, - struct nouveau_client *client) -{ - struct nouveau_bo_priv *nvbo = nouveau_bo(bo); - struct drm_nouveau_gem_cpu_prep req; - struct nouveau_pushbuf *push; - int ret = 0; - - if (!(access & NOUVEAU_BO_RDWR)) - return 0; - - push = cli_push_get(client, bo); - if (push && push->channel) - nouveau_pushbuf_kick(push, push->channel); - - if (!nvbo->name && !(nvbo->access & NOUVEAU_BO_WR) && - !( access & NOUVEAU_BO_WR)) - return 0; - - req.handle = bo->handle; - req.flags = 0; - if (access & NOUVEAU_BO_WR) - req.flags |= NOUVEAU_GEM_CPU_PREP_WRITE; - if (access & NOUVEAU_BO_NOBLOCK) - req.flags |= NOUVEAU_GEM_CPU_PREP_NOWAIT; - - ret = drmCommandWrite(bo->device->fd, DRM_NOUVEAU_GEM_CPU_PREP, - &req, sizeof(req)); - if (ret == 0) - nvbo->access = 0; - return ret; -} - -int -nouveau_bo_map(struct nouveau_bo *bo, uint32_t access, - struct nouveau_client *client) -{ - struct nouveau_bo_priv *nvbo = nouveau_bo(bo); - if (bo->map == NULL) { - bo->map = mmap(0, bo->size, PROT_READ | PROT_WRITE, - MAP_SHARED, bo->device->fd, nvbo->map_handle); - if (bo->map == MAP_FAILED) { - bo->map = NULL; - return -errno; - } - } - return nouveau_bo_wait(bo, access, client); -} diff -Nru libdrm-2.4.52/nouveau/nouveau_channel.c libdrm-2.4.52+really2.4.21/nouveau/nouveau_channel.c --- libdrm-2.4.52/nouveau/nouveau_channel.c 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_channel.c 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,136 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include +#include + +#include "nouveau_private.h" + +int +nouveau_channel_alloc(struct nouveau_device *dev, uint32_t fb_ctxdma, + uint32_t tt_ctxdma, struct nouveau_channel **chan) +{ + struct nouveau_device_priv *nvdev = nouveau_device(dev); + struct nouveau_channel_priv *nvchan; + unsigned i; + int ret; + + if (!nvdev || !chan || *chan) + return -EINVAL; + + nvchan = calloc(1, sizeof(struct nouveau_channel_priv)); + if (!nvchan) + return -ENOMEM; + nvchan->base.device = dev; + + nvchan->drm.fb_ctxdma_handle = fb_ctxdma; + nvchan->drm.tt_ctxdma_handle = tt_ctxdma; + ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_CHANNEL_ALLOC, + &nvchan->drm, sizeof(nvchan->drm)); + if (ret) { + free(nvchan); + return ret; + } + + nvchan->base.id = nvchan->drm.channel; + if (nouveau_grobj_ref(&nvchan->base, nvchan->drm.fb_ctxdma_handle, + &nvchan->base.vram) || + nouveau_grobj_ref(&nvchan->base, nvchan->drm.tt_ctxdma_handle, + &nvchan->base.gart)) { + nouveau_channel_free((void *)&nvchan); + return -EINVAL; + } + + /* Mark all DRM-assigned subchannels as in-use */ + for (i = 0; i < nvchan->drm.nr_subchan; i++) { + struct nouveau_grobj_priv *gr = calloc(1, sizeof(*gr)); + + gr->base.bound = NOUVEAU_GROBJ_BOUND_EXPLICIT; + gr->base.subc = i; + gr->base.handle = nvchan->drm.subchan[i].handle; + gr->base.grclass = nvchan->drm.subchan[i].grclass; + gr->base.channel = &nvchan->base; + + nvchan->base.subc[i].gr = &gr->base; + } + + ret = nouveau_bo_wrap(dev, nvchan->drm.notifier_handle, + &nvchan->notifier_bo); + if (!ret) + ret = nouveau_bo_map(nvchan->notifier_bo, NOUVEAU_BO_RDWR); + if (ret) { + nouveau_channel_free((void *)&nvchan); + return ret; + } + + ret = nouveau_grobj_alloc(&nvchan->base, 0x00000000, 0x0030, + &nvchan->base.nullobj); + if (ret) { + nouveau_channel_free((void *)&nvchan); + return ret; + } + + ret = nouveau_pushbuf_init(&nvchan->base); + if (ret) { + nouveau_channel_free((void *)&nvchan); + return ret; + } + + *chan = &nvchan->base; + return 0; +} + +void +nouveau_channel_free(struct nouveau_channel **chan) +{ + struct nouveau_channel_priv *nvchan; + struct nouveau_device_priv *nvdev; + struct drm_nouveau_channel_free cf; + unsigned i; + + if (!chan || !*chan) + return; + nvchan = nouveau_channel(*chan); + (*chan)->flush_notify = NULL; + *chan = NULL; + nvdev = nouveau_device(nvchan->base.device); + + FIRE_RING(&nvchan->base); + + nouveau_pushbuf_fini(&nvchan->base); + nouveau_bo_unmap(nvchan->notifier_bo); + nouveau_bo_ref(NULL, &nvchan->notifier_bo); + + for (i = 0; i < nvchan->drm.nr_subchan; i++) + free(nvchan->base.subc[i].gr); + + nouveau_grobj_free(&nvchan->base.vram); + nouveau_grobj_free(&nvchan->base.gart); + nouveau_grobj_free(&nvchan->base.nullobj); + + cf.channel = nvchan->drm.channel; + drmCommandWrite(nvdev->fd, DRM_NOUVEAU_CHANNEL_FREE, &cf, sizeof(cf)); + free(nvchan); +} + + diff -Nru libdrm-2.4.52/nouveau/nouveau_channel.h libdrm-2.4.52+really2.4.21/nouveau/nouveau_channel.h --- libdrm-2.4.52/nouveau/nouveau_channel.h 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_channel.h 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,57 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __NOUVEAU_CHANNEL_H__ +#define __NOUVEAU_CHANNEL_H__ + +struct nouveau_subchannel { + struct nouveau_grobj *gr; + unsigned sequence; +}; + +struct nouveau_channel { + uint32_t *cur; + uint32_t *end; + + struct nouveau_device *device; + int id; + + struct nouveau_grobj *nullobj; + struct nouveau_grobj *vram; + struct nouveau_grobj *gart; + + void *user_private; + void (*hang_notify)(struct nouveau_channel *); + void (*flush_notify)(struct nouveau_channel *); + + struct nouveau_subchannel subc[8]; + unsigned subc_sequence; +}; + +int +nouveau_channel_alloc(struct nouveau_device *, uint32_t fb, uint32_t tt, + struct nouveau_channel **); + +void +nouveau_channel_free(struct nouveau_channel **); + +#endif diff -Nru libdrm-2.4.52/nouveau/nouveau_device.c libdrm-2.4.52+really2.4.21/nouveau/nouveau_device.c --- libdrm-2.4.52/nouveau/nouveau_device.c 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_device.c 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,188 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include +#include + +#include "nouveau_private.h" + +#if NOUVEAU_DRM_HEADER_PATCHLEVEL != 16 +#error nouveau_drm.h does not match expected patchlevel, update libdrm. +#endif + +int +nouveau_device_open_existing(struct nouveau_device **dev, int close, + int fd, drm_context_t ctx) +{ + struct nouveau_device_priv *nvdev; + drmVersionPtr ver; + uint64_t value; + int ret; + + if (!dev || *dev) + return -EINVAL; + + ver = drmGetVersion(fd); + if (!ver || ver->version_patchlevel != NOUVEAU_DRM_HEADER_PATCHLEVEL) + return -EINVAL; + drmFreeVersion(ver); + + nvdev = calloc(1, sizeof(*nvdev)); + if (!nvdev) + return -ENOMEM; + nvdev->fd = fd; + nvdev->ctx = ctx; + nvdev->needs_close = close; + + ret = nouveau_device_get_param(&nvdev->base, + NOUVEAU_GETPARAM_VM_VRAM_BASE, &value); + if (ret) { + nouveau_device_close((void *)&nvdev); + return ret; + } + nvdev->base.vm_vram_base = value; + + ret = nouveau_device_get_param(&nvdev->base, + NOUVEAU_GETPARAM_FB_SIZE, &value); + if (ret) { + nouveau_device_close((void *)&nvdev); + return ret; + } + nvdev->base.vm_vram_size = value; + + ret = nouveau_device_get_param(&nvdev->base, + NOUVEAU_GETPARAM_AGP_SIZE, &value); + if (ret) { + nouveau_device_close((void *)&nvdev); + return ret; + } + nvdev->base.vm_gart_size = value; + + ret = nouveau_bo_init(&nvdev->base); + if (ret) { + nouveau_device_close((void *)&nvdev); + return ret; + } + + ret = nouveau_device_get_param(&nvdev->base, + NOUVEAU_GETPARAM_CHIPSET_ID, &value); + if (ret) { + nouveau_device_close((void *)&nvdev); + return ret; + } + nvdev->base.chipset = value; + + *dev = &nvdev->base; + return 0; +} + +int +nouveau_device_open(struct nouveau_device **dev, const char *busid) +{ + drm_context_t ctx; + int fd, ret; + + if (!dev || *dev) + return -EINVAL; + + fd = drmOpen("nouveau", busid); + if (fd < 0) + return -EINVAL; + + ret = drmCreateContext(fd, &ctx); + if (ret) { + drmClose(fd); + return ret; + } + + ret = nouveau_device_open_existing(dev, 1, fd, ctx); + if (ret) { + drmDestroyContext(fd, ctx); + drmClose(fd); + return ret; + } + + return 0; +} + +void +nouveau_device_close(struct nouveau_device **dev) +{ + struct nouveau_device_priv *nvdev; + + if (!dev || !*dev) + return; + nvdev = nouveau_device(*dev); + *dev = NULL; + + nouveau_bo_takedown(&nvdev->base); + + if (nvdev->needs_close) { + drmDestroyContext(nvdev->fd, nvdev->ctx); + drmClose(nvdev->fd); + } + free(nvdev); +} + +int +nouveau_device_get_param(struct nouveau_device *dev, + uint64_t param, uint64_t *value) +{ + struct nouveau_device_priv *nvdev = nouveau_device(dev); + struct drm_nouveau_getparam g; + int ret; + + if (!nvdev || !value) + return -EINVAL; + + g.param = param; + ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_GETPARAM, + &g, sizeof(g)); + if (ret) + return ret; + + *value = g.value; + return 0; +} + +int +nouveau_device_set_param(struct nouveau_device *dev, + uint64_t param, uint64_t value) +{ + struct nouveau_device_priv *nvdev = nouveau_device(dev); + struct drm_nouveau_setparam s; + int ret; + + if (!nvdev) + return -EINVAL; + + s.param = param; + s.value = value; + ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_SETPARAM, + &s, sizeof(s)); + if (ret) + return ret; + + return 0; +} + diff -Nru libdrm-2.4.52/nouveau/nouveau_device.h libdrm-2.4.52+really2.4.21/nouveau/nouveau_device.h --- libdrm-2.4.52/nouveau/nouveau_device.h 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_device.h 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,33 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __NOUVEAU_DEVICE_H__ +#define __NOUVEAU_DEVICE_H__ + +struct nouveau_device { + unsigned chipset; + uint64_t vm_vram_base; + uint64_t vm_vram_size; + uint64_t vm_gart_size; +}; + +#endif diff -Nru libdrm-2.4.52/nouveau/nouveau_drmif.h libdrm-2.4.52+really2.4.21/nouveau/nouveau_drmif.h --- libdrm-2.4.52/nouveau/nouveau_drmif.h 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_drmif.h 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,57 @@ +/* + * Copyright 2008 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __NOUVEAU_DRMIF_H__ +#define __NOUVEAU_DRMIF_H__ + +#include +#include + +#include "nouveau_device.h" + +struct nouveau_device_priv { + struct nouveau_device base; + + int fd; + drm_context_t ctx; + drmLock *lock; + int needs_close; +}; +#define nouveau_device(n) ((struct nouveau_device_priv *)(n)) + +int +nouveau_device_open_existing(struct nouveau_device **, int close, + int fd, drm_context_t ctx); + +int +nouveau_device_open(struct nouveau_device **, const char *busid); + +void +nouveau_device_close(struct nouveau_device **); + +int +nouveau_device_get_param(struct nouveau_device *, uint64_t param, uint64_t *v); + +int +nouveau_device_set_param(struct nouveau_device *, uint64_t param, uint64_t val); + +#endif diff -Nru libdrm-2.4.52/nouveau/nouveau_grobj.c libdrm-2.4.52+really2.4.21/nouveau/nouveau_grobj.c --- libdrm-2.4.52/nouveau/nouveau_grobj.c 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_grobj.c 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,138 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include + +#include "nouveau_private.h" + +int +nouveau_grobj_alloc(struct nouveau_channel *chan, uint32_t handle, + int class, struct nouveau_grobj **grobj) +{ + struct nouveau_device_priv *nvdev = nouveau_device(chan->device); + struct nouveau_grobj_priv *nvgrobj; + struct drm_nouveau_grobj_alloc g; + int ret; + + if (!nvdev || !grobj || *grobj) + return -EINVAL; + + nvgrobj = calloc(1, sizeof(*nvgrobj)); + if (!nvgrobj) + return -ENOMEM; + nvgrobj->base.channel = chan; + nvgrobj->base.handle = handle; + nvgrobj->base.grclass = class; + nvgrobj->base.bound = NOUVEAU_GROBJ_UNBOUND; + nvgrobj->base.subc = -1; + + g.channel = chan->id; + g.handle = handle; + g.class = class; + ret = drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GROBJ_ALLOC, + &g, sizeof(g)); + if (ret) { + nouveau_grobj_free((void *)&nvgrobj); + return ret; + } + + *grobj = &nvgrobj->base; + return 0; +} + +int +nouveau_grobj_ref(struct nouveau_channel *chan, uint32_t handle, + struct nouveau_grobj **grobj) +{ + struct nouveau_grobj_priv *nvgrobj; + + if (!chan || !grobj || *grobj) + return -EINVAL; + + nvgrobj = calloc(1, sizeof(struct nouveau_grobj_priv)); + if (!nvgrobj) + return -ENOMEM; + nvgrobj->base.channel = chan; + nvgrobj->base.handle = handle; + nvgrobj->base.grclass = 0; + + *grobj = &nvgrobj->base; + return 0; +} + +void +nouveau_grobj_free(struct nouveau_grobj **grobj) +{ + struct nouveau_device_priv *nvdev; + struct nouveau_channel_priv *chan; + struct nouveau_grobj_priv *nvgrobj; + + if (!grobj || !*grobj) + return; + nvgrobj = nouveau_grobj(*grobj); + *grobj = NULL; + + + chan = nouveau_channel(nvgrobj->base.channel); + nvdev = nouveau_device(chan->base.device); + + if (nvgrobj->base.grclass) { + struct drm_nouveau_gpuobj_free f; + + f.channel = chan->drm.channel; + f.handle = nvgrobj->base.handle; + drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GPUOBJ_FREE, + &f, sizeof(f)); + } + free(nvgrobj); +} + +void +nouveau_grobj_autobind(struct nouveau_grobj *grobj) +{ + struct nouveau_subchannel *subc = NULL; + int i; + + for (i = 0; i < 8; i++) { + struct nouveau_subchannel *scc = &grobj->channel->subc[i]; + + if (scc->gr && scc->gr->bound == NOUVEAU_GROBJ_BOUND_EXPLICIT) + continue; + + if (!subc || scc->sequence < subc->sequence) + subc = scc; + } + + if (subc->gr) { + subc->gr->bound = NOUVEAU_GROBJ_UNBOUND; + subc->gr->subc = -1; + } + + subc->gr = grobj; + subc->gr->bound = NOUVEAU_GROBJ_BOUND; + subc->gr->subc = subc - &grobj->channel->subc[0]; + + BEGIN_RING(grobj->channel, grobj, 0x0000, 1); + OUT_RING (grobj->channel, grobj->handle); +} + diff -Nru libdrm-2.4.52/nouveau/nouveau_grobj.h libdrm-2.4.52+really2.4.21/nouveau/nouveau_grobj.h --- libdrm-2.4.52/nouveau/nouveau_grobj.h 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_grobj.h 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,48 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __NOUVEAU_GROBJ_H__ +#define __NOUVEAU_GROBJ_H__ + +#include "nouveau_channel.h" + +struct nouveau_grobj { + struct nouveau_channel *channel; + int grclass; + uint32_t handle; + + enum { + NOUVEAU_GROBJ_UNBOUND = 0, + NOUVEAU_GROBJ_BOUND = 1, + NOUVEAU_GROBJ_BOUND_EXPLICIT = 2 + } bound; + int subc; +}; + +int nouveau_grobj_alloc(struct nouveau_channel *, uint32_t handle, + int class, struct nouveau_grobj **); +int nouveau_grobj_ref(struct nouveau_channel *, uint32_t handle, + struct nouveau_grobj **); +void nouveau_grobj_free(struct nouveau_grobj **); +void nouveau_grobj_autobind(struct nouveau_grobj *); + +#endif diff -Nru libdrm-2.4.52/nouveau/nouveau.h libdrm-2.4.52+really2.4.21/nouveau/nouveau.h --- libdrm-2.4.52/nouveau/nouveau.h 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,231 +0,0 @@ -#ifndef __NOUVEAU_H__ -#define __NOUVEAU_H__ - -#include -#include - -#define NOUVEAU_DEVICE_CLASS 0x80000000 -#define NOUVEAU_FIFO_CHANNEL_CLASS 0x80000001 -#define NOUVEAU_NOTIFIER_CLASS 0x80000002 -#define NOUVEAU_PARENT_CLASS 0xffffffff - -struct nouveau_list { - struct nouveau_list *prev; - struct nouveau_list *next; -}; - -struct nouveau_object { - struct nouveau_object *parent; - uint64_t handle; - uint32_t oclass; - uint32_t length; - void *data; -}; - -struct nouveau_fifo { - struct nouveau_object *object; - uint32_t channel; - uint32_t pushbuf; - uint64_t unused1[3]; -}; - -struct nv04_fifo { - struct nouveau_fifo base; - uint32_t vram; - uint32_t gart; - uint32_t notify; -}; - -struct nvc0_fifo { - struct nouveau_fifo base; - uint32_t notify; -}; - -#define NVE0_FIFO_ENGINE_GR 0x00000001 -#define NVE0_FIFO_ENGINE_VP 0x00000002 -#define NVE0_FIFO_ENGINE_PPP 0x00000004 -#define NVE0_FIFO_ENGINE_BSP 0x00000008 -#define NVE0_FIFO_ENGINE_CE0 0x00000010 -#define NVE0_FIFO_ENGINE_CE1 0x00000020 -#define NVE0_FIFO_ENGINE_ENC 0x00000040 - -struct nve0_fifo { - struct { - struct nouveau_fifo base; - uint32_t notify; - }; - uint32_t engine; -}; - -struct nv04_notify { - struct nouveau_object *object; - uint32_t offset; - uint32_t length; -}; - -int nouveau_object_new(struct nouveau_object *parent, uint64_t handle, - uint32_t oclass, void *data, uint32_t length, - struct nouveau_object **); -void nouveau_object_del(struct nouveau_object **); -void *nouveau_object_find(struct nouveau_object *, uint32_t parent_class); - -struct nouveau_device { - struct nouveau_object object; - int fd; - uint32_t lib_version; - uint32_t drm_version; - uint32_t chipset; - uint64_t vram_size; - uint64_t gart_size; - uint64_t vram_limit; - uint64_t gart_limit; -}; - -int nouveau_device_wrap(int fd, int close, struct nouveau_device **); -int nouveau_device_open(const char *busid, struct nouveau_device **); -void nouveau_device_del(struct nouveau_device **); -int nouveau_getparam(struct nouveau_device *, uint64_t param, uint64_t *value); -int nouveau_setparam(struct nouveau_device *, uint64_t param, uint64_t value); - -struct nouveau_client { - struct nouveau_device *device; - int id; -}; - -int nouveau_client_new(struct nouveau_device *, struct nouveau_client **); -void nouveau_client_del(struct nouveau_client **); - -union nouveau_bo_config { - struct { -#define NV04_BO_16BPP 0x00000001 -#define NV04_BO_32BPP 0x00000002 -#define NV04_BO_ZETA 0x00000004 - uint32_t surf_flags; - uint32_t surf_pitch; - } nv04; - struct { - uint32_t memtype; - uint32_t tile_mode; - } nv50; - struct { - uint32_t memtype; - uint32_t tile_mode; - } nvc0; - uint32_t data[8]; -}; - -#define NOUVEAU_BO_VRAM 0x00000001 -#define NOUVEAU_BO_GART 0x00000002 -#define NOUVEAU_BO_APER (NOUVEAU_BO_VRAM | NOUVEAU_BO_GART) -#define NOUVEAU_BO_RD 0x00000100 -#define NOUVEAU_BO_WR 0x00000200 -#define NOUVEAU_BO_RDWR (NOUVEAU_BO_RD | NOUVEAU_BO_WR) -#define NOUVEAU_BO_NOBLOCK 0x00000400 -#define NOUVEAU_BO_LOW 0x00001000 -#define NOUVEAU_BO_HIGH 0x00002000 -#define NOUVEAU_BO_OR 0x00004000 -#define NOUVEAU_BO_MAP 0x80000000 -#define NOUVEAU_BO_CONTIG 0x40000000 -#define NOUVEAU_BO_NOSNOOP 0x20000000 - -struct nouveau_bo { - struct nouveau_device *device; - uint32_t handle; - uint64_t size; - uint32_t flags; - uint64_t offset; - void *map; - union nouveau_bo_config config; -}; - -int nouveau_bo_new(struct nouveau_device *, uint32_t flags, uint32_t align, - uint64_t size, union nouveau_bo_config *, - struct nouveau_bo **); -int nouveau_bo_wrap(struct nouveau_device *, uint32_t handle, - struct nouveau_bo **); -int nouveau_bo_name_ref(struct nouveau_device *dev, uint32_t name, - struct nouveau_bo **); -int nouveau_bo_name_get(struct nouveau_bo *, uint32_t *name); -void nouveau_bo_ref(struct nouveau_bo *, struct nouveau_bo **); -int nouveau_bo_map(struct nouveau_bo *, uint32_t access, - struct nouveau_client *); -int nouveau_bo_wait(struct nouveau_bo *, uint32_t access, - struct nouveau_client *); -int nouveau_bo_prime_handle_ref(struct nouveau_device *dev, int prime_fd, - struct nouveau_bo **); -int nouveau_bo_set_prime(struct nouveau_bo *bo, int *prime_fd); - -struct nouveau_bufref { - struct nouveau_list thead; - struct nouveau_bo *bo; - uint32_t packet; - uint32_t flags; - uint32_t data; - uint32_t vor; - uint32_t tor; - uint32_t priv_data; - void *priv; -}; - -struct nouveau_bufctx { - struct nouveau_client *client; - struct nouveau_list head; - struct nouveau_list pending; - struct nouveau_list current; - int relocs; -}; - -int nouveau_bufctx_new(struct nouveau_client *, int bins, - struct nouveau_bufctx **); -void nouveau_bufctx_del(struct nouveau_bufctx **); -struct nouveau_bufref * -nouveau_bufctx_refn(struct nouveau_bufctx *, int bin, - struct nouveau_bo *, uint32_t flags); -struct nouveau_bufref * -nouveau_bufctx_mthd(struct nouveau_bufctx *, int bin, uint32_t packet, - struct nouveau_bo *, uint64_t data, uint32_t flags, - uint32_t vor, uint32_t tor); -void nouveau_bufctx_reset(struct nouveau_bufctx *, int bin); - -struct nouveau_pushbuf_krec; -struct nouveau_pushbuf { - struct nouveau_client *client; - struct nouveau_object *channel; - struct nouveau_bufctx *bufctx; - void (*kick_notify)(struct nouveau_pushbuf *); - void *user_priv; - uint32_t rsvd_kick; - uint32_t flags; - uint32_t *cur; - uint32_t *end; -}; - -struct nouveau_pushbuf_refn { - struct nouveau_bo *bo; - uint32_t flags; -}; - -int nouveau_pushbuf_new(struct nouveau_client *, struct nouveau_object *channel, - int nr, uint32_t size, bool immediate, - struct nouveau_pushbuf **); -void nouveau_pushbuf_del(struct nouveau_pushbuf **); -int nouveau_pushbuf_space(struct nouveau_pushbuf *, uint32_t dwords, - uint32_t relocs, uint32_t pushes); -void nouveau_pushbuf_data(struct nouveau_pushbuf *, struct nouveau_bo *, - uint64_t offset, uint64_t length); -int nouveau_pushbuf_refn(struct nouveau_pushbuf *, - struct nouveau_pushbuf_refn *, int nr); -/* Emits a reloc into the push buffer at the current position, you *must* - * have previously added the referenced buffer to a buffer context, and - * validated it against the current push buffer. - */ -void nouveau_pushbuf_reloc(struct nouveau_pushbuf *, struct nouveau_bo *, - uint32_t data, uint32_t flags, - uint32_t vor, uint32_t tor); -int nouveau_pushbuf_validate(struct nouveau_pushbuf *); -uint32_t nouveau_pushbuf_refd(struct nouveau_pushbuf *, struct nouveau_bo *); -int nouveau_pushbuf_kick(struct nouveau_pushbuf *, struct nouveau_object *channel); -struct nouveau_bufctx * -nouveau_pushbuf_bufctx(struct nouveau_pushbuf *, struct nouveau_bufctx *); - -#endif diff -Nru libdrm-2.4.52/nouveau/nouveau_notifier.c libdrm-2.4.52+really2.4.21/nouveau/nouveau_notifier.c --- libdrm-2.4.52/nouveau/nouveau_notifier.c 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_notifier.c 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,146 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include +#include + +#include "nouveau_private.h" + +#define NOTIFIER(__v) \ + struct nouveau_notifier_priv *nvnotify = nouveau_notifier(notifier); \ + volatile uint32_t *__v = (uint32_t *)((char *)nvnotify->map + (id * 32)) + +int +nouveau_notifier_alloc(struct nouveau_channel *chan, uint32_t handle, + int count, struct nouveau_notifier **notifier) +{ + struct nouveau_notifier_priv *nvnotify; + int ret; + + if (!chan || !notifier || *notifier) + return -EINVAL; + + nvnotify = calloc(1, sizeof(struct nouveau_notifier_priv)); + if (!nvnotify) + return -ENOMEM; + nvnotify->base.channel = chan; + nvnotify->base.handle = handle; + + nvnotify->drm.channel = chan->id; + nvnotify->drm.handle = handle; + nvnotify->drm.size = (count * 32); + if ((ret = drmCommandWriteRead(nouveau_device(chan->device)->fd, + DRM_NOUVEAU_NOTIFIEROBJ_ALLOC, + &nvnotify->drm, + sizeof(nvnotify->drm)))) { + nouveau_notifier_free((void *)&nvnotify); + return ret; + } + + nvnotify->map = (char *)nouveau_channel(chan)->notifier_bo->map + + nvnotify->drm.offset; + *notifier = &nvnotify->base; + return 0; +} + +void +nouveau_notifier_free(struct nouveau_notifier **notifier) +{ + + struct nouveau_notifier_priv *nvnotify; + struct nouveau_channel_priv *nvchan; + struct nouveau_device_priv *nvdev; + struct drm_nouveau_gpuobj_free f; + + if (!notifier || !*notifier) + return; + nvnotify = nouveau_notifier(*notifier); + *notifier = NULL; + + nvchan = nouveau_channel(nvnotify->base.channel); + nvdev = nouveau_device(nvchan->base.device); + + f.channel = nvchan->drm.channel; + f.handle = nvnotify->base.handle; + drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GPUOBJ_FREE, &f, sizeof(f)); + free(nvnotify); +} + +void +nouveau_notifier_reset(struct nouveau_notifier *notifier, int id) +{ + NOTIFIER(n); + + n[NV_NOTIFY_TIME_0 /4] = 0x00000000; + n[NV_NOTIFY_TIME_1 /4] = 0x00000000; + n[NV_NOTIFY_RETURN_VALUE/4] = 0x00000000; + n[NV_NOTIFY_STATE /4] = (NV_NOTIFY_STATE_STATUS_IN_PROCESS << + NV_NOTIFY_STATE_STATUS_SHIFT); +} + +uint32_t +nouveau_notifier_status(struct nouveau_notifier *notifier, int id) +{ + NOTIFIER(n); + + return n[NV_NOTIFY_STATE/4] >> NV_NOTIFY_STATE_STATUS_SHIFT; +} + +uint32_t +nouveau_notifier_return_val(struct nouveau_notifier *notifier, int id) +{ + NOTIFIER(n); + + return n[NV_NOTIFY_RETURN_VALUE/4]; +} + +static inline double +gettime(void) +{ + struct timeval tv; + + gettimeofday(&tv, NULL); + return (double)tv.tv_sec + tv.tv_usec / 1000000.0; +} + +int +nouveau_notifier_wait_status(struct nouveau_notifier *notifier, int id, + uint32_t status, double timeout) +{ + NOTIFIER(n); + double time = 0, t_start = gettime(); + + while (time <= timeout) { + uint32_t v; + + v = n[NV_NOTIFY_STATE/4] >> NV_NOTIFY_STATE_STATUS_SHIFT; + if (v == status) + return 0; + + if (timeout) + time = gettime() - t_start; + } + + return -EBUSY; +} + diff -Nru libdrm-2.4.52/nouveau/nouveau_notifier.h libdrm-2.4.52+really2.4.21/nouveau/nouveau_notifier.h --- libdrm-2.4.52/nouveau/nouveau_notifier.h 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_notifier.h 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,63 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __NOUVEAU_NOTIFIER_H__ +#define __NOUVEAU_NOTIFIER_H__ + +#define NV_NOTIFIER_SIZE 32 +#define NV_NOTIFY_TIME_0 0x00000000 +#define NV_NOTIFY_TIME_1 0x00000004 +#define NV_NOTIFY_RETURN_VALUE 0x00000008 +#define NV_NOTIFY_STATE 0x0000000C +#define NV_NOTIFY_STATE_STATUS_MASK 0xFF000000 +#define NV_NOTIFY_STATE_STATUS_SHIFT 24 +#define NV_NOTIFY_STATE_STATUS_COMPLETED 0x00 +#define NV_NOTIFY_STATE_STATUS_IN_PROCESS 0x01 +#define NV_NOTIFY_STATE_ERROR_CODE_MASK 0x0000FFFF +#define NV_NOTIFY_STATE_ERROR_CODE_SHIFT 0 + +struct nouveau_notifier { + struct nouveau_channel *channel; + uint32_t handle; +}; + +int +nouveau_notifier_alloc(struct nouveau_channel *, uint32_t handle, int count, + struct nouveau_notifier **); + +void +nouveau_notifier_free(struct nouveau_notifier **); + +void +nouveau_notifier_reset(struct nouveau_notifier *, int id); + +uint32_t +nouveau_notifier_status(struct nouveau_notifier *, int id); + +uint32_t +nouveau_notifier_return_val(struct nouveau_notifier *, int id); + +int +nouveau_notifier_wait_status(struct nouveau_notifier *, int id, uint32_t status, + double timeout); + +#endif diff -Nru libdrm-2.4.52/nouveau/nouveau_private.h libdrm-2.4.52+really2.4.21/nouveau/nouveau_private.h --- libdrm-2.4.52/nouveau/nouveau_private.h 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_private.h 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,135 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __NOUVEAU_PRIVATE_H__ +#define __NOUVEAU_PRIVATE_H__ + +#include +#include +#include + +#include "nouveau_drmif.h" +#include "nouveau_device.h" +#include "nouveau_channel.h" +#include "nouveau_grobj.h" +#include "nouveau_notifier.h" +#include "nouveau_bo.h" +#include "nouveau_resource.h" +#include "nouveau_pushbuf.h" +#include "nouveau_reloc.h" + +#define CALPB_BUFFERS 4 +#define CALPB_BUFSZ 16384 +struct nouveau_pushbuf_priv { + uint32_t cal_suffix0; + uint32_t cal_suffix1; + struct nouveau_bo *buffer[CALPB_BUFFERS]; + int current; + int current_offset; + + unsigned *pushbuf; + unsigned size; + + uint32_t *marker; + unsigned marker_offset; + unsigned marker_relocs; + unsigned marker_push; + + struct drm_nouveau_gem_pushbuf_bo *buffers; + unsigned nr_buffers; + struct drm_nouveau_gem_pushbuf_reloc *relocs; + unsigned nr_relocs; + struct drm_nouveau_gem_pushbuf_push push[NOUVEAU_GEM_MAX_PUSH]; + unsigned nr_push; +}; +#define nouveau_pushbuf(n) ((struct nouveau_pushbuf_priv *)(n)) + +int +nouveau_pushbuf_init(struct nouveau_channel *); +void +nouveau_pushbuf_fini(struct nouveau_channel *); + +struct nouveau_channel_priv { + struct nouveau_channel base; + + struct drm_nouveau_channel_alloc drm; + + struct nouveau_bo *notifier_bo; + + struct nouveau_pushbuf_priv pb; +}; +#define nouveau_channel(n) ((struct nouveau_channel_priv *)(n)) + +struct nouveau_grobj_priv { + struct nouveau_grobj base; +}; +#define nouveau_grobj(n) ((struct nouveau_grobj_priv *)(n)) + +struct nouveau_notifier_priv { + struct nouveau_notifier base; + + struct drm_nouveau_notifierobj_alloc drm; + volatile void *map; +}; +#define nouveau_notifier(n) ((struct nouveau_notifier_priv *)(n)) + +struct nouveau_bo_priv { + struct nouveau_bo base; + int refcount; + + /* Buffer configuration + usage hints */ + unsigned flags; + unsigned size; + unsigned align; + int user; + + /* Tracking */ + struct drm_nouveau_gem_pushbuf_bo *pending; + struct nouveau_channel *pending_channel; + int pending_refcnt; + int write_marker; + + /* Userspace object */ + void *sysmem; + + /* Kernel object */ + uint32_t global_handle; + drm_handle_t handle; + uint64_t map_handle; + void *map; + + /* Last known information from kernel on buffer status */ + uint64_t offset; + uint32_t domain; +}; +#define nouveau_bo(n) ((struct nouveau_bo_priv *)(n)) + +int +nouveau_bo_init(struct nouveau_device *); + +void +nouveau_bo_takedown(struct nouveau_device *); + +struct drm_nouveau_gem_pushbuf_bo * +nouveau_bo_emit_buffer(struct nouveau_channel *, struct nouveau_bo *); + +#endif diff -Nru libdrm-2.4.52/nouveau/nouveau_pushbuf.c libdrm-2.4.52+really2.4.21/nouveau/nouveau_pushbuf.c --- libdrm-2.4.52/nouveau/nouveau_pushbuf.c 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_pushbuf.c 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,343 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include +#include +#include + +#include "nouveau_private.h" + +#define PB_BUFMGR_DWORDS (4096 / 2) +#define PB_MIN_USER_DWORDS 2048 + +static int +nouveau_pushbuf_space(struct nouveau_channel *chan, unsigned min) +{ + struct nouveau_channel_priv *nvchan = nouveau_channel(chan); + struct nouveau_pushbuf_priv *nvpb = &nvchan->pb; + struct nouveau_bo *bo; + int ret; + + if (min < PB_MIN_USER_DWORDS) + min = PB_MIN_USER_DWORDS; + + nvpb->current_offset = chan->cur - nvpb->pushbuf; + if (chan->cur + min + 2 <= chan->end) + return 0; + + nvpb->current++; + if (nvpb->current == CALPB_BUFFERS) + nvpb->current = 0; + bo = nvpb->buffer[nvpb->current]; + + ret = nouveau_bo_map(bo, NOUVEAU_BO_WR); + if (ret) + return ret; + + nvpb->size = (bo->size - 8) / 4; + nvpb->pushbuf = bo->map; + nvpb->current_offset = 0; + + chan->cur = nvpb->pushbuf; + chan->end = nvpb->pushbuf + nvpb->size; + + nouveau_bo_unmap(bo); + return 0; +} + +static void +nouveau_pushbuf_fini_call(struct nouveau_channel *chan) +{ + struct nouveau_channel_priv *nvchan = nouveau_channel(chan); + struct nouveau_pushbuf_priv *nvpb = &nvchan->pb; + int i; + + for (i = 0; i < CALPB_BUFFERS; i++) + nouveau_bo_ref(NULL, &nvpb->buffer[i]); + nvpb->pushbuf = NULL; +} + +static int +nouveau_pushbuf_init_call(struct nouveau_channel *chan) +{ + struct drm_nouveau_gem_pushbuf req; + struct nouveau_channel_priv *nvchan = nouveau_channel(chan); + struct nouveau_pushbuf_priv *nvpb = &nvchan->pb; + struct nouveau_device *dev = chan->device; + uint32_t flags = 0; + int i, ret; + + if (nvchan->drm.pushbuf_domains & NOUVEAU_GEM_DOMAIN_GART) + flags |= NOUVEAU_BO_GART; + else + flags |= NOUVEAU_BO_VRAM; + + req.channel = chan->id; + req.nr_push = 0; + ret = drmCommandWriteRead(nouveau_device(dev)->fd, + DRM_NOUVEAU_GEM_PUSHBUF, &req, sizeof(req)); + if (ret) + return ret; + + for (i = 0; i < CALPB_BUFFERS; i++) { + ret = nouveau_bo_new(dev, flags | NOUVEAU_BO_MAP, + 0, CALPB_BUFSZ, &nvpb->buffer[i]); + if (ret) { + nouveau_pushbuf_fini_call(chan); + return ret; + } + } + + nvpb->cal_suffix0 = req.suffix0; + nvpb->cal_suffix1 = req.suffix1; + return 0; +} + +int +nouveau_pushbuf_init(struct nouveau_channel *chan) +{ + struct nouveau_channel_priv *nvchan = nouveau_channel(chan); + struct nouveau_pushbuf_priv *nvpb = &nvchan->pb; + int ret; + + ret = nouveau_pushbuf_init_call(chan); + if (ret) + return ret; + + ret = nouveau_pushbuf_space(chan, 0); + if (ret) + return ret; + + nvpb->buffers = calloc(NOUVEAU_GEM_MAX_BUFFERS, + sizeof(struct drm_nouveau_gem_pushbuf_bo)); + nvpb->relocs = calloc(NOUVEAU_GEM_MAX_RELOCS, + sizeof(struct drm_nouveau_gem_pushbuf_reloc)); + return 0; +} + +void +nouveau_pushbuf_fini(struct nouveau_channel *chan) +{ + struct nouveau_channel_priv *nvchan = nouveau_channel(chan); + struct nouveau_pushbuf_priv *nvpb = &nvchan->pb; + nouveau_pushbuf_fini_call(chan); + free(nvpb->buffers); + free(nvpb->relocs); +} + +static int +nouveau_pushbuf_bo_add(struct nouveau_channel *chan, struct nouveau_bo *bo, + unsigned offset, unsigned length) +{ + struct nouveau_channel_priv *nvchan = nouveau_channel(chan); + struct nouveau_pushbuf_priv *nvpb = &nvchan->pb; + struct drm_nouveau_gem_pushbuf_push *p = &nvpb->push[nvpb->nr_push++]; + struct drm_nouveau_gem_pushbuf_bo *pbbo; + struct nouveau_bo_priv *nvbo = nouveau_bo(bo); + + pbbo = nouveau_bo_emit_buffer(chan, bo); + if (!pbbo) + return -ENOMEM; + pbbo->valid_domains &= nvchan->drm.pushbuf_domains; + pbbo->read_domains |= nvchan->drm.pushbuf_domains; + nvbo->pending_refcnt++; + + p->bo_index = pbbo - nvpb->buffers; + p->offset = offset; + p->length = length; + return 0; +} + +int +nouveau_pushbuf_submit(struct nouveau_channel *chan, struct nouveau_bo *bo, + unsigned offset, unsigned length) +{ + struct nouveau_pushbuf_priv *nvpb = &nouveau_channel(chan)->pb; + int ret, len; + + if ((AVAIL_RING(chan) + nvpb->current_offset) != nvpb->size) { + if (nvpb->cal_suffix0 || nvpb->cal_suffix1) { + *(chan->cur++) = nvpb->cal_suffix0; + *(chan->cur++) = nvpb->cal_suffix1; + } + + len = (chan->cur - nvpb->pushbuf) - nvpb->current_offset; + + ret = nouveau_pushbuf_bo_add(chan, nvpb->buffer[nvpb->current], + nvpb->current_offset * 4, len * 4); + if (ret) + return ret; + + nvpb->current_offset += len; + } + + return bo ? nouveau_pushbuf_bo_add(chan, bo, offset, length) : 0; +} + +static void +nouveau_pushbuf_bo_unref(struct nouveau_pushbuf_priv *nvpb, int index) +{ + struct drm_nouveau_gem_pushbuf_bo *pbbo = &nvpb->buffers[index]; + struct nouveau_bo *bo = (void *)(unsigned long)pbbo->user_priv; + struct nouveau_bo_priv *nvbo = nouveau_bo(bo); + + if (--nvbo->pending_refcnt) + return; + + if (pbbo->presumed.valid == 0) { + nvbo->domain = pbbo->presumed.domain; + nvbo->offset = pbbo->presumed.offset; + } + + nvbo->pending = NULL; + nouveau_bo_ref(NULL, &bo); + + /* we only ever remove from the tail of the pending lists, + * so this is safe. + */ + nvpb->nr_buffers--; +} + +int +nouveau_pushbuf_flush(struct nouveau_channel *chan, unsigned min) +{ + struct nouveau_device_priv *nvdev = nouveau_device(chan->device); + struct nouveau_channel_priv *nvchan = nouveau_channel(chan); + struct nouveau_pushbuf_priv *nvpb = &nvchan->pb; + struct drm_nouveau_gem_pushbuf req; + unsigned i; + int ret; + + ret = nouveau_pushbuf_submit(chan, NULL, 0, 0); + if (ret) + return ret; + + if (!nvpb->nr_push) + return 0; + + req.channel = chan->id; + req.nr_push = nvpb->nr_push; + req.push = (uint64_t)(unsigned long)nvpb->push; + req.nr_buffers = nvpb->nr_buffers; + req.buffers = (uint64_t)(unsigned long)nvpb->buffers; + req.nr_relocs = nvpb->nr_relocs; + req.relocs = (uint64_t)(unsigned long)nvpb->relocs; + req.suffix0 = nvpb->cal_suffix0; + req.suffix1 = nvpb->cal_suffix1; + + do { + ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_GEM_PUSHBUF, + &req, sizeof(req)); + } while (ret == -EAGAIN); + nvpb->cal_suffix0 = req.suffix0; + nvpb->cal_suffix1 = req.suffix1; + nvdev->base.vm_vram_size = req.vram_available; + nvdev->base.vm_gart_size = req.gart_available; + + /* Update presumed offset/domain for any buffers that moved. + * Dereference all buffers on validate list + */ + for (i = 0; i < nvpb->nr_relocs; i++) { + nouveau_pushbuf_bo_unref(nvpb, nvpb->relocs[i].bo_index); + nouveau_pushbuf_bo_unref(nvpb, nvpb->relocs[i].reloc_bo_index); + } + + for (i = 0; i < nvpb->nr_push; i++) + nouveau_pushbuf_bo_unref(nvpb, nvpb->push[i].bo_index); + + nvpb->nr_buffers = 0; + nvpb->nr_relocs = 0; + nvpb->nr_push = 0; + + /* Allocate space for next push buffer */ + assert(!nouveau_pushbuf_space(chan, min)); + + if (chan->flush_notify) + chan->flush_notify(chan); + + nvpb->marker = NULL; + return ret; +} + +int +nouveau_pushbuf_marker_emit(struct nouveau_channel *chan, + unsigned wait_dwords, unsigned wait_relocs) +{ + struct nouveau_pushbuf_priv *nvpb = &nouveau_channel(chan)->pb; + + if (AVAIL_RING(chan) < wait_dwords) + return nouveau_pushbuf_flush(chan, wait_dwords); + + if (nvpb->nr_relocs + wait_relocs >= NOUVEAU_GEM_MAX_RELOCS) + return nouveau_pushbuf_flush(chan, wait_dwords); + + nvpb->marker = chan->cur; + nvpb->marker_offset = nvpb->current_offset; + nvpb->marker_push = nvpb->nr_push; + nvpb->marker_relocs = nvpb->nr_relocs; + return 0; +} + +void +nouveau_pushbuf_marker_undo(struct nouveau_channel *chan) +{ + struct nouveau_pushbuf_priv *nvpb = &nouveau_channel(chan)->pb; + unsigned i; + + if (!nvpb->marker) + return; + + /* undo any relocs/buffers added to the list since last marker */ + for (i = nvpb->marker_relocs; i < nvpb->nr_relocs; i++) { + nouveau_pushbuf_bo_unref(nvpb, nvpb->relocs[i].bo_index); + nouveau_pushbuf_bo_unref(nvpb, nvpb->relocs[i].reloc_bo_index); + } + nvpb->nr_relocs = nvpb->marker_relocs; + + for (i = nvpb->marker_push; i < nvpb->nr_push; i++) + nouveau_pushbuf_bo_unref(nvpb, nvpb->push[i].bo_index); + nvpb->nr_push = nvpb->marker_push; + + /* reset pushbuf back to last marker */ + chan->cur = nvpb->marker; + nvpb->current_offset = nvpb->marker_offset; + nvpb->marker = NULL; +} + +int +nouveau_pushbuf_emit_reloc(struct nouveau_channel *chan, void *ptr, + struct nouveau_bo *bo, uint32_t data, uint32_t data2, + uint32_t flags, uint32_t vor, uint32_t tor) +{ + struct nouveau_pushbuf_priv *nvpb = &nouveau_channel(chan)->pb; + int ret; + + ret = nouveau_reloc_emit(chan, nvpb->buffer[nvpb->current], + (char *)ptr - (char *)nvpb->pushbuf, ptr, + bo, data, data2, flags, vor, tor); + if (ret) + return ret; + + return 0; +} + diff -Nru libdrm-2.4.52/nouveau/nouveau_pushbuf.h libdrm-2.4.52+really2.4.21/nouveau/nouveau_pushbuf.h --- libdrm-2.4.52/nouveau/nouveau_pushbuf.h 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_pushbuf.h 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,200 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __NOUVEAU_PUSHBUF_H__ +#define __NOUVEAU_PUSHBUF_H__ + +#include +#include + +#include "nouveau_bo.h" +#include "nouveau_grobj.h" + +int +nouveau_pushbuf_flush(struct nouveau_channel *, unsigned min); + +int +nouveau_pushbuf_marker_emit(struct nouveau_channel *chan, + unsigned wait_dwords, unsigned wait_relocs); + +void +nouveau_pushbuf_marker_undo(struct nouveau_channel *chan); + +int +nouveau_pushbuf_emit_reloc(struct nouveau_channel *, void *ptr, + struct nouveau_bo *, uint32_t data, uint32_t data2, + uint32_t flags, uint32_t vor, uint32_t tor); + +int +nouveau_pushbuf_submit(struct nouveau_channel *chan, struct nouveau_bo *bo, + unsigned offset, unsigned length); + +/* Push buffer access macros */ +static __inline__ int +MARK_RING(struct nouveau_channel *chan, unsigned dwords, unsigned relocs) +{ + return nouveau_pushbuf_marker_emit(chan, dwords, relocs); +} + +static __inline__ void +MARK_UNDO(struct nouveau_channel *chan) +{ + nouveau_pushbuf_marker_undo(chan); +} + +static __inline__ void +OUT_RING(struct nouveau_channel *chan, unsigned data) +{ + *(chan->cur++) = (data); +} + +static __inline__ void +OUT_RINGp(struct nouveau_channel *chan, const void *data, unsigned size) +{ + memcpy(chan->cur, data, size * 4); + chan->cur += size; +} + +static __inline__ void +OUT_RINGf(struct nouveau_channel *chan, float f) +{ + union { uint32_t i; float f; } c; + c.f = f; + OUT_RING(chan, c.i); +} + +static __inline__ unsigned +AVAIL_RING(struct nouveau_channel *chan) +{ + return chan->end - chan->cur; +} + +static __inline__ void +WAIT_RING(struct nouveau_channel *chan, unsigned size) +{ + if (chan->cur + size > chan->end) + nouveau_pushbuf_flush(chan, size); +} + +static __inline__ void +BEGIN_RING(struct nouveau_channel *chan, struct nouveau_grobj *gr, + unsigned mthd, unsigned size) +{ + if (gr->bound == NOUVEAU_GROBJ_UNBOUND) + nouveau_grobj_autobind(gr); + chan->subc[gr->subc].sequence = chan->subc_sequence++; + + WAIT_RING(chan, size + 1); + OUT_RING(chan, (gr->subc << 13) | (size << 18) | mthd); +} + +/* non-incrementing BEGIN_RING */ +static __inline__ void +BEGIN_RING_NI(struct nouveau_channel *chan, struct nouveau_grobj *gr, + unsigned mthd, unsigned size) +{ + BEGIN_RING(chan, gr, mthd | 0x40000000, size); +} + +static __inline__ void +FIRE_RING(struct nouveau_channel *chan) +{ + nouveau_pushbuf_flush(chan, 0); +} + +static __inline__ void +BIND_RING(struct nouveau_channel *chan, struct nouveau_grobj *gr, unsigned sc) +{ + struct nouveau_subchannel *subc = &gr->channel->subc[sc]; + + if (subc->gr) { + if (subc->gr->bound == NOUVEAU_GROBJ_BOUND_EXPLICIT) + assert(0); + subc->gr->bound = NOUVEAU_GROBJ_UNBOUND; + } + subc->gr = gr; + subc->gr->subc = sc; + subc->gr->bound = NOUVEAU_GROBJ_BOUND_EXPLICIT; + + BEGIN_RING(chan, gr, 0x0000, 1); + OUT_RING (chan, gr->handle); +} + +static __inline__ int +OUT_RELOC(struct nouveau_channel *chan, struct nouveau_bo *bo, + unsigned data, unsigned flags, unsigned vor, unsigned tor) +{ + return nouveau_pushbuf_emit_reloc(chan, chan->cur++, bo, + data, 0, flags, vor, tor); +} + +static __inline__ int +OUT_RELOC2(struct nouveau_channel *chan, struct nouveau_bo *bo, + unsigned data, unsigned data2, unsigned flags, + unsigned vor, unsigned tor) +{ + return nouveau_pushbuf_emit_reloc(chan, chan->cur++, bo, + data, data2, flags, vor, tor); +} + +/* Raw data + flags depending on FB/TT buffer */ +static __inline__ int +OUT_RELOCd(struct nouveau_channel *chan, struct nouveau_bo *bo, + unsigned data, unsigned flags, unsigned vor, unsigned tor) +{ + return OUT_RELOC(chan, bo, data, flags | NOUVEAU_BO_OR, vor, tor); +} + +/* FB/TT object handle */ +static __inline__ int +OUT_RELOCo(struct nouveau_channel *chan, struct nouveau_bo *bo, + unsigned flags) +{ + return OUT_RELOC(chan, bo, 0, flags | NOUVEAU_BO_OR, + chan->vram->handle, chan->gart->handle); +} + +/* Low 32-bits of offset */ +static __inline__ int +OUT_RELOCl(struct nouveau_channel *chan, struct nouveau_bo *bo, + unsigned delta, unsigned flags) +{ + return OUT_RELOC(chan, bo, delta, flags | NOUVEAU_BO_LOW, 0, 0); +} + +/* Low 32-bits of offset + GPU linear access range info */ +static __inline__ int +OUT_RELOCr(struct nouveau_channel *chan, struct nouveau_bo *bo, + unsigned delta, unsigned size, unsigned flags) +{ + return OUT_RELOC2(chan, bo, delta, size, flags | NOUVEAU_BO_LOW, 0, 0); +} + +/* High 32-bits of offset */ +static __inline__ int +OUT_RELOCh(struct nouveau_channel *chan, struct nouveau_bo *bo, + unsigned delta, unsigned flags) +{ + return OUT_RELOC(chan, bo, delta, flags | NOUVEAU_BO_HIGH, 0, 0); +} + +#endif diff -Nru libdrm-2.4.52/nouveau/nouveau_reloc.c libdrm-2.4.52+really2.4.21/nouveau/nouveau_reloc.c --- libdrm-2.4.52/nouveau/nouveau_reloc.c 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_reloc.c 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,138 @@ +/* + * Copyright 2010 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include +#include +#include + +#include "nouveau_private.h" + +static uint32_t +nouveau_reloc_calc(struct drm_nouveau_gem_pushbuf_bo *pbbo, + struct drm_nouveau_gem_pushbuf_reloc *r) +{ + uint32_t push = 0; + + if (r->flags & NOUVEAU_GEM_RELOC_LOW) + push = (pbbo->presumed.offset + r->data); + else + if (r->flags & NOUVEAU_GEM_RELOC_HIGH) + push = (pbbo->presumed.offset + r->data) >> 32; + else + push = r->data; + + if (r->flags & NOUVEAU_GEM_RELOC_OR) { + if (pbbo->presumed.domain & NOUVEAU_GEM_DOMAIN_VRAM) + push |= r->vor; + else + push |= r->tor; + } + + return push; +} + +int +nouveau_reloc_emit(struct nouveau_channel *chan, struct nouveau_bo *reloc_bo, + uint32_t reloc_offset, uint32_t *reloc_ptr, + struct nouveau_bo *bo, uint32_t data, uint32_t data2, + uint32_t flags, uint32_t vor, uint32_t tor) +{ + struct nouveau_pushbuf_priv *nvpb = &nouveau_channel(chan)->pb; + struct nouveau_bo_priv *nvbo = nouveau_bo(bo); + struct drm_nouveau_gem_pushbuf_reloc *r; + struct drm_nouveau_gem_pushbuf_bo *pbbo, *rpbbo; + uint32_t domains = 0; + + if (nvpb->nr_relocs >= NOUVEAU_GEM_MAX_RELOCS) { + fprintf(stderr, "too many relocs!!\n"); + return -ENOMEM; + } + + if (nvbo->user && (flags & NOUVEAU_BO_WR)) { + fprintf(stderr, "write to user buffer!!\n"); + return -EINVAL; + } + + /* We're about to reloc a user buffer, better make sure we don't cause + * a double migration. + */ + if (!(nvbo->flags & (NOUVEAU_BO_GART | NOUVEAU_BO_VRAM))) + nvbo->flags |= (flags & (NOUVEAU_BO_GART | NOUVEAU_BO_VRAM)); + + rpbbo = nouveau_bo_emit_buffer(chan, reloc_bo); + if (!rpbbo) + return -ENOMEM; + nouveau_bo(reloc_bo)->pending_refcnt++; + + pbbo = nouveau_bo_emit_buffer(chan, bo); + if (!pbbo) { + fprintf(stderr, "buffer emit fail :(\n"); + return -ENOMEM; + } + nouveau_bo(bo)->pending_refcnt++; + + if (flags & NOUVEAU_BO_VRAM) + domains |= NOUVEAU_GEM_DOMAIN_VRAM; + if (flags & NOUVEAU_BO_GART) + domains |= NOUVEAU_GEM_DOMAIN_GART; + + if (!(pbbo->valid_domains & domains)) { + fprintf(stderr, "no valid domains remain!\n"); + return -EINVAL; + } + pbbo->valid_domains &= domains; + + assert(flags & NOUVEAU_BO_RDWR); + if (flags & NOUVEAU_BO_RD) { + pbbo->read_domains |= domains; + } + if (flags & NOUVEAU_BO_WR) { + pbbo->write_domains |= domains; + nvbo->write_marker = 1; + } + + r = nvpb->relocs + nvpb->nr_relocs++; + r->reloc_bo_index = rpbbo - nvpb->buffers; + r->reloc_bo_offset = reloc_offset; + r->bo_index = pbbo - nvpb->buffers; + r->flags = 0; + if (flags & NOUVEAU_BO_LOW) + r->flags |= NOUVEAU_GEM_RELOC_LOW; + if (flags & NOUVEAU_BO_HIGH) + r->flags |= NOUVEAU_GEM_RELOC_HIGH; + if (flags & NOUVEAU_BO_OR) + r->flags |= NOUVEAU_GEM_RELOC_OR; + r->data = data; + r->vor = vor; + r->tor = tor; + + if (reloc_ptr) { + if (flags & NOUVEAU_BO_DUMMY) + *reloc_ptr = 0; + else + *reloc_ptr = nouveau_reloc_calc(pbbo, r); + } + + return 0; +} + diff -Nru libdrm-2.4.52/nouveau/nouveau_reloc.h libdrm-2.4.52+really2.4.21/nouveau/nouveau_reloc.h --- libdrm-2.4.52/nouveau/nouveau_reloc.h 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_reloc.h 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,32 @@ +/* + * Copyright 2010 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __NOUVEAU_RELOC_H__ +#define __NOUVEAU_RELOC_H__ + +int +nouveau_reloc_emit(struct nouveau_channel *chan, struct nouveau_bo *reloc_bo, + uint32_t reloc_offset, uint32_t *reloc_ptr, + struct nouveau_bo *bo, uint32_t data, uint32_t data2, + uint32_t flags, uint32_t vor, uint32_t tor); + +#endif diff -Nru libdrm-2.4.52/nouveau/nouveau_resource.c libdrm-2.4.52+really2.4.21/nouveau/nouveau_resource.c --- libdrm-2.4.52/nouveau/nouveau_resource.c 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_resource.c 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,124 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include + +#include "nouveau_private.h" + +int +nouveau_resource_init(struct nouveau_resource **heap, + unsigned start, unsigned size) +{ + struct nouveau_resource *r; + + r = calloc(1, sizeof(struct nouveau_resource)); + if (!r) + return 1; + + r->start = start; + r->size = size; + *heap = r; + return 0; +} + +void +nouveau_resource_destroy(struct nouveau_resource **heap) +{ + if (!*heap) + return; + free(*heap); + *heap = NULL; +} + +int +nouveau_resource_alloc(struct nouveau_resource *heap, unsigned size, void *priv, + struct nouveau_resource **res) +{ + struct nouveau_resource *r; + + if (!heap || !size || !res || *res) + return 1; + + while (heap) { + if (!heap->in_use && heap->size >= size) { + r = calloc(1, sizeof(struct nouveau_resource)); + if (!r) + return 1; + + r->start = (heap->start + heap->size) - size; + r->size = size; + r->in_use = 1; + r->priv = priv; + + heap->size -= size; + + r->next = heap->next; + if (heap->next) + heap->next->prev = r; + r->prev = heap; + heap->next = r; + + *res = r; + return 0; + } + + heap = heap->next; + } + + return 1; +} + +void +nouveau_resource_free(struct nouveau_resource **res) +{ + struct nouveau_resource *r; + + if (!res || !*res) + return; + r = *res; + *res = NULL; + + r->in_use = 0; + + if (r->next && !r->next->in_use) { + struct nouveau_resource *new = r->next; + + new->prev = r->prev; + if (r->prev) + r->prev->next = new; + new->size += r->size; + new->start = r->start; + + free(r); + r = new; + } + + if (r->prev && !r->prev->in_use) { + r->prev->next = r->next; + if (r->next) + r->next->prev = r->prev; + r->prev->size += r->size; + free(r); + } + +} diff -Nru libdrm-2.4.52/nouveau/nouveau_resource.h libdrm-2.4.52+really2.4.21/nouveau/nouveau_resource.h --- libdrm-2.4.52/nouveau/nouveau_resource.h 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/nouveau_resource.h 2010-06-07 01:11:45.000000000 +0000 @@ -0,0 +1,51 @@ +/* + * Copyright 2007 Nouveau Project + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __NOUVEAU_RESOURCE_H__ +#define __NOUVEAU_RESOURCE_H__ + +struct nouveau_resource { + struct nouveau_resource *prev; + struct nouveau_resource *next; + + int in_use; + void *priv; + + unsigned int start; + unsigned int size; +}; + +int +nouveau_resource_init(struct nouveau_resource **heap, unsigned start, + unsigned size); + +void +nouveau_resource_destroy(struct nouveau_resource **heap); + +int +nouveau_resource_alloc(struct nouveau_resource *heap, unsigned size, void *priv, + struct nouveau_resource **); + +void +nouveau_resource_free(struct nouveau_resource **); + +#endif diff -Nru libdrm-2.4.52/nouveau/private.h libdrm-2.4.52+really2.4.21/nouveau/private.h --- libdrm-2.4.52/nouveau/private.h 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/private.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,124 +0,0 @@ -#ifndef __NOUVEAU_LIBDRM_PRIVATE_H__ -#define __NOUVEAU_LIBDRM_PRIVATE_H__ - -#include -#include -#include "nouveau_drm.h" - -#include "nouveau.h" - -#ifdef DEBUG -uint32_t nouveau_debug; -#define dbg_on(lvl) (nouveau_debug & (1 << lvl)) -#define dbg(lvl, fmt, args...) do { \ - if (dbg_on((lvl))) \ - fprintf(stderr, "nouveau: "fmt, ##args); \ -} while(0) -#else -#define dbg_on(lvl) (0) -#define dbg(lvl, fmt, args...) -#endif -#define err(fmt, args...) fprintf(stderr, "nouveau: "fmt, ##args) - -struct nouveau_client_kref { - struct drm_nouveau_gem_pushbuf_bo *kref; - struct nouveau_pushbuf *push; -}; - -struct nouveau_client_priv { - struct nouveau_client base; - struct nouveau_client_kref *kref; - unsigned kref_nr; -}; - -static inline struct nouveau_client_priv * -nouveau_client(struct nouveau_client *client) -{ - return (struct nouveau_client_priv *)client; -} - -static inline struct drm_nouveau_gem_pushbuf_bo * -cli_kref_get(struct nouveau_client *client, struct nouveau_bo *bo) -{ - struct nouveau_client_priv *pcli = nouveau_client(client); - struct drm_nouveau_gem_pushbuf_bo *kref = NULL; - if (pcli->kref_nr > bo->handle) - kref = pcli->kref[bo->handle].kref; - return kref; -} - -static inline struct nouveau_pushbuf * -cli_push_get(struct nouveau_client *client, struct nouveau_bo *bo) -{ - struct nouveau_client_priv *pcli = nouveau_client(client); - struct nouveau_pushbuf *push = NULL; - if (pcli->kref_nr > bo->handle) - push = pcli->kref[bo->handle].push; - return push; -} - -static inline void -cli_kref_set(struct nouveau_client *client, struct nouveau_bo *bo, - struct drm_nouveau_gem_pushbuf_bo *kref, - struct nouveau_pushbuf *push) -{ - struct nouveau_client_priv *pcli = nouveau_client(client); - if (pcli->kref_nr <= bo->handle) { - pcli->kref = realloc(pcli->kref, - sizeof(*pcli->kref) * bo->handle * 2); - while (pcli->kref_nr < bo->handle * 2) { - pcli->kref[pcli->kref_nr].kref = NULL; - pcli->kref[pcli->kref_nr].push = NULL; - pcli->kref_nr++; - } - } - pcli->kref[bo->handle].kref = kref; - pcli->kref[bo->handle].push = push; -} - -struct nouveau_bo_priv { - struct nouveau_bo base; - struct nouveau_list head; - atomic_t refcnt; - uint64_t map_handle; - uint32_t name; - uint32_t access; -}; - -static inline struct nouveau_bo_priv * -nouveau_bo(struct nouveau_bo *bo) -{ - return (struct nouveau_bo_priv *)bo; -} - -struct nouveau_device_priv { - struct nouveau_device base; - int close; - atomic_t lock; - struct nouveau_list bo_list; - uint32_t *client; - int nr_client; - bool have_bo_usage; - int gart_limit_percent, vram_limit_percent; -}; - -static inline struct nouveau_device_priv * -nouveau_device(struct nouveau_device *dev) -{ - return (struct nouveau_device_priv *)dev; -} - -int -nouveau_device_open_existing(struct nouveau_device **, int, int, drm_context_t); - -/* abi16.c */ -int abi16_chan_nv04(struct nouveau_object *); -int abi16_chan_nvc0(struct nouveau_object *); -int abi16_chan_nve0(struct nouveau_object *); -int abi16_engobj(struct nouveau_object *); -int abi16_ntfy(struct nouveau_object *); -void abi16_bo_info(struct nouveau_bo *, struct drm_nouveau_gem_info *); -int abi16_bo_init(struct nouveau_bo *, uint32_t alignment, - union nouveau_bo_config *); - -#endif diff -Nru libdrm-2.4.52/nouveau/pushbuf.c libdrm-2.4.52+really2.4.21/nouveau/pushbuf.c --- libdrm-2.4.52/nouveau/pushbuf.c 2013-11-08 04:29:59.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/nouveau/pushbuf.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,776 +0,0 @@ -/* - * Copyright 2012 Red Hat Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: Ben Skeggs - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include "libdrm_lists.h" -#include "nouveau_drm.h" - -#include "nouveau.h" -#include "private.h" - -struct nouveau_pushbuf_krec { - struct nouveau_pushbuf_krec *next; - struct drm_nouveau_gem_pushbuf_bo buffer[NOUVEAU_GEM_MAX_BUFFERS]; - struct drm_nouveau_gem_pushbuf_reloc reloc[NOUVEAU_GEM_MAX_RELOCS]; - struct drm_nouveau_gem_pushbuf_push push[NOUVEAU_GEM_MAX_PUSH]; - int nr_buffer; - int nr_reloc; - int nr_push; - uint64_t vram_used; - uint64_t gart_used; -}; - -struct nouveau_pushbuf_priv { - struct nouveau_pushbuf base; - struct nouveau_pushbuf_krec *list; - struct nouveau_pushbuf_krec *krec; - struct nouveau_list bctx_list; - struct nouveau_bo *bo; - uint32_t type; - uint32_t suffix0; - uint32_t suffix1; - uint32_t *ptr; - uint32_t *bgn; - int bo_next; - int bo_nr; - struct nouveau_bo *bos[]; -}; - -static inline struct nouveau_pushbuf_priv * -nouveau_pushbuf(struct nouveau_pushbuf *push) -{ - return (struct nouveau_pushbuf_priv *)push; -} - -static int pushbuf_validate(struct nouveau_pushbuf *, bool); -static int pushbuf_flush(struct nouveau_pushbuf *); - -static bool -pushbuf_kref_fits(struct nouveau_pushbuf *push, struct nouveau_bo *bo, - uint32_t *domains) -{ - struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(push); - struct nouveau_pushbuf_krec *krec = nvpb->krec; - struct nouveau_device *dev = push->client->device; - struct nouveau_bo *kbo; - struct drm_nouveau_gem_pushbuf_bo *kref; - int i; - - /* VRAM is the only valid domain. GART and VRAM|GART buffers - * are all accounted to GART, so if this doesn't fit in VRAM - * straight up, a flush is needed. - */ - if (*domains == NOUVEAU_GEM_DOMAIN_VRAM) { - if (krec->vram_used + bo->size > dev->vram_limit) - return false; - krec->vram_used += bo->size; - return true; - } - - /* GART or VRAM|GART buffer. Account both of these buffer types - * to GART only for the moment, which simplifies things. If the - * buffer can fit already, we're done here. - */ - if (krec->gart_used + bo->size <= dev->gart_limit) { - krec->gart_used += bo->size; - return true; - } - - /* Ran out of GART space, if it's a VRAM|GART buffer and it'll - * fit into available VRAM, turn it into a VRAM buffer - */ - if ((*domains & NOUVEAU_GEM_DOMAIN_VRAM) && - krec->vram_used + bo->size <= dev->vram_limit) { - *domains &= NOUVEAU_GEM_DOMAIN_VRAM; - krec->vram_used += bo->size; - return true; - } - - /* Still couldn't fit the buffer in anywhere, so as a last resort; - * scan the buffer list for VRAM|GART buffers and turn them into - * VRAM buffers until we have enough space in GART for this one - */ - kref = krec->buffer; - for (i = 0; i < krec->nr_buffer; i++, kref++) { - if (!(kref->valid_domains & NOUVEAU_GEM_DOMAIN_GART)) - continue; - - kbo = (void *)(unsigned long)kref->user_priv; - if (!(kref->valid_domains & NOUVEAU_GEM_DOMAIN_VRAM) || - krec->vram_used + kbo->size > dev->vram_limit) - continue; - - kref->valid_domains &= NOUVEAU_GEM_DOMAIN_VRAM; - krec->gart_used -= kbo->size; - krec->vram_used += kbo->size; - if (krec->gart_used + bo->size <= dev->gart_limit) { - krec->gart_used += bo->size; - return true; - } - } - - /* Couldn't resolve a placement, need to force a flush */ - return false; -} - -static struct drm_nouveau_gem_pushbuf_bo * -pushbuf_kref(struct nouveau_pushbuf *push, struct nouveau_bo *bo, - uint32_t flags) -{ - struct nouveau_device *dev = push->client->device; - struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(push); - struct nouveau_pushbuf_krec *krec = nvpb->krec; - struct nouveau_pushbuf *fpush; - struct drm_nouveau_gem_pushbuf_bo *kref; - uint32_t domains, domains_wr, domains_rd; - - domains = 0; - if (flags & NOUVEAU_BO_VRAM) - domains |= NOUVEAU_GEM_DOMAIN_VRAM; - if (flags & NOUVEAU_BO_GART) - domains |= NOUVEAU_GEM_DOMAIN_GART; - domains_wr = domains * !!(flags & NOUVEAU_BO_WR); - domains_rd = domains * !!(flags & NOUVEAU_BO_RD); - - /* if buffer is referenced on another pushbuf that is owned by the - * same client, we need to flush the other pushbuf first to ensure - * the correct ordering of commands - */ - fpush = cli_push_get(push->client, bo); - if (fpush && fpush != push) - pushbuf_flush(fpush); - - kref = cli_kref_get(push->client, bo); - if (kref) { - /* possible conflict in memory types - flush and retry */ - if (!(kref->valid_domains & domains)) - return NULL; - - /* VRAM|GART buffer turning into a VRAM buffer. Make sure - * it'll fit in VRAM and force a flush if not. - */ - if ((kref->valid_domains & NOUVEAU_GEM_DOMAIN_GART) && - ( domains == NOUVEAU_GEM_DOMAIN_VRAM)) { - if (krec->vram_used + bo->size > dev->vram_limit) - return NULL; - krec->vram_used += bo->size; - krec->gart_used -= bo->size; - } - - kref->valid_domains &= domains; - kref->write_domains |= domains_wr; - kref->read_domains |= domains_rd; - } else { - if (krec->nr_buffer == NOUVEAU_GEM_MAX_BUFFERS || - !pushbuf_kref_fits(push, bo, &domains)) - return NULL; - - kref = &krec->buffer[krec->nr_buffer++]; - kref->user_priv = (unsigned long)bo; - kref->handle = bo->handle; - kref->valid_domains = domains; - kref->write_domains = domains_wr; - kref->read_domains = domains_rd; - kref->presumed.valid = 1; - kref->presumed.offset = bo->offset; - if (bo->flags & NOUVEAU_BO_VRAM) - kref->presumed.domain = NOUVEAU_GEM_DOMAIN_VRAM; - else - kref->presumed.domain = NOUVEAU_GEM_DOMAIN_GART; - - cli_kref_set(push->client, bo, kref, push); - atomic_inc(&nouveau_bo(bo)->refcnt); - } - - return kref; -} - -static uint32_t -pushbuf_krel(struct nouveau_pushbuf *push, struct nouveau_bo *bo, - uint32_t data, uint32_t flags, uint32_t vor, uint32_t tor) -{ - struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(push); - struct nouveau_pushbuf_krec *krec = nvpb->krec; - struct drm_nouveau_gem_pushbuf_reloc *krel; - struct drm_nouveau_gem_pushbuf_bo *pkref; - struct drm_nouveau_gem_pushbuf_bo *bkref; - uint32_t reloc = data; - - pkref = cli_kref_get(push->client, nvpb->bo); - bkref = cli_kref_get(push->client, bo); - krel = &krec->reloc[krec->nr_reloc++]; - - krel->reloc_bo_index = pkref - krec->buffer; - krel->reloc_bo_offset = (push->cur - nvpb->ptr) * 4; - krel->bo_index = bkref - krec->buffer; - krel->flags = 0; - krel->data = data; - krel->vor = vor; - krel->tor = tor; - - if (flags & NOUVEAU_BO_LOW) { - reloc = (bkref->presumed.offset + data); - krel->flags |= NOUVEAU_GEM_RELOC_LOW; - } else - if (flags & NOUVEAU_BO_HIGH) { - reloc = (bkref->presumed.offset + data) >> 32; - krel->flags |= NOUVEAU_GEM_RELOC_HIGH; - } - if (flags & NOUVEAU_BO_OR) { - if (bkref->presumed.domain & NOUVEAU_GEM_DOMAIN_VRAM) - reloc |= vor; - else - reloc |= tor; - krel->flags |= NOUVEAU_GEM_RELOC_OR; - } - - return reloc; -} - -static void -pushbuf_dump(struct nouveau_pushbuf_krec *krec, int krec_id, int chid) -{ - struct drm_nouveau_gem_pushbuf_reloc *krel; - struct drm_nouveau_gem_pushbuf_push *kpsh; - struct drm_nouveau_gem_pushbuf_bo *kref; - struct nouveau_bo *bo; - uint32_t *bgn, *end; - int i; - - err("ch%d: krec %d pushes %d bufs %d relocs %d\n", chid, - krec_id, krec->nr_push, krec->nr_buffer, krec->nr_reloc); - - kref = krec->buffer; - for (i = 0; i < krec->nr_buffer; i++, kref++) { - err("ch%d: buf %08x %08x %08x %08x %08x\n", chid, i, - kref->handle, kref->valid_domains, - kref->read_domains, kref->write_domains); - } - - krel = krec->reloc; - for (i = 0; i < krec->nr_reloc; i++, krel++) { - err("ch%d: rel %08x %08x %08x %08x %08x %08x %08x\n", - chid, krel->reloc_bo_index, krel->reloc_bo_offset, - krel->bo_index, krel->flags, krel->data, - krel->vor, krel->tor); - } - - kpsh = krec->push; - for (i = 0; i < krec->nr_push; i++, kpsh++) { - kref = krec->buffer + kpsh->bo_index; - bo = (void *)(unsigned long)kref->user_priv; - bgn = (uint32_t *)((char *)bo->map + kpsh->offset); - end = bgn + (kpsh->length /4); - - err("ch%d: psh %08x %010llx %010llx\n", chid, kpsh->bo_index, - (unsigned long long)kpsh->offset, - (unsigned long long)(kpsh->offset + kpsh->length)); - while (bgn < end) - err("\t0x%08x\n", *bgn++); - } -} - -static int -pushbuf_submit(struct nouveau_pushbuf *push, struct nouveau_object *chan) -{ - struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(push); - struct nouveau_pushbuf_krec *krec = nvpb->list; - struct nouveau_device *dev = push->client->device; - struct drm_nouveau_gem_pushbuf_bo_presumed *info; - struct drm_nouveau_gem_pushbuf_bo *kref; - struct drm_nouveau_gem_pushbuf req; - struct nouveau_fifo *fifo = chan->data; - struct nouveau_bo *bo; - int krec_id = 0; - int ret = 0, i; - - if (chan->oclass != NOUVEAU_FIFO_CHANNEL_CLASS) - return -EINVAL; - - if (push->kick_notify) - push->kick_notify(push); - - nouveau_pushbuf_data(push, NULL, 0, 0); - - while (krec && krec->nr_push) { - req.channel = fifo->channel; - req.nr_buffers = krec->nr_buffer; - req.buffers = (uint64_t)(unsigned long)krec->buffer; - req.nr_relocs = krec->nr_reloc; - req.nr_push = krec->nr_push; - req.relocs = (uint64_t)(unsigned long)krec->reloc; - req.push = (uint64_t)(unsigned long)krec->push; - req.suffix0 = nvpb->suffix0; - req.suffix1 = nvpb->suffix1; - req.vram_available = 0; /* for valgrind */ - req.gart_available = 0; - - if (dbg_on(0)) - pushbuf_dump(krec, krec_id++, fifo->channel); - -#ifndef SIMULATE - ret = drmCommandWriteRead(dev->fd, DRM_NOUVEAU_GEM_PUSHBUF, - &req, sizeof(req)); - nvpb->suffix0 = req.suffix0; - nvpb->suffix1 = req.suffix1; - dev->vram_limit = (req.vram_available * - nouveau_device(dev)->vram_limit_percent) / 100; - dev->gart_limit = (req.gart_available * - nouveau_device(dev)->gart_limit_percent) / 100; -#else - if (dbg_on(31)) - ret = -EINVAL; -#endif - - if (ret) { - err("kernel rejected pushbuf: %s\n", strerror(-ret)); - pushbuf_dump(krec, krec_id++, fifo->channel); - break; - } - - kref = krec->buffer; - for (i = 0; i < krec->nr_buffer; i++, kref++) { - bo = (void *)(unsigned long)kref->user_priv; - - info = &kref->presumed; - if (!info->valid) { - bo->flags &= ~NOUVEAU_BO_APER; - if (info->domain == NOUVEAU_GEM_DOMAIN_VRAM) - bo->flags |= NOUVEAU_BO_VRAM; - else - bo->flags |= NOUVEAU_BO_GART; - bo->offset = info->offset; - } - - if (kref->write_domains) - nouveau_bo(bo)->access |= NOUVEAU_BO_WR; - if (kref->read_domains) - nouveau_bo(bo)->access |= NOUVEAU_BO_RD; - } - - krec = krec->next; - } - - return ret; -} - -static int -pushbuf_flush(struct nouveau_pushbuf *push) -{ - struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(push); - struct nouveau_pushbuf_krec *krec = nvpb->krec; - struct drm_nouveau_gem_pushbuf_bo *kref; - struct nouveau_bufctx *bctx, *btmp; - struct nouveau_bo *bo; - int ret = 0, i; - - if (push->channel) { - ret = pushbuf_submit(push, push->channel); - } else { - nouveau_pushbuf_data(push, NULL, 0, 0); - krec->next = malloc(sizeof(*krec)); - nvpb->krec = krec->next; - } - - kref = krec->buffer; - for (i = 0; i < krec->nr_buffer; i++, kref++) { - bo = (void *)(unsigned long)kref->user_priv; - cli_kref_set(push->client, bo, NULL, NULL); - if (push->channel) - nouveau_bo_ref(NULL, &bo); - } - - krec = nvpb->krec; - krec->vram_used = 0; - krec->gart_used = 0; - krec->nr_buffer = 0; - krec->nr_reloc = 0; - krec->nr_push = 0; - - DRMLISTFOREACHENTRYSAFE(bctx, btmp, &nvpb->bctx_list, head) { - DRMLISTJOIN(&bctx->current, &bctx->pending); - DRMINITLISTHEAD(&bctx->current); - DRMLISTDELINIT(&bctx->head); - } - - return ret; -} - -static void -pushbuf_refn_fail(struct nouveau_pushbuf *push, int sref, int srel) -{ - struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(push); - struct nouveau_pushbuf_krec *krec = nvpb->krec; - struct drm_nouveau_gem_pushbuf_bo *kref; - - kref = krec->buffer + sref; - while (krec->nr_buffer-- > sref) { - struct nouveau_bo *bo = (void *)(unsigned long)kref->user_priv; - cli_kref_set(push->client, bo, NULL, NULL); - nouveau_bo_ref(NULL, &bo); - kref++; - } - krec->nr_buffer = sref; - krec->nr_reloc = srel; -} - -static int -pushbuf_refn(struct nouveau_pushbuf *push, bool retry, - struct nouveau_pushbuf_refn *refs, int nr) -{ - struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(push); - struct nouveau_pushbuf_krec *krec = nvpb->krec; - struct drm_nouveau_gem_pushbuf_bo *kref; - int sref = krec->nr_buffer; - int ret = 0, i; - - for (i = 0; i < nr; i++) { - kref = pushbuf_kref(push, refs[i].bo, refs[i].flags); - if (!kref) { - ret = -ENOSPC; - break; - } - } - - if (ret) { - pushbuf_refn_fail(push, sref, krec->nr_reloc); - if (retry) { - pushbuf_flush(push); - nouveau_pushbuf_space(push, 0, 0, 0); - return pushbuf_refn(push, false, refs, nr); - } - } - - return ret; -} - -static int -pushbuf_validate(struct nouveau_pushbuf *push, bool retry) -{ - struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(push); - struct nouveau_pushbuf_krec *krec = nvpb->krec; - struct drm_nouveau_gem_pushbuf_bo *kref; - struct nouveau_bufctx *bctx = push->bufctx; - struct nouveau_bufref *bref; - int relocs = bctx ? bctx->relocs * 2: 0; - int sref, srel, ret; - - ret = nouveau_pushbuf_space(push, relocs, relocs, 0); - if (ret || bctx == NULL) - return ret; - - sref = krec->nr_buffer; - srel = krec->nr_reloc; - - DRMLISTDEL(&bctx->head); - DRMLISTADD(&bctx->head, &nvpb->bctx_list); - - DRMLISTFOREACHENTRY(bref, &bctx->pending, thead) { - kref = pushbuf_kref(push, bref->bo, bref->flags); - if (!kref) { - ret = -ENOSPC; - break; - } - - if (bref->packet) { - pushbuf_krel(push, bref->bo, bref->packet, 0, 0, 0); - *push->cur++ = 0; - pushbuf_krel(push, bref->bo, bref->data, bref->flags, - bref->vor, bref->tor); - *push->cur++ = 0; - } - } - - DRMLISTJOIN(&bctx->pending, &bctx->current); - DRMINITLISTHEAD(&bctx->pending); - - if (ret) { - pushbuf_refn_fail(push, sref, srel); - if (retry) { - pushbuf_flush(push); - return pushbuf_validate(push, false); - } - } - - return ret; -} - -int -nouveau_pushbuf_new(struct nouveau_client *client, struct nouveau_object *chan, - int nr, uint32_t size, bool immediate, - struct nouveau_pushbuf **ppush) -{ - struct nouveau_device *dev = client->device; - struct nouveau_fifo *fifo = chan->data; - struct nouveau_pushbuf_priv *nvpb; - struct nouveau_pushbuf *push; - struct drm_nouveau_gem_pushbuf req = {}; - int ret; - - if (chan->oclass != NOUVEAU_FIFO_CHANNEL_CLASS) - return -EINVAL; - - /* nop pushbuf call, to get the current "return to main" sequence - * we need to append to the pushbuf on early chipsets - */ - req.channel = fifo->channel; - req.nr_push = 0; - ret = drmCommandWriteRead(dev->fd, DRM_NOUVEAU_GEM_PUSHBUF, - &req, sizeof(req)); - if (ret) - return ret; - - nvpb = calloc(1, sizeof(*nvpb) + nr * sizeof(*nvpb->bos)); - if (!nvpb) - return -ENOMEM; - -#ifndef SIMULATE - nvpb->suffix0 = req.suffix0; - nvpb->suffix1 = req.suffix1; -#else - nvpb->suffix0 = 0xffffffff; - nvpb->suffix1 = 0xffffffff; -#endif - nvpb->krec = calloc(1, sizeof(*nvpb->krec)); - nvpb->list = nvpb->krec; - if (!nvpb->krec) { - free(nvpb); - return -ENOMEM; - } - - push = &nvpb->base; - push->client = client; - push->channel = immediate ? chan : NULL; - push->flags = NOUVEAU_BO_RD; - if (fifo->pushbuf & NOUVEAU_GEM_DOMAIN_GART) { - push->flags |= NOUVEAU_BO_GART; - nvpb->type = NOUVEAU_BO_GART; - } else - if (fifo->pushbuf & NOUVEAU_GEM_DOMAIN_VRAM) { - push->flags |= NOUVEAU_BO_VRAM; - nvpb->type = NOUVEAU_BO_VRAM; - } - nvpb->type |= NOUVEAU_BO_MAP; - - for (nvpb->bo_nr = 0; nvpb->bo_nr < nr; nvpb->bo_nr++) { - ret = nouveau_bo_new(client->device, nvpb->type, 0, size, - NULL, &nvpb->bos[nvpb->bo_nr]); - if (ret) { - nouveau_pushbuf_del(&push); - return ret; - } - } - - DRMINITLISTHEAD(&nvpb->bctx_list); - *ppush = push; - return 0; -} - -void -nouveau_pushbuf_del(struct nouveau_pushbuf **ppush) -{ - struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(*ppush); - if (nvpb) { - struct drm_nouveau_gem_pushbuf_bo *kref; - struct nouveau_pushbuf_krec *krec; - while ((krec = nvpb->list)) { - kref = krec->buffer; - while (krec->nr_buffer--) { - unsigned long priv = kref++->user_priv; - struct nouveau_bo *bo = (void *)priv; - cli_kref_set(nvpb->base.client, bo, NULL, NULL); - nouveau_bo_ref(NULL, &bo); - } - nvpb->list = krec->next; - free(krec); - } - while (nvpb->bo_nr--) - nouveau_bo_ref(NULL, &nvpb->bos[nvpb->bo_nr]); - nouveau_bo_ref(NULL, &nvpb->bo); - free(nvpb); - } - *ppush = NULL; -} - -struct nouveau_bufctx * -nouveau_pushbuf_bufctx(struct nouveau_pushbuf *push, struct nouveau_bufctx *ctx) -{ - struct nouveau_bufctx *prev = push->bufctx; - push->bufctx = ctx; - return prev; -} - -int -nouveau_pushbuf_space(struct nouveau_pushbuf *push, - uint32_t dwords, uint32_t relocs, uint32_t pushes) -{ - struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(push); - struct nouveau_pushbuf_krec *krec = nvpb->krec; - struct nouveau_client *client = push->client; - struct nouveau_bo *bo = NULL; - bool flushed = false; - int ret = 0; - - /* switch to next buffer if insufficient space in the current one */ - if (push->cur + dwords >= push->end) { - if (nvpb->bo_next < nvpb->bo_nr) { - nouveau_bo_ref(nvpb->bos[nvpb->bo_next++], &bo); - if (nvpb->bo_next == nvpb->bo_nr && push->channel) - nvpb->bo_next = 0; - } else { - ret = nouveau_bo_new(client->device, nvpb->type, 0, - nvpb->bos[0]->size, NULL, &bo); - if (ret) - return ret; - } - } - - /* make sure there's always enough space to queue up the pending - * data in the pushbuf proper - */ - pushes++; - - /* need to flush if we've run out of space on an immediate pushbuf, - * if the new buffer won't fit, or if the kernel push/reloc limits - * have been hit - */ - if ((bo && ( push->channel || - !pushbuf_kref(push, bo, push->flags))) || - krec->nr_reloc + relocs >= NOUVEAU_GEM_MAX_RELOCS || - krec->nr_push + pushes >= NOUVEAU_GEM_MAX_PUSH) { - if (nvpb->bo && krec->nr_buffer) - pushbuf_flush(push); - flushed = true; - } - - /* if necessary, switch to new buffer */ - if (bo) { - ret = nouveau_bo_map(bo, NOUVEAU_BO_WR, push->client); - if (ret) - return ret; - - nouveau_pushbuf_data(push, NULL, 0, 0); - nouveau_bo_ref(bo, &nvpb->bo); - nouveau_bo_ref(NULL, &bo); - - nvpb->bgn = nvpb->bo->map; - nvpb->ptr = nvpb->bgn; - push->cur = nvpb->bgn; - push->end = push->cur + (nvpb->bo->size / 4); - push->end -= 2 + push->rsvd_kick; /* space for suffix */ - } - - pushbuf_kref(push, nvpb->bo, push->flags); - return flushed ? pushbuf_validate(push, false) : 0; -} - -void -nouveau_pushbuf_data(struct nouveau_pushbuf *push, struct nouveau_bo *bo, - uint64_t offset, uint64_t length) -{ - struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(push); - struct nouveau_pushbuf_krec *krec = nvpb->krec; - struct drm_nouveau_gem_pushbuf_push *kpsh; - struct drm_nouveau_gem_pushbuf_bo *kref; - - if (bo != nvpb->bo && nvpb->bgn != push->cur) { - if (nvpb->suffix0 || nvpb->suffix1) { - *push->cur++ = nvpb->suffix0; - *push->cur++ = nvpb->suffix1; - } - - nouveau_pushbuf_data(push, nvpb->bo, - (nvpb->bgn - nvpb->ptr) * 4, - (push->cur - nvpb->bgn) * 4); - nvpb->bgn = push->cur; - } - - if (bo) { - kref = cli_kref_get(push->client, bo); - kpsh = &krec->push[krec->nr_push++]; - kpsh->bo_index = kref - krec->buffer; - kpsh->offset = offset; - kpsh->length = length; - } -} - -int -nouveau_pushbuf_refn(struct nouveau_pushbuf *push, - struct nouveau_pushbuf_refn *refs, int nr) -{ - return pushbuf_refn(push, true, refs, nr); -} - -void -nouveau_pushbuf_reloc(struct nouveau_pushbuf *push, struct nouveau_bo *bo, - uint32_t data, uint32_t flags, uint32_t vor, uint32_t tor) -{ - *push->cur = pushbuf_krel(push, bo, data, flags, vor, tor); - push->cur++; -} - -int -nouveau_pushbuf_validate(struct nouveau_pushbuf *push) -{ - return pushbuf_validate(push, true); -} - -uint32_t -nouveau_pushbuf_refd(struct nouveau_pushbuf *push, struct nouveau_bo *bo) -{ - struct drm_nouveau_gem_pushbuf_bo *kref; - uint32_t flags = 0; - - if (cli_push_get(push->client, bo) == push) { - kref = cli_kref_get(push->client, bo); - if (kref->read_domains) - flags |= NOUVEAU_BO_RD; - if (kref->write_domains) - flags |= NOUVEAU_BO_WR; - } - - return flags; -} - -int -nouveau_pushbuf_kick(struct nouveau_pushbuf *push, struct nouveau_object *chan) -{ - if (!push->channel) - return pushbuf_submit(push, chan); - pushbuf_flush(push); - return pushbuf_validate(push, false); -} diff -Nru libdrm-2.4.52/omap/libdrm_omap.pc.in libdrm-2.4.52+really2.4.21/omap/libdrm_omap.pc.in --- libdrm-2.4.52/omap/libdrm_omap.pc.in 2012-10-05 20:48:07.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/omap/libdrm_omap.pc.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: libdrm_omap -Description: Userspace interface to omap kernel DRM services -Version: 0.6 -Libs: -L${libdir} -ldrm_omap -Cflags: -I${includedir} -I${includedir}/libdrm -I${includedir}/omap -Requires.private: libdrm diff -Nru libdrm-2.4.52/omap/Makefile.am libdrm-2.4.52+really2.4.21/omap/Makefile.am --- libdrm-2.4.52/omap/Makefile.am 2012-10-05 20:48:07.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/omap/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -AM_CFLAGS = \ - $(WARN_CFLAGS) \ - -I$(top_srcdir) \ - -I$(top_srcdir)/omap \ - $(PTHREADSTUBS_CFLAGS) \ - -I$(top_srcdir)/include/drm - -libdrm_omap_la_LTLIBRARIES = libdrm_omap.la -libdrm_omap_ladir = $(libdir) -libdrm_omap_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libdrm_omap_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ - -libdrm_omap_la_SOURCES = omap_drm.c - -libdrm_omapcommonincludedir = ${includedir}/omap -libdrm_omapcommoninclude_HEADERS = omap_drm.h - -libdrm_omapincludedir = ${includedir}/libdrm -libdrm_omapinclude_HEADERS = omap_drmif.h - -pkgconfigdir = @pkgconfigdir@ -pkgconfig_DATA = libdrm_omap.pc diff -Nru libdrm-2.4.52/omap/Makefile.in libdrm-2.4.52+really2.4.21/omap/Makefile.in --- libdrm-2.4.52/omap/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/omap/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,749 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = omap -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/libdrm_omap.pc.in $(top_srcdir)/build-aux/depcomp \ - $(libdrm_omapcommoninclude_HEADERS) \ - $(libdrm_omapinclude_HEADERS) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = libdrm_omap.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdrm_omap_ladir)" \ - "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(libdrm_omapcommonincludedir)" \ - "$(DESTDIR)$(libdrm_omapincludedir)" -LTLIBRARIES = $(libdrm_omap_la_LTLIBRARIES) -libdrm_omap_la_DEPENDENCIES = ../libdrm.la -am_libdrm_omap_la_OBJECTS = omap_drm.lo -libdrm_omap_la_OBJECTS = $(am_libdrm_omap_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libdrm_omap_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(libdrm_omap_la_LDFLAGS) $(LDFLAGS) -o \ - $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libdrm_omap_la_SOURCES) -DIST_SOURCES = $(libdrm_omap_la_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(pkgconfig_DATA) -HEADERS = $(libdrm_omapcommoninclude_HEADERS) \ - $(libdrm_omapinclude_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = \ - $(WARN_CFLAGS) \ - -I$(top_srcdir) \ - -I$(top_srcdir)/omap \ - $(PTHREADSTUBS_CFLAGS) \ - -I$(top_srcdir)/include/drm - -libdrm_omap_la_LTLIBRARIES = libdrm_omap.la -libdrm_omap_ladir = $(libdir) -libdrm_omap_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libdrm_omap_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ -libdrm_omap_la_SOURCES = omap_drm.c -libdrm_omapcommonincludedir = ${includedir}/omap -libdrm_omapcommoninclude_HEADERS = omap_drm.h -libdrm_omapincludedir = ${includedir}/libdrm -libdrm_omapinclude_HEADERS = omap_drmif.h -pkgconfig_DATA = libdrm_omap.pc -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign omap/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign omap/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -libdrm_omap.pc: $(top_builddir)/config.status $(srcdir)/libdrm_omap.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-libdrm_omap_laLTLIBRARIES: $(libdrm_omap_la_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(libdrm_omap_la_LTLIBRARIES)'; test -n "$(libdrm_omap_ladir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_omap_ladir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_omap_ladir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdrm_omap_ladir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdrm_omap_ladir)"; \ - } - -uninstall-libdrm_omap_laLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_omap_la_LTLIBRARIES)'; test -n "$(libdrm_omap_ladir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdrm_omap_ladir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdrm_omap_ladir)/$$f"; \ - done - -clean-libdrm_omap_laLTLIBRARIES: - -test -z "$(libdrm_omap_la_LTLIBRARIES)" || rm -f $(libdrm_omap_la_LTLIBRARIES) - @list='$(libdrm_omap_la_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libdrm_omap.la: $(libdrm_omap_la_OBJECTS) $(libdrm_omap_la_DEPENDENCIES) $(EXTRA_libdrm_omap_la_DEPENDENCIES) - $(AM_V_CCLD)$(libdrm_omap_la_LINK) -rpath $(libdrm_omap_ladir) $(libdrm_omap_la_OBJECTS) $(libdrm_omap_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/omap_drm.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-libdrm_omapcommonincludeHEADERS: $(libdrm_omapcommoninclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(libdrm_omapcommoninclude_HEADERS)'; test -n "$(libdrm_omapcommonincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_omapcommonincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_omapcommonincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libdrm_omapcommonincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libdrm_omapcommonincludedir)" || exit $$?; \ - done - -uninstall-libdrm_omapcommonincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_omapcommoninclude_HEADERS)'; test -n "$(libdrm_omapcommonincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(libdrm_omapcommonincludedir)'; $(am__uninstall_files_from_dir) -install-libdrm_omapincludeHEADERS: $(libdrm_omapinclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(libdrm_omapinclude_HEADERS)'; test -n "$(libdrm_omapincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_omapincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_omapincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libdrm_omapincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libdrm_omapincludedir)" || exit $$?; \ - done - -uninstall-libdrm_omapincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_omapinclude_HEADERS)'; test -n "$(libdrm_omapincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(libdrm_omapincludedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libdrm_omap_ladir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libdrm_omapcommonincludedir)" "$(DESTDIR)$(libdrm_omapincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libdrm_omap_laLTLIBRARIES clean-libtool \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-libdrm_omap_laLTLIBRARIES \ - install-libdrm_omapcommonincludeHEADERS \ - install-libdrm_omapincludeHEADERS install-pkgconfigDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libdrm_omap_laLTLIBRARIES \ - uninstall-libdrm_omapcommonincludeHEADERS \ - uninstall-libdrm_omapincludeHEADERS uninstall-pkgconfigDATA - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libdrm_omap_laLTLIBRARIES clean-libtool cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-libdrm_omap_laLTLIBRARIES \ - install-libdrm_omapcommonincludeHEADERS \ - install-libdrm_omapincludeHEADERS install-man install-pdf \ - install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-libdrm_omap_laLTLIBRARIES \ - uninstall-libdrm_omapcommonincludeHEADERS \ - uninstall-libdrm_omapincludeHEADERS uninstall-pkgconfigDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/omap/omap_drm.c libdrm-2.4.52+really2.4.21/omap/omap_drm.c --- libdrm-2.4.52/omap/omap_drm.c 2013-03-29 17:56:50.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/omap/omap_drm.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,471 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2011 Texas Instruments, Inc - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "omap_drm.h" -#include "omap_drmif.h" - -#define __round_mask(x, y) ((__typeof__(x))((y)-1)) -#define round_up(x, y) ((((x)-1) | __round_mask(x, y))+1) -#define PAGE_SIZE 4096 - -static pthread_mutex_t table_lock = PTHREAD_MUTEX_INITIALIZER; -static void * dev_table; - -struct omap_device { - int fd; - atomic_t refcnt; - - /* The handle_table is used to track GEM bo handles associated w/ - * this fd. This is needed, in particular, when importing - * dmabuf's because we don't want multiple 'struct omap_bo's - * floating around with the same handle. Otherwise, when the - * first one is omap_bo_del()'d the handle becomes no longer - * valid, and the remaining 'struct omap_bo's are left pointing - * to an invalid handle (and possible a GEM bo that is already - * free'd). - */ - void *handle_table; -}; - -/* a GEM buffer object allocated from the DRM device */ -struct omap_bo { - struct omap_device *dev; - void *map; /* userspace mmap'ing (if there is one) */ - uint32_t size; - uint32_t handle; - uint32_t name; /* flink global handle (DRI2 name) */ - uint64_t offset; /* offset to mmap() */ - int fd; /* dmabuf handle */ - atomic_t refcnt; -}; - -static struct omap_device * omap_device_new_impl(int fd) -{ - struct omap_device *dev = calloc(sizeof(*dev), 1); - if (!dev) - return NULL; - dev->fd = fd; - atomic_set(&dev->refcnt, 1); - dev->handle_table = drmHashCreate(); - return dev; -} - -struct omap_device * omap_device_new(int fd) -{ - struct omap_device *dev = NULL; - - pthread_mutex_lock(&table_lock); - - if (!dev_table) - dev_table = drmHashCreate(); - - if (drmHashLookup(dev_table, fd, (void **)&dev)) { - /* not found, create new device */ - dev = omap_device_new_impl(fd); - drmHashInsert(dev_table, fd, dev); - } else { - /* found, just incr refcnt */ - dev = omap_device_ref(dev); - } - - pthread_mutex_unlock(&table_lock); - - return dev; -} - -struct omap_device * omap_device_ref(struct omap_device *dev) -{ - atomic_inc(&dev->refcnt); - return dev; -} - -void omap_device_del(struct omap_device *dev) -{ - if (!atomic_dec_and_test(&dev->refcnt)) - return; - pthread_mutex_lock(&table_lock); - drmHashDestroy(dev->handle_table); - drmHashDelete(dev_table, dev->fd); - pthread_mutex_unlock(&table_lock); - free(dev); -} - -int omap_get_param(struct omap_device *dev, uint64_t param, uint64_t *value) -{ - struct drm_omap_param req = { - .param = param, - }; - int ret; - - ret = drmCommandWriteRead(dev->fd, DRM_OMAP_GET_PARAM, &req, sizeof(req)); - if (ret) { - return ret; - } - - *value = req.value; - - return 0; -} - -int omap_set_param(struct omap_device *dev, uint64_t param, uint64_t value) -{ - struct drm_omap_param req = { - .param = param, - .value = value, - }; - return drmCommandWrite(dev->fd, DRM_OMAP_SET_PARAM, &req, sizeof(req)); -} - -/* lookup a buffer from it's handle, call w/ table_lock held: */ -static struct omap_bo * lookup_bo(struct omap_device *dev, - uint32_t handle) -{ - struct omap_bo *bo = NULL; - if (!drmHashLookup(dev->handle_table, handle, (void **)&bo)) { - /* found, incr refcnt and return: */ - bo = omap_bo_ref(bo); - } - return bo; -} - -/* allocate a new buffer object, call w/ table_lock held */ -static struct omap_bo * bo_from_handle(struct omap_device *dev, - uint32_t handle) -{ - struct omap_bo *bo = calloc(sizeof(*bo), 1); - if (!bo) { - struct drm_gem_close req = { - .handle = handle, - }; - drmIoctl(dev->fd, DRM_IOCTL_GEM_CLOSE, &req); - return NULL; - } - bo->dev = omap_device_ref(dev); - bo->handle = handle; - atomic_set(&bo->refcnt, 1); - /* add ourselves to the handle table: */ - drmHashInsert(dev->handle_table, handle, bo); - return bo; -} - -/* allocate a new buffer object */ -static struct omap_bo * omap_bo_new_impl(struct omap_device *dev, - union omap_gem_size size, uint32_t flags) -{ - struct omap_bo *bo = NULL; - struct drm_omap_gem_new req = { - .size = size, - .flags = flags, - }; - - if (size.bytes == 0) { - goto fail; - } - - if (drmCommandWriteRead(dev->fd, DRM_OMAP_GEM_NEW, &req, sizeof(req))) { - goto fail; - } - - pthread_mutex_lock(&table_lock); - bo = bo_from_handle(dev, req.handle); - pthread_mutex_unlock(&table_lock); - - if (flags & OMAP_BO_TILED) { - bo->size = round_up(size.tiled.width, PAGE_SIZE) * size.tiled.height; - } else { - bo->size = size.bytes; - } - - return bo; - -fail: - free(bo); - return NULL; -} - - -/* allocate a new (un-tiled) buffer object */ -struct omap_bo * omap_bo_new(struct omap_device *dev, - uint32_t size, uint32_t flags) -{ - union omap_gem_size gsize = { - .bytes = size, - }; - if (flags & OMAP_BO_TILED) { - return NULL; - } - return omap_bo_new_impl(dev, gsize, flags); -} - -/* allocate a new buffer object */ -struct omap_bo * omap_bo_new_tiled(struct omap_device *dev, - uint32_t width, uint32_t height, uint32_t flags) -{ - union omap_gem_size gsize = { - .tiled = { - .width = width, - .height = height, - }, - }; - if (!(flags & OMAP_BO_TILED)) { - return NULL; - } - return omap_bo_new_impl(dev, gsize, flags); -} - -struct omap_bo * omap_bo_ref(struct omap_bo *bo) -{ - atomic_inc(&bo->refcnt); - return bo; -} - -/* get buffer info */ -static int get_buffer_info(struct omap_bo *bo) -{ - struct drm_omap_gem_info req = { - .handle = bo->handle, - }; - int ret = drmCommandWriteRead(bo->dev->fd, DRM_OMAP_GEM_INFO, - &req, sizeof(req)); - if (ret) { - return ret; - } - - /* really all we need for now is mmap offset */ - bo->offset = req.offset; - bo->size = req.size; - - return 0; -} - -/* import a buffer object from DRI2 name */ -struct omap_bo * omap_bo_from_name(struct omap_device *dev, uint32_t name) -{ - struct omap_bo *bo = NULL; - struct drm_gem_open req = { - .name = name, - }; - - pthread_mutex_lock(&table_lock); - - if (drmIoctl(dev->fd, DRM_IOCTL_GEM_OPEN, &req)) { - goto fail; - } - - bo = lookup_bo(dev, req.handle); - if (!bo) { - bo = bo_from_handle(dev, req.handle); - bo->name = name; - } - - pthread_mutex_unlock(&table_lock); - - return bo; - -fail: - pthread_mutex_unlock(&table_lock); - free(bo); - return NULL; -} - -/* import a buffer from dmabuf fd, does not take ownership of the - * fd so caller should close() the fd when it is otherwise done - * with it (even if it is still using the 'struct omap_bo *') - */ -struct omap_bo * omap_bo_from_dmabuf(struct omap_device *dev, int fd) -{ - struct omap_bo *bo = NULL; - struct drm_prime_handle req = { - .fd = fd, - }; - int ret; - - pthread_mutex_lock(&table_lock); - - ret = drmIoctl(dev->fd, DRM_IOCTL_PRIME_FD_TO_HANDLE, &req); - if (ret) { - goto fail; - } - - bo = lookup_bo(dev, req.handle); - if (!bo) { - bo = bo_from_handle(dev, req.handle); - } - - pthread_mutex_unlock(&table_lock); - - return bo; - -fail: - pthread_mutex_unlock(&table_lock); - free(bo); - return NULL; -} - -/* destroy a buffer object */ -void omap_bo_del(struct omap_bo *bo) -{ - if (!bo) { - return; - } - - if (!atomic_dec_and_test(&bo->refcnt)) - return; - - if (bo->map) { - munmap(bo->map, bo->size); - } - - if (bo->fd) { - close(bo->fd); - } - - if (bo->handle) { - struct drm_gem_close req = { - .handle = bo->handle, - }; - pthread_mutex_lock(&table_lock); - drmHashDelete(bo->dev->handle_table, bo->handle); - drmIoctl(bo->dev->fd, DRM_IOCTL_GEM_CLOSE, &req); - pthread_mutex_unlock(&table_lock); - } - - omap_device_del(bo->dev); - - free(bo); -} - -/* get the global flink/DRI2 buffer name */ -int omap_bo_get_name(struct omap_bo *bo, uint32_t *name) -{ - if (!bo->name) { - struct drm_gem_flink req = { - .handle = bo->handle, - }; - int ret; - - ret = drmIoctl(bo->dev->fd, DRM_IOCTL_GEM_FLINK, &req); - if (ret) { - return ret; - } - - bo->name = req.name; - } - - *name = bo->name; - - return 0; -} - -uint32_t omap_bo_handle(struct omap_bo *bo) -{ - return bo->handle; -} - -/* caller owns the dmabuf fd that is returned and is responsible - * to close() it when done - */ -int omap_bo_dmabuf(struct omap_bo *bo) -{ - if (!bo->fd) { - struct drm_prime_handle req = { - .handle = bo->handle, - .flags = DRM_CLOEXEC, - }; - int ret; - - ret = drmIoctl(bo->dev->fd, DRM_IOCTL_PRIME_HANDLE_TO_FD, &req); - if (ret) { - return ret; - } - - bo->fd = req.fd; - } - return dup(bo->fd); -} - -uint32_t omap_bo_size(struct omap_bo *bo) -{ - if (!bo->size) { - get_buffer_info(bo); - } - return bo->size; -} - -void * omap_bo_map(struct omap_bo *bo) -{ - if (!bo->map) { - if (!bo->offset) { - get_buffer_info(bo); - } - - bo->map = mmap(0, bo->size, PROT_READ | PROT_WRITE, - MAP_SHARED, bo->dev->fd, bo->offset); - if (bo->map == MAP_FAILED) { - bo->map = NULL; - } - } - return bo->map; -} - -int omap_bo_cpu_prep(struct omap_bo *bo, enum omap_gem_op op) -{ - struct drm_omap_gem_cpu_prep req = { - .handle = bo->handle, - .op = op, - }; - return drmCommandWrite(bo->dev->fd, - DRM_OMAP_GEM_CPU_PREP, &req, sizeof(req)); -} - -int omap_bo_cpu_fini(struct omap_bo *bo, enum omap_gem_op op) -{ - struct drm_omap_gem_cpu_fini req = { - .handle = bo->handle, - .op = op, - .nregions = 0, - }; - return drmCommandWrite(bo->dev->fd, - DRM_OMAP_GEM_CPU_FINI, &req, sizeof(req)); -} diff -Nru libdrm-2.4.52/omap/omap_drm.h libdrm-2.4.52+really2.4.21/omap/omap_drm.h --- libdrm-2.4.52/omap/omap_drm.h 2012-10-05 21:13:32.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/omap/omap_drm.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,135 +0,0 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - -/* - * Copyright (C) 2011 Texas Instruments, Inc - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#ifndef __OMAP_DRM_H__ -#define __OMAP_DRM_H__ - -#include -#include - -/* Please note that modifications to all structs defined here are - * subject to backwards-compatibility constraints. - */ - -#define OMAP_PARAM_CHIPSET_ID 1 /* ie. 0x3430, 0x4430, etc */ - -struct drm_omap_param { - uint64_t param; /* in */ - uint64_t value; /* in (set_param), out (get_param) */ -}; - -struct drm_omap_get_base { - char plugin_name[64]; /* in */ - uint32_t ioctl_base; /* out */ - uint32_t __pad; -}; - -#define OMAP_BO_SCANOUT 0x00000001 /* scanout capable (phys contiguous) */ -#define OMAP_BO_CACHE_MASK 0x00000006 /* cache type mask, see cache modes */ -#define OMAP_BO_TILED_MASK 0x00000f00 /* tiled mapping mask, see tiled modes */ - -/* cache modes */ -#define OMAP_BO_CACHED 0x00000000 /* default */ -#define OMAP_BO_WC 0x00000002 /* write-combine */ -#define OMAP_BO_UNCACHED 0x00000004 /* strongly-ordered (uncached) */ - -/* tiled modes */ -#define OMAP_BO_TILED_8 0x00000100 -#define OMAP_BO_TILED_16 0x00000200 -#define OMAP_BO_TILED_32 0x00000300 -#define OMAP_BO_TILED (OMAP_BO_TILED_8 | OMAP_BO_TILED_16 | OMAP_BO_TILED_32) - -union omap_gem_size { - uint32_t bytes; /* (for non-tiled formats) */ - struct { - uint16_t width; - uint16_t height; - } tiled; /* (for tiled formats) */ -}; - -struct drm_omap_gem_new { - union omap_gem_size size; /* in */ - uint32_t flags; /* in */ - uint32_t handle; /* out */ - uint32_t __pad; -}; - -/* mask of operations: */ -enum omap_gem_op { - OMAP_GEM_READ = 0x01, - OMAP_GEM_WRITE = 0x02, -}; - -struct drm_omap_gem_cpu_prep { - uint32_t handle; /* buffer handle (in) */ - uint32_t op; /* mask of omap_gem_op (in) */ -}; - -struct drm_omap_gem_cpu_fini { - uint32_t handle; /* buffer handle (in) */ - uint32_t op; /* mask of omap_gem_op (in) */ - /* TODO maybe here we pass down info about what regions are touched - * by sw so we can be clever about cache ops? For now a placeholder, - * set to zero and we just do full buffer flush.. - */ - uint32_t nregions; - uint32_t __pad; -}; - -struct drm_omap_gem_info { - uint32_t handle; /* buffer handle (in) */ - uint32_t pad; - uint64_t offset; /* mmap offset (out) */ - /* note: in case of tiled buffers, the user virtual size can be - * different from the physical size (ie. how many pages are needed - * to back the object) which is returned in DRM_IOCTL_GEM_OPEN.. - * This size here is the one that should be used if you want to - * mmap() the buffer: - */ - uint32_t size; /* virtual size for mmap'ing (out) */ - uint32_t __pad; -}; - -#define DRM_OMAP_GET_PARAM 0x00 -#define DRM_OMAP_SET_PARAM 0x01 -#define DRM_OMAP_GET_BASE 0x02 -#define DRM_OMAP_GEM_NEW 0x03 -#define DRM_OMAP_GEM_CPU_PREP 0x04 -#define DRM_OMAP_GEM_CPU_FINI 0x05 -#define DRM_OMAP_GEM_INFO 0x06 -#define DRM_OMAP_NUM_IOCTLS 0x07 - -#define DRM_IOCTL_OMAP_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_OMAP_GET_PARAM, struct drm_omap_param) -#define DRM_IOCTL_OMAP_SET_PARAM DRM_IOW (DRM_COMMAND_BASE + DRM_OMAP_SET_PARAM, struct drm_omap_param) -#define DRM_IOCTL_OMAP_GET_BASE DRM_IOWR(DRM_COMMAND_BASE + DRM_OMAP_GET_BASE, struct drm_omap_get_base) -#define DRM_IOCTL_OMAP_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_OMAP_GEM_NEW, struct drm_omap_gem_new) -#define DRM_IOCTL_OMAP_GEM_CPU_PREP DRM_IOW (DRM_COMMAND_BASE + DRM_OMAP_GEM_CPU_PREP, struct drm_omap_gem_cpu_prep) -#define DRM_IOCTL_OMAP_GEM_CPU_FINI DRM_IOW (DRM_COMMAND_BASE + DRM_OMAP_GEM_CPU_FINI, struct drm_omap_gem_cpu_fini) -#define DRM_IOCTL_OMAP_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_OMAP_GEM_INFO, struct drm_omap_gem_info) - -#endif /* __OMAP_DRM_H__ */ diff -Nru libdrm-2.4.52/omap/omap_drmif.h libdrm-2.4.52+really2.4.21/omap/omap_drmif.h --- libdrm-2.4.52/omap/omap_drmif.h 2012-10-05 21:13:32.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/omap/omap_drmif.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2011 Texas Instruments, Inc - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Authors: - * Rob Clark - */ - -#ifndef OMAP_DRMIF_H_ -#define OMAP_DRMIF_H_ - -#include -#include -#include - -struct omap_bo; -struct omap_device; - -/* device related functions: - */ - -struct omap_device * omap_device_new(int fd); -struct omap_device * omap_device_ref(struct omap_device *dev); -void omap_device_del(struct omap_device *dev); -int omap_get_param(struct omap_device *dev, uint64_t param, uint64_t *value); -int omap_set_param(struct omap_device *dev, uint64_t param, uint64_t value); - -/* buffer-object related functions: - */ - -struct omap_bo * omap_bo_new(struct omap_device *dev, - uint32_t size, uint32_t flags); -struct omap_bo * omap_bo_new_tiled(struct omap_device *dev, - uint32_t width, uint32_t height, uint32_t flags); -struct omap_bo * omap_bo_ref(struct omap_bo *bo); -struct omap_bo * omap_bo_from_name(struct omap_device *dev, uint32_t name); -struct omap_bo * omap_bo_from_dmabuf(struct omap_device *dev, int fd); -void omap_bo_del(struct omap_bo *bo); -int omap_bo_get_name(struct omap_bo *bo, uint32_t *name); -uint32_t omap_bo_handle(struct omap_bo *bo); -int omap_bo_dmabuf(struct omap_bo *bo); -uint32_t omap_bo_size(struct omap_bo *bo); -void * omap_bo_map(struct omap_bo *bo); -int omap_bo_cpu_prep(struct omap_bo *bo, enum omap_gem_op op); -int omap_bo_cpu_fini(struct omap_bo *bo, enum omap_gem_op op); - -#endif /* OMAP_DRMIF_H_ */ diff -Nru libdrm-2.4.52/radeon/Makefile.am libdrm-2.4.52+really2.4.21/radeon/Makefile.am --- libdrm-2.4.52/radeon/Makefile.am 2012-10-05 21:13:32.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/radeon/Makefile.am 2010-06-10 16:03:51.000000000 +0000 @@ -31,7 +31,7 @@ libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la libdrm_radeon_ladir = $(libdir) -libdrm_radeon_la_LDFLAGS = -version-number 1:0:1 -no-undefined +libdrm_radeon_la_LDFLAGS = -version-number 1:0:0 -no-undefined libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ libdrm_radeon_la_SOURCES = \ @@ -40,7 +40,6 @@ radeon_cs_space.c \ radeon_bo.c \ radeon_cs.c \ - radeon_surface.c \ bof.c \ bof.h @@ -48,12 +47,10 @@ libdrm_radeoninclude_HEADERS = \ radeon_bo.h \ radeon_cs.h \ - radeon_surface.h \ radeon_bo_gem.h \ radeon_cs_gem.h \ radeon_bo_int.h \ - radeon_cs_int.h \ - r600_pci_ids.h + radeon_cs_int.h pkgconfigdir = @pkgconfigdir@ pkgconfig_DATA = libdrm_radeon.pc diff -Nru libdrm-2.4.52/radeon/Makefile.in libdrm-2.4.52+really2.4.21/radeon/Makefile.in --- libdrm-2.4.52/radeon/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/radeon/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,770 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Copyright © 2008 Jérôme Glisse -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. -# -# Authors: -# Jérôme Glisse - - - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = radeon -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/libdrm_radeon.pc.in $(top_srcdir)/build-aux/depcomp \ - $(libdrm_radeoninclude_HEADERS) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = libdrm_radeon.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdrm_radeon_ladir)" \ - "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(libdrm_radeonincludedir)" -LTLIBRARIES = $(libdrm_radeon_la_LTLIBRARIES) -libdrm_radeon_la_DEPENDENCIES = ../libdrm.la -am_libdrm_radeon_la_OBJECTS = radeon_bo_gem.lo radeon_cs_gem.lo \ - radeon_cs_space.lo radeon_bo.lo radeon_cs.lo radeon_surface.lo \ - bof.lo -libdrm_radeon_la_OBJECTS = $(am_libdrm_radeon_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libdrm_radeon_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(libdrm_radeon_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libdrm_radeon_la_SOURCES) -DIST_SOURCES = $(libdrm_radeon_la_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(pkgconfig_DATA) -HEADERS = $(libdrm_radeoninclude_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = \ - $(WARN_CFLAGS) \ - -I$(top_srcdir) \ - -I$(top_srcdir)/radeon \ - $(PTHREADSTUBS_CFLAGS) \ - -I$(top_srcdir)/include/drm - -libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la -libdrm_radeon_ladir = $(libdir) -libdrm_radeon_la_LDFLAGS = -version-number 1:0:1 -no-undefined -libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ -libdrm_radeon_la_SOURCES = \ - radeon_bo_gem.c \ - radeon_cs_gem.c \ - radeon_cs_space.c \ - radeon_bo.c \ - radeon_cs.c \ - radeon_surface.c \ - bof.c \ - bof.h - -libdrm_radeonincludedir = ${includedir}/libdrm -libdrm_radeoninclude_HEADERS = \ - radeon_bo.h \ - radeon_cs.h \ - radeon_surface.h \ - radeon_bo_gem.h \ - radeon_cs_gem.h \ - radeon_bo_int.h \ - radeon_cs_int.h \ - r600_pci_ids.h - -pkgconfig_DATA = libdrm_radeon.pc -EXTRA_DIST = libdrm_radeon.pc.in -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign radeon/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign radeon/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -libdrm_radeon.pc: $(top_builddir)/config.status $(srcdir)/libdrm_radeon.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-libdrm_radeon_laLTLIBRARIES: $(libdrm_radeon_la_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(libdrm_radeon_la_LTLIBRARIES)'; test -n "$(libdrm_radeon_ladir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_radeon_ladir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_radeon_ladir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdrm_radeon_ladir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdrm_radeon_ladir)"; \ - } - -uninstall-libdrm_radeon_laLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_radeon_la_LTLIBRARIES)'; test -n "$(libdrm_radeon_ladir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdrm_radeon_ladir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdrm_radeon_ladir)/$$f"; \ - done - -clean-libdrm_radeon_laLTLIBRARIES: - -test -z "$(libdrm_radeon_la_LTLIBRARIES)" || rm -f $(libdrm_radeon_la_LTLIBRARIES) - @list='$(libdrm_radeon_la_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libdrm_radeon.la: $(libdrm_radeon_la_OBJECTS) $(libdrm_radeon_la_DEPENDENCIES) $(EXTRA_libdrm_radeon_la_DEPENDENCIES) - $(AM_V_CCLD)$(libdrm_radeon_la_LINK) -rpath $(libdrm_radeon_ladir) $(libdrm_radeon_la_OBJECTS) $(libdrm_radeon_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bof.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeon_bo.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeon_bo_gem.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeon_cs.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeon_cs_gem.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeon_cs_space.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeon_surface.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-libdrm_radeonincludeHEADERS: $(libdrm_radeoninclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(libdrm_radeoninclude_HEADERS)'; test -n "$(libdrm_radeonincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdrm_radeonincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdrm_radeonincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libdrm_radeonincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libdrm_radeonincludedir)" || exit $$?; \ - done - -uninstall-libdrm_radeonincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(libdrm_radeoninclude_HEADERS)'; test -n "$(libdrm_radeonincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(libdrm_radeonincludedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libdrm_radeon_ladir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libdrm_radeonincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libdrm_radeon_laLTLIBRARIES \ - clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-libdrm_radeon_laLTLIBRARIES \ - install-libdrm_radeonincludeHEADERS install-pkgconfigDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-libdrm_radeon_laLTLIBRARIES \ - uninstall-libdrm_radeonincludeHEADERS uninstall-pkgconfigDATA - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libdrm_radeon_laLTLIBRARIES clean-libtool cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-libdrm_radeon_laLTLIBRARIES \ - install-libdrm_radeonincludeHEADERS install-man install-pdf \ - install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-libdrm_radeon_laLTLIBRARIES \ - uninstall-libdrm_radeonincludeHEADERS uninstall-pkgconfigDATA - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/radeon/r600_pci_ids.h libdrm-2.4.52+really2.4.21/radeon/r600_pci_ids.h --- libdrm-2.4.52/radeon/r600_pci_ids.h 2013-12-29 06:05:33.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/radeon/r600_pci_ids.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,461 +0,0 @@ -CHIPSET(0x9400, R600_9400, R600) -CHIPSET(0x9401, R600_9401, R600) -CHIPSET(0x9402, R600_9402, R600) -CHIPSET(0x9403, R600_9403, R600) -CHIPSET(0x9405, R600_9405, R600) -CHIPSET(0x940A, R600_940A, R600) -CHIPSET(0x940B, R600_940B, R600) -CHIPSET(0x940F, R600_940F, R600) - -CHIPSET(0x94C0, RV610_94C0, RV610) -CHIPSET(0x94C1, RV610_94C1, RV610) -CHIPSET(0x94C3, RV610_94C3, RV610) -CHIPSET(0x94C4, RV610_94C4, RV610) -CHIPSET(0x94C5, RV610_94C5, RV610) -CHIPSET(0x94C6, RV610_94C6, RV610) -CHIPSET(0x94C7, RV610_94C7, RV610) -CHIPSET(0x94C8, RV610_94C8, RV610) -CHIPSET(0x94C9, RV610_94C9, RV610) -CHIPSET(0x94CB, RV610_94CB, RV610) -CHIPSET(0x94CC, RV610_94CC, RV610) -CHIPSET(0x94CD, RV610_94CD, RV610) - -CHIPSET(0x9580, RV630_9580, RV630) -CHIPSET(0x9581, RV630_9581, RV630) -CHIPSET(0x9583, RV630_9583, RV630) -CHIPSET(0x9586, RV630_9586, RV630) -CHIPSET(0x9587, RV630_9587, RV630) -CHIPSET(0x9588, RV630_9588, RV630) -CHIPSET(0x9589, RV630_9589, RV630) -CHIPSET(0x958A, RV630_958A, RV630) -CHIPSET(0x958B, RV630_958B, RV630) -CHIPSET(0x958C, RV630_958C, RV630) -CHIPSET(0x958D, RV630_958D, RV630) -CHIPSET(0x958E, RV630_958E, RV630) -CHIPSET(0x958F, RV630_958F, RV630) - -CHIPSET(0x9500, RV670_9500, RV670) -CHIPSET(0x9501, RV670_9501, RV670) -CHIPSET(0x9504, RV670_9504, RV670) -CHIPSET(0x9505, RV670_9505, RV670) -CHIPSET(0x9506, RV670_9506, RV670) -CHIPSET(0x9507, RV670_9507, RV670) -CHIPSET(0x9508, RV670_9508, RV670) -CHIPSET(0x9509, RV670_9509, RV670) -CHIPSET(0x950F, RV670_950F, RV670) -CHIPSET(0x9511, RV670_9511, RV670) -CHIPSET(0x9515, RV670_9515, RV670) -CHIPSET(0x9517, RV670_9517, RV670) -CHIPSET(0x9519, RV670_9519, RV670) - -CHIPSET(0x95C0, RV620_95C0, RV620) -CHIPSET(0x95C2, RV620_95C2, RV620) -CHIPSET(0x95C4, RV620_95C4, RV620) -CHIPSET(0x95C5, RV620_95C5, RV620) -CHIPSET(0x95C6, RV620_95C6, RV620) -CHIPSET(0x95C7, RV620_95C7, RV620) -CHIPSET(0x95C9, RV620_95C9, RV620) -CHIPSET(0x95CC, RV620_95CC, RV620) -CHIPSET(0x95CD, RV620_95CD, RV620) -CHIPSET(0x95CE, RV620_95CE, RV620) -CHIPSET(0x95CF, RV620_95CF, RV620) - -CHIPSET(0x9590, RV635_9590, RV635) -CHIPSET(0x9591, RV635_9591, RV635) -CHIPSET(0x9593, RV635_9593, RV635) -CHIPSET(0x9595, RV635_9595, RV635) -CHIPSET(0x9596, RV635_9596, RV635) -CHIPSET(0x9597, RV635_9597, RV635) -CHIPSET(0x9598, RV635_9598, RV635) -CHIPSET(0x9599, RV635_9599, RV635) -CHIPSET(0x959B, RV635_959B, RV635) - -CHIPSET(0x9610, RS780_9610, RS780) -CHIPSET(0x9611, RS780_9611, RS780) -CHIPSET(0x9612, RS780_9612, RS780) -CHIPSET(0x9613, RS780_9613, RS780) -CHIPSET(0x9614, RS780_9614, RS780) -CHIPSET(0x9615, RS780_9615, RS780) -CHIPSET(0x9616, RS780_9616, RS780) - -CHIPSET(0x9710, RS880_9710, RS880) -CHIPSET(0x9711, RS880_9711, RS880) -CHIPSET(0x9712, RS880_9712, RS880) -CHIPSET(0x9713, RS880_9713, RS880) -CHIPSET(0x9714, RS880_9714, RS880) -CHIPSET(0x9715, RS880_9715, RS880) - -CHIPSET(0x9440, RV770_9440, RV770) -CHIPSET(0x9441, RV770_9441, RV770) -CHIPSET(0x9442, RV770_9442, RV770) -CHIPSET(0x9443, RV770_9443, RV770) -CHIPSET(0x9444, RV770_9444, RV770) -CHIPSET(0x9446, RV770_9446, RV770) -CHIPSET(0x944A, RV770_944A, RV770) -CHIPSET(0x944B, RV770_944B, RV770) -CHIPSET(0x944C, RV770_944C, RV770) -CHIPSET(0x944E, RV770_944E, RV770) -CHIPSET(0x9450, RV770_9450, RV770) -CHIPSET(0x9452, RV770_9452, RV770) -CHIPSET(0x9456, RV770_9456, RV770) -CHIPSET(0x945A, RV770_945A, RV770) -CHIPSET(0x945B, RV770_945B, RV770) -CHIPSET(0x945E, RV770_945E, RV770) -CHIPSET(0x9460, RV790_9460, RV770) -CHIPSET(0x9462, RV790_9462, RV770) -CHIPSET(0x946A, RV770_946A, RV770) -CHIPSET(0x946B, RV770_946B, RV770) -CHIPSET(0x947A, RV770_947A, RV770) -CHIPSET(0x947B, RV770_947B, RV770) - -CHIPSET(0x9480, RV730_9480, RV730) -CHIPSET(0x9487, RV730_9487, RV730) -CHIPSET(0x9488, RV730_9488, RV730) -CHIPSET(0x9489, RV730_9489, RV730) -CHIPSET(0x948A, RV730_948A, RV730) -CHIPSET(0x948F, RV730_948F, RV730) -CHIPSET(0x9490, RV730_9490, RV730) -CHIPSET(0x9491, RV730_9491, RV730) -CHIPSET(0x9495, RV730_9495, RV730) -CHIPSET(0x9498, RV730_9498, RV730) -CHIPSET(0x949C, RV730_949C, RV730) -CHIPSET(0x949E, RV730_949E, RV730) -CHIPSET(0x949F, RV730_949F, RV730) - -CHIPSET(0x9540, RV710_9540, RV710) -CHIPSET(0x9541, RV710_9541, RV710) -CHIPSET(0x9542, RV710_9542, RV710) -CHIPSET(0x954E, RV710_954E, RV710) -CHIPSET(0x954F, RV710_954F, RV710) -CHIPSET(0x9552, RV710_9552, RV710) -CHIPSET(0x9553, RV710_9553, RV710) -CHIPSET(0x9555, RV710_9555, RV710) -CHIPSET(0x9557, RV710_9557, RV710) -CHIPSET(0x955F, RV710_955F, RV710) - -CHIPSET(0x94A0, RV740_94A0, RV740) -CHIPSET(0x94A1, RV740_94A1, RV740) -CHIPSET(0x94A3, RV740_94A3, RV740) -CHIPSET(0x94B1, RV740_94B1, RV740) -CHIPSET(0x94B3, RV740_94B3, RV740) -CHIPSET(0x94B4, RV740_94B4, RV740) -CHIPSET(0x94B5, RV740_94B5, RV740) -CHIPSET(0x94B9, RV740_94B9, RV740) - -CHIPSET(0x68E0, CEDAR_68E0, CEDAR) -CHIPSET(0x68E1, CEDAR_68E1, CEDAR) -CHIPSET(0x68E4, CEDAR_68E4, CEDAR) -CHIPSET(0x68E5, CEDAR_68E5, CEDAR) -CHIPSET(0x68E8, CEDAR_68E8, CEDAR) -CHIPSET(0x68E9, CEDAR_68E9, CEDAR) -CHIPSET(0x68F1, CEDAR_68F1, CEDAR) -CHIPSET(0x68F2, CEDAR_68F2, CEDAR) -CHIPSET(0x68F8, CEDAR_68F8, CEDAR) -CHIPSET(0x68F9, CEDAR_68F9, CEDAR) -CHIPSET(0x68FA, CEDAR_68FA, CEDAR) -CHIPSET(0x68FE, CEDAR_68FE, CEDAR) - -CHIPSET(0x68C0, REDWOOD_68C0, REDWOOD) -CHIPSET(0x68C1, REDWOOD_68C1, REDWOOD) -CHIPSET(0x68C7, REDWOOD_68C7, REDWOOD) -CHIPSET(0x68C8, REDWOOD_68C8, REDWOOD) -CHIPSET(0x68C9, REDWOOD_68C9, REDWOOD) -CHIPSET(0x68D8, REDWOOD_68D8, REDWOOD) -CHIPSET(0x68D9, REDWOOD_68D9, REDWOOD) -CHIPSET(0x68DA, REDWOOD_68DA, REDWOOD) -CHIPSET(0x68DE, REDWOOD_68DE, REDWOOD) - -CHIPSET(0x68A0, JUNIPER_68A0, JUNIPER) -CHIPSET(0x68A1, JUNIPER_68A1, JUNIPER) -CHIPSET(0x68A8, JUNIPER_68A8, JUNIPER) -CHIPSET(0x68A9, JUNIPER_68A9, JUNIPER) -CHIPSET(0x68B0, JUNIPER_68B0, JUNIPER) -CHIPSET(0x68B8, JUNIPER_68B8, JUNIPER) -CHIPSET(0x68B9, JUNIPER_68B9, JUNIPER) -CHIPSET(0x68BA, JUNIPER_68BA, JUNIPER) -CHIPSET(0x68BE, JUNIPER_68BE, JUNIPER) -CHIPSET(0x68BF, JUNIPER_68BF, JUNIPER) - -CHIPSET(0x6880, CYPRESS_6880, CYPRESS) -CHIPSET(0x6888, CYPRESS_6888, CYPRESS) -CHIPSET(0x6889, CYPRESS_6889, CYPRESS) -CHIPSET(0x688A, CYPRESS_688A, CYPRESS) -CHIPSET(0x688C, CYPRESS_688C, CYPRESS) -CHIPSET(0x688D, CYPRESS_688D, CYPRESS) -CHIPSET(0x6898, CYPRESS_6898, CYPRESS) -CHIPSET(0x6899, CYPRESS_6899, CYPRESS) -CHIPSET(0x689B, CYPRESS_689B, CYPRESS) -CHIPSET(0x689E, CYPRESS_689E, CYPRESS) - -CHIPSET(0x689C, HEMLOCK_689C, HEMLOCK) -CHIPSET(0x689D, HEMLOCK_689D, HEMLOCK) - -CHIPSET(0x9802, PALM_9802, PALM) -CHIPSET(0x9803, PALM_9803, PALM) -CHIPSET(0x9804, PALM_9804, PALM) -CHIPSET(0x9805, PALM_9805, PALM) -CHIPSET(0x9806, PALM_9806, PALM) -CHIPSET(0x9807, PALM_9807, PALM) -CHIPSET(0x9808, PALM_9808, PALM) -CHIPSET(0x9809, PALM_9809, PALM) -CHIPSET(0x980A, PALM_980A, PALM) - -CHIPSET(0x9640, SUMO_9640, SUMO) -CHIPSET(0x9641, SUMO_9641, SUMO) -CHIPSET(0x9642, SUMO2_9642, SUMO2) -CHIPSET(0x9643, SUMO2_9643, SUMO2) -CHIPSET(0x9644, SUMO2_9644, SUMO2) -CHIPSET(0x9645, SUMO2_9645, SUMO2) -CHIPSET(0x9647, SUMO_9647, SUMO) -CHIPSET(0x9648, SUMO_9648, SUMO) -CHIPSET(0x9649, SUMO2_9649, SUMO2) -CHIPSET(0x964a, SUMO_964A, SUMO) -CHIPSET(0x964b, SUMO_964B, SUMO) -CHIPSET(0x964c, SUMO_964C, SUMO) -CHIPSET(0x964e, SUMO_964E, SUMO) -CHIPSET(0x964f, SUMO_964F, SUMO) - -CHIPSET(0x6700, CAYMAN_6700, CAYMAN) -CHIPSET(0x6701, CAYMAN_6701, CAYMAN) -CHIPSET(0x6702, CAYMAN_6702, CAYMAN) -CHIPSET(0x6703, CAYMAN_6703, CAYMAN) -CHIPSET(0x6704, CAYMAN_6704, CAYMAN) -CHIPSET(0x6705, CAYMAN_6705, CAYMAN) -CHIPSET(0x6706, CAYMAN_6706, CAYMAN) -CHIPSET(0x6707, CAYMAN_6707, CAYMAN) -CHIPSET(0x6708, CAYMAN_6708, CAYMAN) -CHIPSET(0x6709, CAYMAN_6709, CAYMAN) -CHIPSET(0x6718, CAYMAN_6718, CAYMAN) -CHIPSET(0x6719, CAYMAN_6719, CAYMAN) -CHIPSET(0x671C, CAYMAN_671C, CAYMAN) -CHIPSET(0x671D, CAYMAN_671D, CAYMAN) -CHIPSET(0x671F, CAYMAN_671F, CAYMAN) - -CHIPSET(0x6720, BARTS_6720, BARTS) -CHIPSET(0x6721, BARTS_6721, BARTS) -CHIPSET(0x6722, BARTS_6722, BARTS) -CHIPSET(0x6723, BARTS_6723, BARTS) -CHIPSET(0x6724, BARTS_6724, BARTS) -CHIPSET(0x6725, BARTS_6725, BARTS) -CHIPSET(0x6726, BARTS_6726, BARTS) -CHIPSET(0x6727, BARTS_6727, BARTS) -CHIPSET(0x6728, BARTS_6728, BARTS) -CHIPSET(0x6729, BARTS_6729, BARTS) -CHIPSET(0x6738, BARTS_6738, BARTS) -CHIPSET(0x6739, BARTS_6739, BARTS) -CHIPSET(0x673E, BARTS_673E, BARTS) - -CHIPSET(0x6740, TURKS_6740, TURKS) -CHIPSET(0x6741, TURKS_6741, TURKS) -CHIPSET(0x6742, TURKS_6742, TURKS) -CHIPSET(0x6743, TURKS_6743, TURKS) -CHIPSET(0x6744, TURKS_6744, TURKS) -CHIPSET(0x6745, TURKS_6745, TURKS) -CHIPSET(0x6746, TURKS_6746, TURKS) -CHIPSET(0x6747, TURKS_6747, TURKS) -CHIPSET(0x6748, TURKS_6748, TURKS) -CHIPSET(0x6749, TURKS_6749, TURKS) -CHIPSET(0x674A, TURKS_674A, TURKS) -CHIPSET(0x6750, TURKS_6750, TURKS) -CHIPSET(0x6751, TURKS_6751, TURKS) -CHIPSET(0x6758, TURKS_6758, TURKS) -CHIPSET(0x6759, TURKS_6759, TURKS) -CHIPSET(0x675B, TURKS_675B, TURKS) -CHIPSET(0x675D, TURKS_675D, TURKS) -CHIPSET(0x675F, TURKS_675F, TURKS) -CHIPSET(0x6840, TURKS_6840, TURKS) -CHIPSET(0x6841, TURKS_6841, TURKS) -CHIPSET(0x6842, TURKS_6842, TURKS) -CHIPSET(0x6843, TURKS_6843, TURKS) -CHIPSET(0x6849, TURKS_6849, TURKS) -CHIPSET(0x6850, TURKS_6850, TURKS) -CHIPSET(0x6858, TURKS_6858, TURKS) -CHIPSET(0x6859, TURKS_6859, TURKS) - -CHIPSET(0x6760, CAICOS_6760, CAICOS) -CHIPSET(0x6761, CAICOS_6761, CAICOS) -CHIPSET(0x6762, CAICOS_6762, CAICOS) -CHIPSET(0x6763, CAICOS_6763, CAICOS) -CHIPSET(0x6764, CAICOS_6764, CAICOS) -CHIPSET(0x6765, CAICOS_6765, CAICOS) -CHIPSET(0x6766, CAICOS_6766, CAICOS) -CHIPSET(0x6767, CAICOS_6767, CAICOS) -CHIPSET(0x6768, CAICOS_6768, CAICOS) -CHIPSET(0x6770, CAICOS_6770, CAICOS) -CHIPSET(0x6771, CAICOS_6771, CAICOS) -CHIPSET(0x6772, CAICOS_6772, CAICOS) -CHIPSET(0x6778, CAICOS_6778, CAICOS) -CHIPSET(0x6779, CAICOS_6779, CAICOS) -CHIPSET(0x677B, CAICOS_677B, CAICOS) - -CHIPSET(0x9900, ARUBA_9900, ARUBA) -CHIPSET(0x9901, ARUBA_9901, ARUBA) -CHIPSET(0x9903, ARUBA_9903, ARUBA) -CHIPSET(0x9904, ARUBA_9904, ARUBA) -CHIPSET(0x9905, ARUBA_9905, ARUBA) -CHIPSET(0x9906, ARUBA_9906, ARUBA) -CHIPSET(0x9907, ARUBA_9907, ARUBA) -CHIPSET(0x9908, ARUBA_9908, ARUBA) -CHIPSET(0x9909, ARUBA_9909, ARUBA) -CHIPSET(0x990A, ARUBA_990A, ARUBA) -CHIPSET(0x990B, ARUBA_990B, ARUBA) -CHIPSET(0x990C, ARUBA_990C, ARUBA) -CHIPSET(0x990D, ARUBA_990D, ARUBA) -CHIPSET(0x990E, ARUBA_990E, ARUBA) -CHIPSET(0x990F, ARUBA_990F, ARUBA) -CHIPSET(0x9910, ARUBA_9910, ARUBA) -CHIPSET(0x9913, ARUBA_9913, ARUBA) -CHIPSET(0x9917, ARUBA_9917, ARUBA) -CHIPSET(0x9918, ARUBA_9918, ARUBA) -CHIPSET(0x9919, ARUBA_9919, ARUBA) -CHIPSET(0x9990, ARUBA_9990, ARUBA) -CHIPSET(0x9991, ARUBA_9991, ARUBA) -CHIPSET(0x9992, ARUBA_9992, ARUBA) -CHIPSET(0x9993, ARUBA_9993, ARUBA) -CHIPSET(0x9994, ARUBA_9994, ARUBA) -CHIPSET(0x9995, ARUBA_9995, ARUBA) -CHIPSET(0x9996, ARUBA_9996, ARUBA) -CHIPSET(0x9997, ARUBA_9997, ARUBA) -CHIPSET(0x9998, ARUBA_9998, ARUBA) -CHIPSET(0x9999, ARUBA_9999, ARUBA) -CHIPSET(0x999A, ARUBA_999A, ARUBA) -CHIPSET(0x999B, ARUBA_999B, ARUBA) -CHIPSET(0x999C, ARUBA_999C, ARUBA) -CHIPSET(0x999D, ARUBA_999D, ARUBA) -CHIPSET(0x99A0, ARUBA_99A0, ARUBA) -CHIPSET(0x99A2, ARUBA_99A2, ARUBA) -CHIPSET(0x99A4, ARUBA_99A4, ARUBA) - -CHIPSET(0x6780, TAHITI_6780, TAHITI) -CHIPSET(0x6784, TAHITI_6784, TAHITI) -CHIPSET(0x6788, TAHITI_6788, TAHITI) -CHIPSET(0x678A, TAHITI_678A, TAHITI) -CHIPSET(0x6790, TAHITI_6790, TAHITI) -CHIPSET(0x6791, TAHITI_6791, TAHITI) -CHIPSET(0x6792, TAHITI_6792, TAHITI) -CHIPSET(0x6798, TAHITI_6798, TAHITI) -CHIPSET(0x6799, TAHITI_6799, TAHITI) -CHIPSET(0x679A, TAHITI_679A, TAHITI) -CHIPSET(0x679B, TAHITI_679B, TAHITI) -CHIPSET(0x679E, TAHITI_679E, TAHITI) -CHIPSET(0x679F, TAHITI_679F, TAHITI) - -CHIPSET(0x6800, PITCAIRN_6800, PITCAIRN) -CHIPSET(0x6801, PITCAIRN_6801, PITCAIRN) -CHIPSET(0x6802, PITCAIRN_6802, PITCAIRN) -CHIPSET(0x6806, PITCAIRN_6806, PITCAIRN) -CHIPSET(0x6808, PITCAIRN_6808, PITCAIRN) -CHIPSET(0x6809, PITCAIRN_6809, PITCAIRN) -CHIPSET(0x6810, PITCAIRN_6810, PITCAIRN) -CHIPSET(0x6811, PITCAIRN_6811, PITCAIRN) -CHIPSET(0x6816, PITCAIRN_6816, PITCAIRN) -CHIPSET(0x6817, PITCAIRN_6817, PITCAIRN) -CHIPSET(0x6818, PITCAIRN_6818, PITCAIRN) -CHIPSET(0x6819, PITCAIRN_6819, PITCAIRN) -CHIPSET(0x684C, PITCAIRN_684C, PITCAIRN) - -CHIPSET(0x6820, VERDE_6820, VERDE) -CHIPSET(0x6821, VERDE_6821, VERDE) -CHIPSET(0x6822, VERDE_6822, VERDE) -CHIPSET(0x6823, VERDE_6823, VERDE) -CHIPSET(0x6824, VERDE_6824, VERDE) -CHIPSET(0x6825, VERDE_6825, VERDE) -CHIPSET(0x6826, VERDE_6826, VERDE) -CHIPSET(0x6827, VERDE_6827, VERDE) -CHIPSET(0x6828, VERDE_6828, VERDE) -CHIPSET(0x6829, VERDE_6829, VERDE) -CHIPSET(0x682A, VERDE_682A, VERDE) -CHIPSET(0x682B, VERDE_682B, VERDE) -CHIPSET(0x682D, VERDE_682D, VERDE) -CHIPSET(0x682F, VERDE_682F, VERDE) -CHIPSET(0x6830, VERDE_6830, VERDE) -CHIPSET(0x6831, VERDE_6831, VERDE) -CHIPSET(0x6835, VERDE_6835, VERDE) -CHIPSET(0x6837, VERDE_6837, VERDE) -CHIPSET(0x6838, VERDE_6838, VERDE) -CHIPSET(0x6839, VERDE_6839, VERDE) -CHIPSET(0x683B, VERDE_683B, VERDE) -CHIPSET(0x683D, VERDE_683D, VERDE) -CHIPSET(0x683F, VERDE_683F, VERDE) - -CHIPSET(0x6600, OLAND_6600, OLAND) -CHIPSET(0x6601, OLAND_6601, OLAND) -CHIPSET(0x6602, OLAND_6602, OLAND) -CHIPSET(0x6603, OLAND_6603, OLAND) -CHIPSET(0x6606, OLAND_6606, OLAND) -CHIPSET(0x6607, OLAND_6607, OLAND) -CHIPSET(0x6610, OLAND_6610, OLAND) -CHIPSET(0x6611, OLAND_6611, OLAND) -CHIPSET(0x6613, OLAND_6613, OLAND) -CHIPSET(0x6620, OLAND_6620, OLAND) -CHIPSET(0x6621, OLAND_6621, OLAND) -CHIPSET(0x6623, OLAND_6623, OLAND) -CHIPSET(0x6631, OLAND_6631, OLAND) - -CHIPSET(0x6660, HAINAN_6660, HAINAN) -CHIPSET(0x6663, HAINAN_6663, HAINAN) -CHIPSET(0x6664, HAINAN_6664, HAINAN) -CHIPSET(0x6665, HAINAN_6665, HAINAN) -CHIPSET(0x6667, HAINAN_6667, HAINAN) -CHIPSET(0x666F, HAINAN_666F, HAINAN) - -CHIPSET(0x6640, BONAIRE_6640, BONAIRE) -CHIPSET(0x6641, BONAIRE_6641, BONAIRE) -CHIPSET(0x6649, BONAIRE_6649, BONAIRE) -CHIPSET(0x6650, BONAIRE_6650, BONAIRE) -CHIPSET(0x6651, BONAIRE_6651, BONAIRE) -CHIPSET(0x6658, BONAIRE_6658, BONAIRE) -CHIPSET(0x665C, BONAIRE_665C, BONAIRE) -CHIPSET(0x665D, BONAIRE_665D, BONAIRE) - -CHIPSET(0x9830, KABINI_9830, KABINI) -CHIPSET(0x9831, KABINI_9831, KABINI) -CHIPSET(0x9832, KABINI_9832, KABINI) -CHIPSET(0x9833, KABINI_9833, KABINI) -CHIPSET(0x9834, KABINI_9834, KABINI) -CHIPSET(0x9835, KABINI_9835, KABINI) -CHIPSET(0x9836, KABINI_9836, KABINI) -CHIPSET(0x9837, KABINI_9837, KABINI) -CHIPSET(0x9838, KABINI_9838, KABINI) -CHIPSET(0x9839, KABINI_9839, KABINI) -CHIPSET(0x983A, KABINI_983A, KABINI) -CHIPSET(0x983B, KABINI_983B, KABINI) -CHIPSET(0x983C, KABINI_983C, KABINI) -CHIPSET(0x983D, KABINI_983D, KABINI) -CHIPSET(0x983E, KABINI_983E, KABINI) -CHIPSET(0x983F, KABINI_983F, KABINI) - -CHIPSET(0x1304, KAVERI_1304, KAVERI) -CHIPSET(0x1305, KAVERI_1305, KAVERI) -CHIPSET(0x1306, KAVERI_1306, KAVERI) -CHIPSET(0x1307, KAVERI_1307, KAVERI) -CHIPSET(0x1309, KAVERI_1309, KAVERI) -CHIPSET(0x130A, KAVERI_130A, KAVERI) -CHIPSET(0x130B, KAVERI_130B, KAVERI) -CHIPSET(0x130C, KAVERI_130C, KAVERI) -CHIPSET(0x130D, KAVERI_130D, KAVERI) -CHIPSET(0x130E, KAVERI_130E, KAVERI) -CHIPSET(0x130F, KAVERI_130F, KAVERI) -CHIPSET(0x1310, KAVERI_1310, KAVERI) -CHIPSET(0x1311, KAVERI_1311, KAVERI) -CHIPSET(0x1312, KAVERI_1312, KAVERI) -CHIPSET(0x1313, KAVERI_1313, KAVERI) -CHIPSET(0x1315, KAVERI_1315, KAVERI) -CHIPSET(0x1316, KAVERI_1316, KAVERI) -CHIPSET(0x1317, KAVERI_1317, KAVERI) -CHIPSET(0x131B, KAVERI_131B, KAVERI) -CHIPSET(0x131C, KAVERI_131C, KAVERI) -CHIPSET(0x131D, KAVERI_131D, KAVERI) - -CHIPSET(0x67A0, HAWAII_67A0, HAWAII) -CHIPSET(0x67A1, HAWAII_67A1, HAWAII) -CHIPSET(0x67A2, HAWAII_67A2, HAWAII) -CHIPSET(0x67A8, HAWAII_67A8, HAWAII) -CHIPSET(0x67A9, HAWAII_67A9, HAWAII) -CHIPSET(0x67AA, HAWAII_67AA, HAWAII) -CHIPSET(0x67B0, HAWAII_67B0, HAWAII) -CHIPSET(0x67B1, HAWAII_67B1, HAWAII) -CHIPSET(0x67B8, HAWAII_67B8, HAWAII) -CHIPSET(0x67B9, HAWAII_67B9, HAWAII) -CHIPSET(0x67BA, HAWAII_67BA, HAWAII) -CHIPSET(0x67BE, HAWAII_67BE, HAWAII) diff -Nru libdrm-2.4.52/radeon/radeon_bo_gem.c libdrm-2.4.52+really2.4.21/radeon/radeon_bo_gem.c --- libdrm-2.4.52/radeon/radeon_bo_gem.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/radeon/radeon_bo_gem.c 2010-06-07 01:11:45.000000000 +0000 @@ -45,13 +45,13 @@ #include "radeon_bo.h" #include "radeon_bo_int.h" #include "radeon_bo_gem.h" -#include + struct radeon_bo_gem { - struct radeon_bo_int base; - uint32_t name; - int map_count; - atomic_t reloc_in_cs; - void *priv_ptr; + struct radeon_bo_int base; + uint32_t name; + int map_count; + atomic_t reloc_in_cs; + void *priv_ptr; }; struct bo_manager_gem { @@ -211,8 +211,8 @@ memset(&args, 0, sizeof(args)); args.handle = boi->handle; do { - ret = drmCommandWrite(boi->bom->fd, DRM_RADEON_GEM_WAIT_IDLE, - &args, sizeof(args)); + ret = drmCommandWriteRead(boi->bom->fd, DRM_RADEON_GEM_WAIT_IDLE, + &args, sizeof(args)); } while (ret == -EBUSY); return ret; } @@ -252,7 +252,7 @@ static int bo_get_tiling(struct radeon_bo_int *boi, uint32_t *tiling_flags, uint32_t *pitch) { - struct drm_radeon_gem_set_tiling args = {}; + struct drm_radeon_gem_set_tiling args; int r; args.handle = boi->handle; @@ -320,21 +320,15 @@ int radeon_gem_get_kernel_name(struct radeon_bo *bo, uint32_t *name) { - struct radeon_bo_gem *bo_gem = (struct radeon_bo_gem*)bo; struct radeon_bo_int *boi = (struct radeon_bo_int *)bo; struct drm_gem_flink flink; int r; - if (bo_gem->name) { - *name = bo_gem->name; - return 0; - } flink.handle = bo->handle; r = drmIoctl(boi->bom->fd, DRM_IOCTL_GEM_FLINK, &flink); if (r) { return r; } - bo_gem->name = flink.name; *name = flink.name; return 0; } @@ -355,49 +349,3 @@ sizeof(args)); return r; } - -int radeon_gem_prime_share_bo(struct radeon_bo *bo, int *handle) -{ - struct radeon_bo_gem *bo_gem = (struct radeon_bo_gem*)bo; - int ret; - - ret = drmPrimeHandleToFD(bo_gem->base.bom->fd, bo->handle, DRM_CLOEXEC, handle); - return ret; -} - -struct radeon_bo *radeon_gem_bo_open_prime(struct radeon_bo_manager *bom, - int fd_handle, - uint32_t size) -{ - struct radeon_bo_gem *bo; - int r; - uint32_t handle; - - bo = (struct radeon_bo_gem*)calloc(1, sizeof(struct radeon_bo_gem)); - if (bo == NULL) { - return NULL; - } - - bo->base.bom = bom; - bo->base.handle = 0; - bo->base.size = size; - bo->base.alignment = 0; - bo->base.domains = RADEON_GEM_DOMAIN_GTT; - bo->base.flags = 0; - bo->base.ptr = NULL; - atomic_set(&bo->reloc_in_cs, 0); - bo->map_count = 0; - - r = drmPrimeFDToHandle(bom->fd, fd_handle, &handle); - if (r != 0) { - free(bo); - return NULL; - } - - bo->base.handle = handle; - bo->name = handle; - - radeon_bo_ref((struct radeon_bo *)bo); - return (struct radeon_bo *)bo; - -} diff -Nru libdrm-2.4.52/radeon/radeon_bo_gem.h libdrm-2.4.52+really2.4.21/radeon/radeon_bo_gem.h --- libdrm-2.4.52/radeon/radeon_bo_gem.h 2012-10-05 21:13:32.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/radeon/radeon_bo_gem.h 2010-06-07 01:11:45.000000000 +0000 @@ -41,8 +41,4 @@ void *radeon_gem_get_reloc_in_cs(struct radeon_bo *bo); int radeon_gem_set_domain(struct radeon_bo *bo, uint32_t read_domains, uint32_t write_domain); int radeon_gem_get_kernel_name(struct radeon_bo *bo, uint32_t *name); -int radeon_gem_prime_share_bo(struct radeon_bo *bo, int *handle); -struct radeon_bo *radeon_gem_bo_open_prime(struct radeon_bo_manager *bom, - int fd_handle, - uint32_t size); #endif diff -Nru libdrm-2.4.52/radeon/radeon_cs_gem.c libdrm-2.4.52+really2.4.21/radeon/radeon_cs_gem.c --- libdrm-2.4.52/radeon/radeon_cs_gem.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/radeon/radeon_cs_gem.c 2010-06-07 01:11:45.000000000 +0000 @@ -330,7 +330,6 @@ return 0; } -#if CS_BOF_DUMP static void cs_gem_dump_bof(struct radeon_cs_int *cs) { struct cs_gem *csg = (struct cs_gem*)cs; @@ -416,7 +415,6 @@ bof_decref(device_id); bof_decref(root); } -#endif static int cs_gem_emit(struct radeon_cs_int *cs) { @@ -425,9 +423,6 @@ unsigned i; int r; - while (cs->cdw & 7) - radeon_cs_write_dword((struct radeon_cs *)cs, 0x80000000); - #if CS_BOF_DUMP cs_gem_dump_bof(cs); #endif @@ -522,7 +517,7 @@ static int radeon_get_device_id(int fd, uint32_t *device_id) { - struct drm_radeon_info info = {}; + struct drm_radeon_info info; int r; *device_id = 0; diff -Nru libdrm-2.4.52/radeon/radeon_cs_space.c libdrm-2.4.52+really2.4.21/radeon/radeon_cs_space.c --- libdrm-2.4.52/radeon/radeon_cs_space.c 2012-02-21 20:53:56.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/radeon/radeon_cs_space.c 2010-06-07 01:11:45.000000000 +0000 @@ -65,16 +65,13 @@ } if (bo->space_accounted == 0) { - if (write_domain) { - if (write_domain == RADEON_GEM_DOMAIN_VRAM) - sizes->op_vram_write += bo->size; - else if (write_domain == RADEON_GEM_DOMAIN_GTT) - sizes->op_gart_write += bo->size; - sc->new_accounted = write_domain; - } else { + if (write_domain == RADEON_GEM_DOMAIN_VRAM) + sizes->op_vram_write += bo->size; + else if (write_domain == RADEON_GEM_DOMAIN_GTT) + sizes->op_gart_write += bo->size; + else sizes->op_read += bo->size; - sc->new_accounted = read_domains << 16; - } + sc->new_accounted = (read_domains << 16) | write_domain; } else { uint16_t old_read, old_write; diff -Nru libdrm-2.4.52/radeon/radeon_surface.c libdrm-2.4.52+really2.4.21/radeon/radeon_surface.c --- libdrm-2.4.52/radeon/radeon_surface.c 2013-12-29 06:05:33.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/radeon/radeon_surface.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,2547 +0,0 @@ -/* - * Copyright © 2011 Red Hat All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS - * AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - * USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - */ -/* - * Authors: - * Jérôme Glisse - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include "drm.h" -#include "xf86drm.h" -#include "radeon_drm.h" -#include "radeon_surface.h" - -#define ALIGN(value, alignment) (((value) + alignment - 1) & ~(alignment - 1)) -#define MAX2(A, B) ((A) > (B) ? (A) : (B)) -#define MIN2(A, B) ((A) < (B) ? (A) : (B)) - -/* keep this private */ -enum radeon_family { - CHIP_UNKNOWN, - CHIP_R600, - CHIP_RV610, - CHIP_RV630, - CHIP_RV670, - CHIP_RV620, - CHIP_RV635, - CHIP_RS780, - CHIP_RS880, - CHIP_RV770, - CHIP_RV730, - CHIP_RV710, - CHIP_RV740, - CHIP_CEDAR, - CHIP_REDWOOD, - CHIP_JUNIPER, - CHIP_CYPRESS, - CHIP_HEMLOCK, - CHIP_PALM, - CHIP_SUMO, - CHIP_SUMO2, - CHIP_BARTS, - CHIP_TURKS, - CHIP_CAICOS, - CHIP_CAYMAN, - CHIP_ARUBA, - CHIP_TAHITI, - CHIP_PITCAIRN, - CHIP_VERDE, - CHIP_OLAND, - CHIP_HAINAN, - CHIP_BONAIRE, - CHIP_KAVERI, - CHIP_KABINI, - CHIP_HAWAII, - CHIP_LAST, -}; - -typedef int (*hw_init_surface_t)(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf); -typedef int (*hw_best_surface_t)(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf); - -struct radeon_hw_info { - /* apply to r6, eg */ - uint32_t group_bytes; - uint32_t num_banks; - uint32_t num_pipes; - /* apply to eg */ - uint32_t row_size; - unsigned allow_2d; - /* apply to si */ - uint32_t tile_mode_array[32]; - /* apply to cik */ - uint32_t macrotile_mode_array[16]; -}; - -struct radeon_surface_manager { - int fd; - uint32_t device_id; - struct radeon_hw_info hw_info; - unsigned family; - hw_init_surface_t surface_init; - hw_best_surface_t surface_best; -}; - -/* helper */ -static int radeon_get_value(int fd, unsigned req, uint32_t *value) -{ - struct drm_radeon_info info = {}; - int r; - - *value = 0; - info.request = req; - info.value = (uintptr_t)value; - r = drmCommandWriteRead(fd, DRM_RADEON_INFO, &info, - sizeof(struct drm_radeon_info)); - return r; -} - -static int radeon_get_family(struct radeon_surface_manager *surf_man) -{ - switch (surf_man->device_id) { -#define CHIPSET(pci_id, name, fam) case pci_id: surf_man->family = CHIP_##fam; break; -#include "r600_pci_ids.h" -#undef CHIPSET - default: - return -EINVAL; - } - return 0; -} - -static unsigned next_power_of_two(unsigned x) -{ - if (x <= 1) - return 1; - - return (1 << ((sizeof(unsigned) * 8) - __builtin_clz(x - 1))); -} - -static unsigned mip_minify(unsigned size, unsigned level) -{ - unsigned val; - - val = MAX2(1, size >> level); - if (level > 0) - val = next_power_of_two(val); - return val; -} - -static void surf_minify(struct radeon_surface *surf, - struct radeon_surface_level *surflevel, - unsigned bpe, unsigned level, - uint32_t xalign, uint32_t yalign, uint32_t zalign, - unsigned offset) -{ - surflevel->npix_x = mip_minify(surf->npix_x, level); - surflevel->npix_y = mip_minify(surf->npix_y, level); - surflevel->npix_z = mip_minify(surf->npix_z, level); - surflevel->nblk_x = (surflevel->npix_x + surf->blk_w - 1) / surf->blk_w; - surflevel->nblk_y = (surflevel->npix_y + surf->blk_h - 1) / surf->blk_h; - surflevel->nblk_z = (surflevel->npix_z + surf->blk_d - 1) / surf->blk_d; - if (surf->nsamples == 1 && surflevel->mode == RADEON_SURF_MODE_2D && - !(surf->flags & RADEON_SURF_FMASK)) { - if (surflevel->nblk_x < xalign || surflevel->nblk_y < yalign) { - surflevel->mode = RADEON_SURF_MODE_1D; - return; - } - } - surflevel->nblk_x = ALIGN(surflevel->nblk_x, xalign); - surflevel->nblk_y = ALIGN(surflevel->nblk_y, yalign); - surflevel->nblk_z = ALIGN(surflevel->nblk_z, zalign); - - surflevel->offset = offset; - surflevel->pitch_bytes = surflevel->nblk_x * bpe * surf->nsamples; - surflevel->slice_size = surflevel->pitch_bytes * surflevel->nblk_y; - - surf->bo_size = offset + surflevel->slice_size * surflevel->nblk_z * surf->array_size; -} - -/* =========================================================================== - * r600/r700 family - */ -static int r6_init_hw_info(struct radeon_surface_manager *surf_man) -{ - uint32_t tiling_config; - drmVersionPtr version; - int r; - - r = radeon_get_value(surf_man->fd, RADEON_INFO_TILING_CONFIG, - &tiling_config); - if (r) { - return r; - } - - surf_man->hw_info.allow_2d = 0; - version = drmGetVersion(surf_man->fd); - if (version && version->version_minor >= 14) { - surf_man->hw_info.allow_2d = 1; - } - drmFreeVersion(version); - - switch ((tiling_config & 0xe) >> 1) { - case 0: - surf_man->hw_info.num_pipes = 1; - break; - case 1: - surf_man->hw_info.num_pipes = 2; - break; - case 2: - surf_man->hw_info.num_pipes = 4; - break; - case 3: - surf_man->hw_info.num_pipes = 8; - break; - default: - surf_man->hw_info.num_pipes = 8; - surf_man->hw_info.allow_2d = 0; - break; - } - - switch ((tiling_config & 0x30) >> 4) { - case 0: - surf_man->hw_info.num_banks = 4; - break; - case 1: - surf_man->hw_info.num_banks = 8; - break; - default: - surf_man->hw_info.num_banks = 8; - surf_man->hw_info.allow_2d = 0; - break; - } - - switch ((tiling_config & 0xc0) >> 6) { - case 0: - surf_man->hw_info.group_bytes = 256; - break; - case 1: - surf_man->hw_info.group_bytes = 512; - break; - default: - surf_man->hw_info.group_bytes = 256; - surf_man->hw_info.allow_2d = 0; - break; - } - return 0; -} - -static int r6_surface_init_linear(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - uint64_t offset, unsigned start_level) -{ - uint32_t xalign, yalign, zalign; - unsigned i; - - /* compute alignment */ - if (!start_level) { - surf->bo_alignment = MAX2(256, surf_man->hw_info.group_bytes); - } - /* the 32 alignment is for scanout, cb or db but to allow texture to be - * easily bound as such we force this alignment to all surface - */ - xalign = MAX2(1, surf_man->hw_info.group_bytes / surf->bpe); - yalign = 1; - zalign = 1; - if (surf->flags & RADEON_SURF_SCANOUT) { - xalign = MAX2((surf->bpe == 1) ? 64 : 32, xalign); - } - - /* build mipmap tree */ - for (i = start_level; i <= surf->last_level; i++) { - surf->level[i].mode = RADEON_SURF_MODE_LINEAR; - surf_minify(surf, surf->level+i, surf->bpe, i, xalign, yalign, zalign, offset); - /* level0 and first mipmap need to have alignment */ - offset = surf->bo_size; - if ((i == 0)) { - offset = ALIGN(offset, surf->bo_alignment); - } - } - return 0; -} - -static int r6_surface_init_linear_aligned(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - uint64_t offset, unsigned start_level) -{ - uint32_t xalign, yalign, zalign; - unsigned i; - - /* compute alignment */ - if (!start_level) { - surf->bo_alignment = MAX2(256, surf_man->hw_info.group_bytes); - } - xalign = MAX2(64, surf_man->hw_info.group_bytes / surf->bpe); - yalign = 1; - zalign = 1; - - /* build mipmap tree */ - for (i = start_level; i <= surf->last_level; i++) { - surf->level[i].mode = RADEON_SURF_MODE_LINEAR_ALIGNED; - surf_minify(surf, surf->level+i, surf->bpe, i, xalign, yalign, zalign, offset); - /* level0 and first mipmap need to have alignment */ - offset = surf->bo_size; - if ((i == 0)) { - offset = ALIGN(offset, surf->bo_alignment); - } - } - return 0; -} - -static int r6_surface_init_1d(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - uint64_t offset, unsigned start_level) -{ - uint32_t xalign, yalign, zalign, tilew; - unsigned i; - - /* compute alignment */ - tilew = 8; - xalign = surf_man->hw_info.group_bytes / (tilew * surf->bpe * surf->nsamples); - xalign = MAX2(tilew, xalign); - yalign = tilew; - zalign = 1; - if (surf->flags & RADEON_SURF_SCANOUT) { - xalign = MAX2((surf->bpe == 1) ? 64 : 32, xalign); - } - if (!start_level) { - surf->bo_alignment = MAX2(256, surf_man->hw_info.group_bytes); - } - - /* build mipmap tree */ - for (i = start_level; i <= surf->last_level; i++) { - surf->level[i].mode = RADEON_SURF_MODE_1D; - surf_minify(surf, surf->level+i, surf->bpe, i, xalign, yalign, zalign, offset); - /* level0 and first mipmap need to have alignment */ - offset = surf->bo_size; - if ((i == 0)) { - offset = ALIGN(offset, surf->bo_alignment); - } - } - return 0; -} - -static int r6_surface_init_2d(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - uint64_t offset, unsigned start_level) -{ - uint32_t xalign, yalign, zalign, tilew; - unsigned i; - - /* compute alignment */ - tilew = 8; - zalign = 1; - xalign = (surf_man->hw_info.group_bytes * surf_man->hw_info.num_banks) / - (tilew * surf->bpe * surf->nsamples); - xalign = MAX2(tilew * surf_man->hw_info.num_banks, xalign); - yalign = tilew * surf_man->hw_info.num_pipes; - if (surf->flags & RADEON_SURF_SCANOUT) { - xalign = MAX2((surf->bpe == 1) ? 64 : 32, xalign); - } - if (!start_level) { - surf->bo_alignment = - MAX2(surf_man->hw_info.num_pipes * - surf_man->hw_info.num_banks * - surf->nsamples * surf->bpe * 64, - xalign * yalign * surf->nsamples * surf->bpe); - } - - /* build mipmap tree */ - for (i = start_level; i <= surf->last_level; i++) { - surf->level[i].mode = RADEON_SURF_MODE_2D; - surf_minify(surf, surf->level+i, surf->bpe, i, xalign, yalign, zalign, offset); - if (surf->level[i].mode == RADEON_SURF_MODE_1D) { - return r6_surface_init_1d(surf_man, surf, offset, i); - } - /* level0 and first mipmap need to have alignment */ - offset = surf->bo_size; - if ((i == 0)) { - offset = ALIGN(offset, surf->bo_alignment); - } - } - return 0; -} - -static int r6_surface_init(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf) -{ - unsigned mode; - int r; - - /* MSAA surfaces support the 2D mode only. */ - if (surf->nsamples > 1) { - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_2D, MODE); - } - - /* tiling mode */ - mode = (surf->flags >> RADEON_SURF_MODE_SHIFT) & RADEON_SURF_MODE_MASK; - - if (surf->flags & (RADEON_SURF_ZBUFFER | RADEON_SURF_SBUFFER)) { - /* zbuffer only support 1D or 2D tiled surface */ - switch (mode) { - case RADEON_SURF_MODE_1D: - case RADEON_SURF_MODE_2D: - break; - default: - mode = RADEON_SURF_MODE_1D; - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_1D, MODE); - break; - } - } - - /* force 1d on kernel that can't do 2d */ - if (!surf_man->hw_info.allow_2d && mode > RADEON_SURF_MODE_1D) { - if (surf->nsamples > 1) { - fprintf(stderr, "radeon: Cannot use 2D tiling for an MSAA surface (%i).\n", __LINE__); - return -EFAULT; - } - mode = RADEON_SURF_MODE_1D; - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(mode, MODE); - } - - /* check surface dimension */ - if (surf->npix_x > 8192 || surf->npix_y > 8192 || surf->npix_z > 8192) { - return -EINVAL; - } - - /* check mipmap last_level */ - if (surf->last_level > 14) { - return -EINVAL; - } - - /* check tiling mode */ - switch (mode) { - case RADEON_SURF_MODE_LINEAR: - r = r6_surface_init_linear(surf_man, surf, 0, 0); - break; - case RADEON_SURF_MODE_LINEAR_ALIGNED: - r = r6_surface_init_linear_aligned(surf_man, surf, 0, 0); - break; - case RADEON_SURF_MODE_1D: - r = r6_surface_init_1d(surf_man, surf, 0, 0); - break; - case RADEON_SURF_MODE_2D: - r = r6_surface_init_2d(surf_man, surf, 0, 0); - break; - default: - return -EINVAL; - } - return r; -} - -static int r6_surface_best(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf) -{ - /* no value to optimize for r6xx/r7xx */ - return 0; -} - - -/* =========================================================================== - * evergreen family - */ -static int eg_init_hw_info(struct radeon_surface_manager *surf_man) -{ - uint32_t tiling_config; - drmVersionPtr version; - int r; - - r = radeon_get_value(surf_man->fd, RADEON_INFO_TILING_CONFIG, - &tiling_config); - if (r) { - return r; - } - - surf_man->hw_info.allow_2d = 0; - version = drmGetVersion(surf_man->fd); - if (version && version->version_minor >= 16) { - surf_man->hw_info.allow_2d = 1; - } - drmFreeVersion(version); - - switch (tiling_config & 0xf) { - case 0: - surf_man->hw_info.num_pipes = 1; - break; - case 1: - surf_man->hw_info.num_pipes = 2; - break; - case 2: - surf_man->hw_info.num_pipes = 4; - break; - case 3: - surf_man->hw_info.num_pipes = 8; - break; - default: - surf_man->hw_info.num_pipes = 8; - surf_man->hw_info.allow_2d = 0; - break; - } - - switch ((tiling_config & 0xf0) >> 4) { - case 0: - surf_man->hw_info.num_banks = 4; - break; - case 1: - surf_man->hw_info.num_banks = 8; - break; - case 2: - surf_man->hw_info.num_banks = 16; - break; - default: - surf_man->hw_info.num_banks = 8; - surf_man->hw_info.allow_2d = 0; - break; - } - - switch ((tiling_config & 0xf00) >> 8) { - case 0: - surf_man->hw_info.group_bytes = 256; - break; - case 1: - surf_man->hw_info.group_bytes = 512; - break; - default: - surf_man->hw_info.group_bytes = 256; - surf_man->hw_info.allow_2d = 0; - break; - } - - switch ((tiling_config & 0xf000) >> 12) { - case 0: - surf_man->hw_info.row_size = 1024; - break; - case 1: - surf_man->hw_info.row_size = 2048; - break; - case 2: - surf_man->hw_info.row_size = 4096; - break; - default: - surf_man->hw_info.row_size = 4096; - surf_man->hw_info.allow_2d = 0; - break; - } - return 0; -} - -static void eg_surf_minify(struct radeon_surface *surf, - struct radeon_surface_level *surflevel, - unsigned bpe, - unsigned level, - unsigned slice_pt, - unsigned mtilew, - unsigned mtileh, - unsigned mtileb, - unsigned offset) -{ - unsigned mtile_pr, mtile_ps; - - surflevel->npix_x = mip_minify(surf->npix_x, level); - surflevel->npix_y = mip_minify(surf->npix_y, level); - surflevel->npix_z = mip_minify(surf->npix_z, level); - surflevel->nblk_x = (surflevel->npix_x + surf->blk_w - 1) / surf->blk_w; - surflevel->nblk_y = (surflevel->npix_y + surf->blk_h - 1) / surf->blk_h; - surflevel->nblk_z = (surflevel->npix_z + surf->blk_d - 1) / surf->blk_d; - if (surf->nsamples == 1 && surflevel->mode == RADEON_SURF_MODE_2D && - !(surf->flags & RADEON_SURF_FMASK)) { - if (surflevel->nblk_x < mtilew || surflevel->nblk_y < mtileh) { - surflevel->mode = RADEON_SURF_MODE_1D; - return; - } - } - surflevel->nblk_x = ALIGN(surflevel->nblk_x, mtilew); - surflevel->nblk_y = ALIGN(surflevel->nblk_y, mtileh); - surflevel->nblk_z = ALIGN(surflevel->nblk_z, 1); - - /* macro tile per row */ - mtile_pr = surflevel->nblk_x / mtilew; - /* macro tile per slice */ - mtile_ps = (mtile_pr * surflevel->nblk_y) / mtileh; - - surflevel->offset = offset; - surflevel->pitch_bytes = surflevel->nblk_x * bpe * slice_pt; - surflevel->slice_size = mtile_ps * mtileb * slice_pt; - - surf->bo_size = offset + surflevel->slice_size * surflevel->nblk_z * surf->array_size; -} - -static int eg_surface_init_1d(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - struct radeon_surface_level *level, - unsigned bpe, - uint64_t offset, unsigned start_level) -{ - uint32_t xalign, yalign, zalign, tilew; - unsigned i; - - /* compute alignment */ - tilew = 8; - xalign = surf_man->hw_info.group_bytes / (tilew * bpe * surf->nsamples); - xalign = MAX2(tilew, xalign); - yalign = tilew; - zalign = 1; - if (surf->flags & RADEON_SURF_SCANOUT) { - xalign = MAX2((bpe == 1) ? 64 : 32, xalign); - } - - if (!start_level) { - unsigned alignment = MAX2(256, surf_man->hw_info.group_bytes); - surf->bo_alignment = MAX2(surf->bo_alignment, alignment); - - if (offset) { - offset = ALIGN(offset, alignment); - } - } - - /* build mipmap tree */ - for (i = start_level; i <= surf->last_level; i++) { - level[i].mode = RADEON_SURF_MODE_1D; - surf_minify(surf, level+i, bpe, i, xalign, yalign, zalign, offset); - /* level0 and first mipmap need to have alignment */ - offset = surf->bo_size; - if ((i == 0)) { - offset = ALIGN(offset, surf->bo_alignment); - } - } - return 0; -} - -static int eg_surface_init_2d(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - struct radeon_surface_level *level, - unsigned bpe, unsigned tile_split, - uint64_t offset, unsigned start_level) -{ - unsigned tilew, tileh, tileb; - unsigned mtilew, mtileh, mtileb; - unsigned slice_pt; - unsigned i; - - /* compute tile values */ - tilew = 8; - tileh = 8; - tileb = tilew * tileh * bpe * surf->nsamples; - /* slices per tile */ - slice_pt = 1; - if (tileb > tile_split && tile_split) { - slice_pt = tileb / tile_split; - } - tileb = tileb / slice_pt; - - /* macro tile width & height */ - mtilew = (tilew * surf->bankw * surf_man->hw_info.num_pipes) * surf->mtilea; - mtileh = (tileh * surf->bankh * surf_man->hw_info.num_banks) / surf->mtilea; - /* macro tile bytes */ - mtileb = (mtilew / tilew) * (mtileh / tileh) * tileb; - - if (!start_level) { - unsigned alignment = MAX2(256, mtileb); - surf->bo_alignment = MAX2(surf->bo_alignment, alignment); - - if (offset) { - offset = ALIGN(offset, alignment); - } - } - - /* build mipmap tree */ - for (i = start_level; i <= surf->last_level; i++) { - level[i].mode = RADEON_SURF_MODE_2D; - eg_surf_minify(surf, level+i, bpe, i, slice_pt, mtilew, mtileh, mtileb, offset); - if (level[i].mode == RADEON_SURF_MODE_1D) { - return eg_surface_init_1d(surf_man, surf, level, bpe, offset, i); - } - /* level0 and first mipmap need to have alignment */ - offset = surf->bo_size; - if ((i == 0)) { - offset = ALIGN(offset, surf->bo_alignment); - } - } - return 0; -} - -static int eg_surface_sanity(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - unsigned mode) -{ - unsigned tileb; - - /* check surface dimension */ - if (surf->npix_x > 16384 || surf->npix_y > 16384 || surf->npix_z > 16384) { - return -EINVAL; - } - - /* check mipmap last_level */ - if (surf->last_level > 15) { - return -EINVAL; - } - - /* force 1d on kernel that can't do 2d */ - if (!surf_man->hw_info.allow_2d && mode > RADEON_SURF_MODE_1D) { - if (surf->nsamples > 1) { - fprintf(stderr, "radeon: Cannot use 2D tiling for an MSAA surface (%i).\n", __LINE__); - return -EFAULT; - } - mode = RADEON_SURF_MODE_1D; - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(mode, MODE); - } - - /* check tile split */ - if (mode == RADEON_SURF_MODE_2D) { - switch (surf->tile_split) { - case 64: - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - break; - default: - return -EINVAL; - } - switch (surf->mtilea) { - case 1: - case 2: - case 4: - case 8: - break; - default: - return -EINVAL; - } - /* check aspect ratio */ - if (surf_man->hw_info.num_banks < surf->mtilea) { - return -EINVAL; - } - /* check bank width */ - switch (surf->bankw) { - case 1: - case 2: - case 4: - case 8: - break; - default: - return -EINVAL; - } - /* check bank height */ - switch (surf->bankh) { - case 1: - case 2: - case 4: - case 8: - break; - default: - return -EINVAL; - } - tileb = MIN2(surf->tile_split, 64 * surf->bpe * surf->nsamples); - if ((tileb * surf->bankh * surf->bankw) < surf_man->hw_info.group_bytes) { - return -EINVAL; - } - } - - return 0; -} - -static int eg_surface_init_1d_miptrees(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf) -{ - unsigned zs_flags = RADEON_SURF_ZBUFFER | RADEON_SURF_SBUFFER; - int r, is_depth_stencil = (surf->flags & zs_flags) == zs_flags; - /* Old libdrm headers didn't have stencil_level in it. This prevents crashes. */ - struct radeon_surface_level tmp[RADEON_SURF_MAX_LEVEL]; - struct radeon_surface_level *stencil_level = - (surf->flags & RADEON_SURF_HAS_SBUFFER_MIPTREE) ? surf->stencil_level : tmp; - - r = eg_surface_init_1d(surf_man, surf, surf->level, surf->bpe, 0, 0); - if (r) - return r; - - if (is_depth_stencil) { - r = eg_surface_init_1d(surf_man, surf, stencil_level, 1, - surf->bo_size, 0); - surf->stencil_offset = stencil_level[0].offset; - } - return r; -} - -static int eg_surface_init_2d_miptrees(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf) -{ - unsigned zs_flags = RADEON_SURF_ZBUFFER | RADEON_SURF_SBUFFER; - int r, is_depth_stencil = (surf->flags & zs_flags) == zs_flags; - /* Old libdrm headers didn't have stencil_level in it. This prevents crashes. */ - struct radeon_surface_level tmp[RADEON_SURF_MAX_LEVEL]; - struct radeon_surface_level *stencil_level = - (surf->flags & RADEON_SURF_HAS_SBUFFER_MIPTREE) ? surf->stencil_level : tmp; - - r = eg_surface_init_2d(surf_man, surf, surf->level, surf->bpe, - surf->tile_split, 0, 0); - if (r) - return r; - - if (is_depth_stencil) { - r = eg_surface_init_2d(surf_man, surf, stencil_level, 1, - surf->stencil_tile_split, surf->bo_size, 0); - surf->stencil_offset = stencil_level[0].offset; - } - return r; -} - -static int eg_surface_init(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf) -{ - unsigned mode; - int r; - - /* MSAA surfaces support the 2D mode only. */ - if (surf->nsamples > 1) { - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_2D, MODE); - } - - /* tiling mode */ - mode = (surf->flags >> RADEON_SURF_MODE_SHIFT) & RADEON_SURF_MODE_MASK; - - if (surf->flags & (RADEON_SURF_ZBUFFER | RADEON_SURF_SBUFFER)) { - /* zbuffer only support 1D or 2D tiled surface */ - switch (mode) { - case RADEON_SURF_MODE_1D: - case RADEON_SURF_MODE_2D: - break; - default: - mode = RADEON_SURF_MODE_1D; - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_1D, MODE); - break; - } - } - - r = eg_surface_sanity(surf_man, surf, mode); - if (r) { - return r; - } - - surf->stencil_offset = 0; - surf->bo_alignment = 0; - - /* check tiling mode */ - switch (mode) { - case RADEON_SURF_MODE_LINEAR: - r = r6_surface_init_linear(surf_man, surf, 0, 0); - break; - case RADEON_SURF_MODE_LINEAR_ALIGNED: - r = r6_surface_init_linear_aligned(surf_man, surf, 0, 0); - break; - case RADEON_SURF_MODE_1D: - r = eg_surface_init_1d_miptrees(surf_man, surf); - break; - case RADEON_SURF_MODE_2D: - r = eg_surface_init_2d_miptrees(surf_man, surf); - break; - default: - return -EINVAL; - } - return r; -} - -static unsigned log2_int(unsigned x) -{ - unsigned l; - - if (x < 2) { - return 0; - } - for (l = 2; ; l++) { - if ((unsigned)(1 << l) > x) { - return l - 1; - } - } - return 0; -} - -/* compute best tile_split, bankw, bankh, mtilea - * depending on surface - */ -static int eg_surface_best(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf) -{ - unsigned mode, tileb, h_over_w; - int r; - - /* tiling mode */ - mode = (surf->flags >> RADEON_SURF_MODE_SHIFT) & RADEON_SURF_MODE_MASK; - - /* set some default value to avoid sanity check choking on them */ - surf->tile_split = 1024; - surf->bankw = 1; - surf->bankh = 1; - surf->mtilea = surf_man->hw_info.num_banks; - tileb = MIN2(surf->tile_split, 64 * surf->bpe * surf->nsamples); - for (; surf->bankh <= 8; surf->bankh *= 2) { - if ((tileb * surf->bankh * surf->bankw) >= surf_man->hw_info.group_bytes) { - break; - } - } - if (surf->mtilea > 8) { - surf->mtilea = 8; - } - - r = eg_surface_sanity(surf_man, surf, mode); - if (r) { - return r; - } - - if (mode != RADEON_SURF_MODE_2D) { - /* nothing to do for non 2D tiled surface */ - return 0; - } - - /* Tweak TILE_SPLIT for performance here. */ - if (surf->nsamples > 1) { - if (surf->flags & (RADEON_SURF_ZBUFFER | RADEON_SURF_SBUFFER)) { - switch (surf->nsamples) { - case 2: - surf->tile_split = 128; - break; - case 4: - surf->tile_split = 128; - break; - case 8: - surf->tile_split = 256; - break; - case 16: /* cayman only */ - surf->tile_split = 512; - break; - default: - fprintf(stderr, "radeon: Wrong number of samples %i (%i)\n", - surf->nsamples, __LINE__); - return -EINVAL; - } - surf->stencil_tile_split = 64; - } else { - /* tile split must be >= 256 for colorbuffer surfaces */ - surf->tile_split = MAX2(surf->nsamples * surf->bpe * 64, 256); - if (surf->tile_split > 4096) - surf->tile_split = 4096; - } - } else { - /* set tile split to row size */ - surf->tile_split = surf_man->hw_info.row_size; - surf->stencil_tile_split = surf_man->hw_info.row_size / 2; - } - - /* bankw or bankh greater than 1 increase alignment requirement, not - * sure if it's worth using smaller bankw & bankh to stick with 2D - * tiling on small surface rather than falling back to 1D tiling. - * Use recommanded value based on tile size for now. - * - * fmask buffer has different optimal value figure them out once we - * use it. - */ - if (surf->flags & RADEON_SURF_SBUFFER) { - /* assume 1 bytes for stencil, we optimize for stencil as stencil - * and depth shares surface values - */ - tileb = MIN2(surf->tile_split, 64 * surf->nsamples); - } else { - tileb = MIN2(surf->tile_split, 64 * surf->bpe * surf->nsamples); - } - - /* use bankw of 1 to minimize width alignment, might be interesting to - * increase it for large surface - */ - surf->bankw = 1; - switch (tileb) { - case 64: - surf->bankh = 4; - break; - case 128: - case 256: - surf->bankh = 2; - break; - default: - surf->bankh = 1; - break; - } - /* double check the constraint */ - for (; surf->bankh <= 8; surf->bankh *= 2) { - if ((tileb * surf->bankh * surf->bankw) >= surf_man->hw_info.group_bytes) { - break; - } - } - - h_over_w = (((surf->bankh * surf_man->hw_info.num_banks) << 16) / - (surf->bankw * surf_man->hw_info.num_pipes)) >> 16; - surf->mtilea = 1 << (log2_int(h_over_w) >> 1); - - return 0; -} - - -/* =========================================================================== - * Southern Islands family - */ -#define SI__GB_TILE_MODE__PIPE_CONFIG(x) (((x) >> 6) & 0x1f) -#define SI__PIPE_CONFIG__ADDR_SURF_P2 0 -#define SI__PIPE_CONFIG__ADDR_SURF_P4_8x16 4 -#define SI__PIPE_CONFIG__ADDR_SURF_P4_16x16 5 -#define SI__PIPE_CONFIG__ADDR_SURF_P4_16x32 6 -#define SI__PIPE_CONFIG__ADDR_SURF_P4_32x32 7 -#define SI__PIPE_CONFIG__ADDR_SURF_P8_16x16_8x16 8 -#define SI__PIPE_CONFIG__ADDR_SURF_P8_16x32_8x16 9 -#define SI__PIPE_CONFIG__ADDR_SURF_P8_32x32_8x16 10 -#define SI__PIPE_CONFIG__ADDR_SURF_P8_16x32_16x16 11 -#define SI__PIPE_CONFIG__ADDR_SURF_P8_32x32_16x16 12 -#define SI__PIPE_CONFIG__ADDR_SURF_P8_32x32_16x32 13 -#define SI__PIPE_CONFIG__ADDR_SURF_P8_32x64_32x32 14 -#define SI__GB_TILE_MODE__TILE_SPLIT(x) (((x) >> 11) & 0x7) -#define SI__TILE_SPLIT__64B 0 -#define SI__TILE_SPLIT__128B 1 -#define SI__TILE_SPLIT__256B 2 -#define SI__TILE_SPLIT__512B 3 -#define SI__TILE_SPLIT__1024B 4 -#define SI__TILE_SPLIT__2048B 5 -#define SI__TILE_SPLIT__4096B 6 -#define SI__GB_TILE_MODE__BANK_WIDTH(x) (((x) >> 14) & 0x3) -#define SI__BANK_WIDTH__1 0 -#define SI__BANK_WIDTH__2 1 -#define SI__BANK_WIDTH__4 2 -#define SI__BANK_WIDTH__8 3 -#define SI__GB_TILE_MODE__BANK_HEIGHT(x) (((x) >> 16) & 0x3) -#define SI__BANK_HEIGHT__1 0 -#define SI__BANK_HEIGHT__2 1 -#define SI__BANK_HEIGHT__4 2 -#define SI__BANK_HEIGHT__8 3 -#define SI__GB_TILE_MODE__MACRO_TILE_ASPECT(x) (((x) >> 18) & 0x3) -#define SI__MACRO_TILE_ASPECT__1 0 -#define SI__MACRO_TILE_ASPECT__2 1 -#define SI__MACRO_TILE_ASPECT__4 2 -#define SI__MACRO_TILE_ASPECT__8 3 -#define SI__GB_TILE_MODE__NUM_BANKS(x) (((x) >> 20) & 0x3) -#define SI__NUM_BANKS__2_BANK 0 -#define SI__NUM_BANKS__4_BANK 1 -#define SI__NUM_BANKS__8_BANK 2 -#define SI__NUM_BANKS__16_BANK 3 - - -static void si_gb_tile_mode(uint32_t gb_tile_mode, - unsigned *num_pipes, - unsigned *num_banks, - uint32_t *macro_tile_aspect, - uint32_t *bank_w, - uint32_t *bank_h, - uint32_t *tile_split) -{ - if (num_pipes) { - switch (SI__GB_TILE_MODE__PIPE_CONFIG(gb_tile_mode)) { - case SI__PIPE_CONFIG__ADDR_SURF_P2: - default: - *num_pipes = 2; - break; - case SI__PIPE_CONFIG__ADDR_SURF_P4_8x16: - case SI__PIPE_CONFIG__ADDR_SURF_P4_16x16: - case SI__PIPE_CONFIG__ADDR_SURF_P4_16x32: - case SI__PIPE_CONFIG__ADDR_SURF_P4_32x32: - *num_pipes = 4; - break; - case SI__PIPE_CONFIG__ADDR_SURF_P8_16x16_8x16: - case SI__PIPE_CONFIG__ADDR_SURF_P8_16x32_8x16: - case SI__PIPE_CONFIG__ADDR_SURF_P8_32x32_8x16: - case SI__PIPE_CONFIG__ADDR_SURF_P8_16x32_16x16: - case SI__PIPE_CONFIG__ADDR_SURF_P8_32x32_16x16: - case SI__PIPE_CONFIG__ADDR_SURF_P8_32x32_16x32: - case SI__PIPE_CONFIG__ADDR_SURF_P8_32x64_32x32: - *num_pipes = 8; - break; - } - } - if (num_banks) { - switch (SI__GB_TILE_MODE__NUM_BANKS(gb_tile_mode)) { - default: - case SI__NUM_BANKS__2_BANK: - *num_banks = 2; - break; - case SI__NUM_BANKS__4_BANK: - *num_banks = 4; - break; - case SI__NUM_BANKS__8_BANK: - *num_banks = 8; - break; - case SI__NUM_BANKS__16_BANK: - *num_banks = 16; - break; - } - } - if (macro_tile_aspect) { - switch (SI__GB_TILE_MODE__MACRO_TILE_ASPECT(gb_tile_mode)) { - default: - case SI__MACRO_TILE_ASPECT__1: - *macro_tile_aspect = 1; - break; - case SI__MACRO_TILE_ASPECT__2: - *macro_tile_aspect = 2; - break; - case SI__MACRO_TILE_ASPECT__4: - *macro_tile_aspect = 4; - break; - case SI__MACRO_TILE_ASPECT__8: - *macro_tile_aspect = 8; - break; - } - } - if (bank_w) { - switch (SI__GB_TILE_MODE__BANK_WIDTH(gb_tile_mode)) { - default: - case SI__BANK_WIDTH__1: - *bank_w = 1; - break; - case SI__BANK_WIDTH__2: - *bank_w = 2; - break; - case SI__BANK_WIDTH__4: - *bank_w = 4; - break; - case SI__BANK_WIDTH__8: - *bank_w = 8; - break; - } - } - if (bank_h) { - switch (SI__GB_TILE_MODE__BANK_HEIGHT(gb_tile_mode)) { - default: - case SI__BANK_HEIGHT__1: - *bank_h = 1; - break; - case SI__BANK_HEIGHT__2: - *bank_h = 2; - break; - case SI__BANK_HEIGHT__4: - *bank_h = 4; - break; - case SI__BANK_HEIGHT__8: - *bank_h = 8; - break; - } - } - if (tile_split) { - switch (SI__GB_TILE_MODE__TILE_SPLIT(gb_tile_mode)) { - default: - case SI__TILE_SPLIT__64B: - *tile_split = 64; - break; - case SI__TILE_SPLIT__128B: - *tile_split = 128; - break; - case SI__TILE_SPLIT__256B: - *tile_split = 256; - break; - case SI__TILE_SPLIT__512B: - *tile_split = 512; - break; - case SI__TILE_SPLIT__1024B: - *tile_split = 1024; - break; - case SI__TILE_SPLIT__2048B: - *tile_split = 2048; - break; - case SI__TILE_SPLIT__4096B: - *tile_split = 4096; - break; - } - } -} - -static int si_init_hw_info(struct radeon_surface_manager *surf_man) -{ - uint32_t tiling_config; - drmVersionPtr version; - int r; - - r = radeon_get_value(surf_man->fd, RADEON_INFO_TILING_CONFIG, - &tiling_config); - if (r) { - return r; - } - - surf_man->hw_info.allow_2d = 0; - version = drmGetVersion(surf_man->fd); - if (version && version->version_minor >= 33) { - if (!radeon_get_value(surf_man->fd, RADEON_INFO_SI_TILE_MODE_ARRAY, surf_man->hw_info.tile_mode_array)) { - surf_man->hw_info.allow_2d = 1; - } - } - drmFreeVersion(version); - - switch (tiling_config & 0xf) { - case 0: - surf_man->hw_info.num_pipes = 1; - break; - case 1: - surf_man->hw_info.num_pipes = 2; - break; - case 2: - surf_man->hw_info.num_pipes = 4; - break; - case 3: - surf_man->hw_info.num_pipes = 8; - break; - default: - surf_man->hw_info.num_pipes = 8; - surf_man->hw_info.allow_2d = 0; - break; - } - - switch ((tiling_config & 0xf0) >> 4) { - case 0: - surf_man->hw_info.num_banks = 4; - break; - case 1: - surf_man->hw_info.num_banks = 8; - break; - case 2: - surf_man->hw_info.num_banks = 16; - break; - default: - surf_man->hw_info.num_banks = 8; - surf_man->hw_info.allow_2d = 0; - break; - } - - switch ((tiling_config & 0xf00) >> 8) { - case 0: - surf_man->hw_info.group_bytes = 256; - break; - case 1: - surf_man->hw_info.group_bytes = 512; - break; - default: - surf_man->hw_info.group_bytes = 256; - surf_man->hw_info.allow_2d = 0; - break; - } - - switch ((tiling_config & 0xf000) >> 12) { - case 0: - surf_man->hw_info.row_size = 1024; - break; - case 1: - surf_man->hw_info.row_size = 2048; - break; - case 2: - surf_man->hw_info.row_size = 4096; - break; - default: - surf_man->hw_info.row_size = 4096; - surf_man->hw_info.allow_2d = 0; - break; - } - return 0; -} - -static int si_surface_sanity(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - unsigned mode, unsigned *tile_mode, unsigned *stencil_tile_mode) -{ - uint32_t gb_tile_mode; - - /* check surface dimension */ - if (surf->npix_x > 16384 || surf->npix_y > 16384 || surf->npix_z > 16384) { - return -EINVAL; - } - - /* check mipmap last_level */ - if (surf->last_level > 15) { - return -EINVAL; - } - - /* force 1d on kernel that can't do 2d */ - if (mode > RADEON_SURF_MODE_1D && - (!surf_man->hw_info.allow_2d || !(surf->flags & RADEON_SURF_HAS_TILE_MODE_INDEX))) { - if (surf->nsamples > 1) { - fprintf(stderr, "radeon: Cannot use 1D tiling for an MSAA surface (%i).\n", __LINE__); - return -EFAULT; - } - mode = RADEON_SURF_MODE_1D; - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(mode, MODE); - } - - if (surf->nsamples > 1 && mode != RADEON_SURF_MODE_2D) { - return -EINVAL; - } - - if (!surf->tile_split) { - /* default value */ - surf->mtilea = 1; - surf->bankw = 1; - surf->bankw = 1; - surf->tile_split = 64; - surf->stencil_tile_split = 64; - } - - switch (mode) { - case RADEON_SURF_MODE_2D: - if (surf->flags & RADEON_SURF_SBUFFER) { - switch (surf->nsamples) { - case 1: - *stencil_tile_mode = SI_TILE_MODE_DEPTH_STENCIL_2D; - break; - case 2: - *stencil_tile_mode = SI_TILE_MODE_DEPTH_STENCIL_2D_2AA; - break; - case 4: - *stencil_tile_mode = SI_TILE_MODE_DEPTH_STENCIL_2D_4AA; - break; - case 8: - *stencil_tile_mode = SI_TILE_MODE_DEPTH_STENCIL_2D_8AA; - break; - default: - return -EINVAL; - } - /* retrieve tiling mode value */ - gb_tile_mode = surf_man->hw_info.tile_mode_array[*stencil_tile_mode]; - si_gb_tile_mode(gb_tile_mode, NULL, NULL, NULL, NULL, NULL, &surf->stencil_tile_split); - } - if (surf->flags & RADEON_SURF_ZBUFFER) { - switch (surf->nsamples) { - case 1: - *tile_mode = SI_TILE_MODE_DEPTH_STENCIL_2D; - break; - case 2: - *tile_mode = SI_TILE_MODE_DEPTH_STENCIL_2D_2AA; - break; - case 4: - *tile_mode = SI_TILE_MODE_DEPTH_STENCIL_2D_4AA; - break; - case 8: - *tile_mode = SI_TILE_MODE_DEPTH_STENCIL_2D_8AA; - break; - default: - return -EINVAL; - } - } else if (surf->flags & RADEON_SURF_SCANOUT) { - switch (surf->bpe) { - case 2: - *tile_mode = SI_TILE_MODE_COLOR_2D_SCANOUT_16BPP; - break; - case 4: - *tile_mode = SI_TILE_MODE_COLOR_2D_SCANOUT_32BPP; - break; - default: - return -EINVAL; - } - } else { - switch (surf->bpe) { - case 1: - *tile_mode = SI_TILE_MODE_COLOR_2D_8BPP; - break; - case 2: - *tile_mode = SI_TILE_MODE_COLOR_2D_16BPP; - break; - case 4: - *tile_mode = SI_TILE_MODE_COLOR_2D_32BPP; - break; - case 8: - case 16: - *tile_mode = SI_TILE_MODE_COLOR_2D_64BPP; - break; - default: - return -EINVAL; - } - } - /* retrieve tiling mode value */ - gb_tile_mode = surf_man->hw_info.tile_mode_array[*tile_mode]; - si_gb_tile_mode(gb_tile_mode, NULL, NULL, &surf->mtilea, &surf->bankw, &surf->bankh, &surf->tile_split); - break; - case RADEON_SURF_MODE_1D: - if (surf->flags & RADEON_SURF_SBUFFER) { - *stencil_tile_mode = SI_TILE_MODE_DEPTH_STENCIL_1D; - } - if (surf->flags & RADEON_SURF_ZBUFFER) { - *tile_mode = SI_TILE_MODE_DEPTH_STENCIL_1D; - } else if (surf->flags & RADEON_SURF_SCANOUT) { - *tile_mode = SI_TILE_MODE_COLOR_1D_SCANOUT; - } else { - *tile_mode = SI_TILE_MODE_COLOR_1D; - } - break; - case RADEON_SURF_MODE_LINEAR_ALIGNED: - default: - *tile_mode = SI_TILE_MODE_COLOR_LINEAR_ALIGNED; - } - - return 0; -} - -static void si_surf_minify(struct radeon_surface *surf, - struct radeon_surface_level *surflevel, - unsigned bpe, unsigned level, - uint32_t xalign, uint32_t yalign, uint32_t zalign, - uint32_t slice_align, unsigned offset) -{ - if (level == 0) { - surflevel->npix_x = surf->npix_x; - } else { - surflevel->npix_x = mip_minify(next_power_of_two(surf->npix_x), level); - } - surflevel->npix_y = mip_minify(surf->npix_y, level); - surflevel->npix_z = mip_minify(surf->npix_z, level); - - if (level == 0 && surf->last_level > 0) { - surflevel->nblk_x = (next_power_of_two(surflevel->npix_x) + surf->blk_w - 1) / surf->blk_w; - surflevel->nblk_y = (next_power_of_two(surflevel->npix_y) + surf->blk_h - 1) / surf->blk_h; - surflevel->nblk_z = (next_power_of_two(surflevel->npix_z) + surf->blk_d - 1) / surf->blk_d; - } else { - surflevel->nblk_x = (surflevel->npix_x + surf->blk_w - 1) / surf->blk_w; - surflevel->nblk_y = (surflevel->npix_y + surf->blk_h - 1) / surf->blk_h; - surflevel->nblk_z = (surflevel->npix_z + surf->blk_d - 1) / surf->blk_d; - } - - surflevel->nblk_y = ALIGN(surflevel->nblk_y, yalign); - - /* XXX: Texture sampling uses unexpectedly large pitches in some cases, - * these are just guesses for the rules behind those - */ - if (level == 0 && surf->last_level == 0) - /* Non-mipmap pitch padded to slice alignment */ - /* Using just bpe here breaks stencil blitting; surf->bpe works. */ - xalign = MAX2(xalign, slice_align / surf->bpe); - else if (surflevel->mode == RADEON_SURF_MODE_LINEAR_ALIGNED) - /* Small rows evenly distributed across slice */ - xalign = MAX2(xalign, slice_align / bpe / surflevel->nblk_y); - - surflevel->nblk_x = ALIGN(surflevel->nblk_x, xalign); - surflevel->nblk_z = ALIGN(surflevel->nblk_z, zalign); - - surflevel->offset = offset; - surflevel->pitch_bytes = surflevel->nblk_x * bpe * surf->nsamples; - surflevel->slice_size = ALIGN(surflevel->pitch_bytes * surflevel->nblk_y, slice_align); - - surf->bo_size = offset + surflevel->slice_size * surflevel->nblk_z * surf->array_size; -} - -static void si_surf_minify_2d(struct radeon_surface *surf, - struct radeon_surface_level *surflevel, - unsigned bpe, unsigned level, unsigned slice_pt, - uint32_t xalign, uint32_t yalign, uint32_t zalign, - unsigned mtileb, unsigned offset) -{ - unsigned mtile_pr, mtile_ps; - - if (level == 0) { - surflevel->npix_x = surf->npix_x; - } else { - surflevel->npix_x = mip_minify(next_power_of_two(surf->npix_x), level); - } - surflevel->npix_y = mip_minify(surf->npix_y, level); - surflevel->npix_z = mip_minify(surf->npix_z, level); - - if (level == 0 && surf->last_level > 0) { - surflevel->nblk_x = (next_power_of_two(surflevel->npix_x) + surf->blk_w - 1) / surf->blk_w; - surflevel->nblk_y = (next_power_of_two(surflevel->npix_y) + surf->blk_h - 1) / surf->blk_h; - surflevel->nblk_z = (next_power_of_two(surflevel->npix_z) + surf->blk_d - 1) / surf->blk_d; - } else { - surflevel->nblk_x = (surflevel->npix_x + surf->blk_w - 1) / surf->blk_w; - surflevel->nblk_y = (surflevel->npix_y + surf->blk_h - 1) / surf->blk_h; - surflevel->nblk_z = (surflevel->npix_z + surf->blk_d - 1) / surf->blk_d; - } - - if (surf->nsamples == 1 && surflevel->mode == RADEON_SURF_MODE_2D && - !(surf->flags & RADEON_SURF_FMASK)) { - if (surflevel->nblk_x < xalign || surflevel->nblk_y < yalign) { - surflevel->mode = RADEON_SURF_MODE_1D; - return; - } - } - surflevel->nblk_x = ALIGN(surflevel->nblk_x, xalign); - surflevel->nblk_y = ALIGN(surflevel->nblk_y, yalign); - surflevel->nblk_z = ALIGN(surflevel->nblk_z, zalign); - - /* macro tile per row */ - mtile_pr = surflevel->nblk_x / xalign; - /* macro tile per slice */ - mtile_ps = (mtile_pr * surflevel->nblk_y) / yalign; - surflevel->offset = offset; - surflevel->pitch_bytes = surflevel->nblk_x * bpe * slice_pt; - surflevel->slice_size = mtile_ps * mtileb * slice_pt; - - surf->bo_size = offset + surflevel->slice_size * surflevel->nblk_z * surf->array_size; -} - -static int si_surface_init_linear_aligned(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - unsigned tile_mode, - uint64_t offset, unsigned start_level) -{ - uint32_t xalign, yalign, zalign, slice_align; - unsigned i; - - /* compute alignment */ - if (!start_level) { - surf->bo_alignment = MAX2(256, surf_man->hw_info.group_bytes); - } - xalign = MAX2(8, 64 / surf->bpe); - yalign = 1; - zalign = 1; - slice_align = MAX2(64 * surf->bpe, surf_man->hw_info.group_bytes); - - /* build mipmap tree */ - for (i = start_level; i <= surf->last_level; i++) { - surf->level[i].mode = RADEON_SURF_MODE_LINEAR_ALIGNED; - si_surf_minify(surf, surf->level+i, surf->bpe, i, xalign, yalign, zalign, slice_align, offset); - /* level0 and first mipmap need to have alignment */ - offset = surf->bo_size; - if ((i == 0)) { - offset = ALIGN(offset, surf->bo_alignment); - } - if (surf->flags & RADEON_SURF_HAS_TILE_MODE_INDEX) { - surf->tiling_index[i] = tile_mode; - } - } - return 0; -} - -static int si_surface_init_1d(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - struct radeon_surface_level *level, - unsigned bpe, unsigned tile_mode, - uint64_t offset, unsigned start_level) -{ - uint32_t xalign, yalign, zalign, slice_align; - unsigned alignment = MAX2(256, surf_man->hw_info.group_bytes); - unsigned i; - - /* compute alignment */ - xalign = 8; - yalign = 8; - zalign = 1; - slice_align = surf_man->hw_info.group_bytes; - if (surf->flags & RADEON_SURF_SCANOUT) { - xalign = MAX2((bpe == 1) ? 64 : 32, xalign); - } - - if (start_level <= 1) { - surf->bo_alignment = MAX2(surf->bo_alignment, alignment); - - if (offset) { - offset = ALIGN(offset, alignment); - } - } - - /* build mipmap tree */ - for (i = start_level; i <= surf->last_level; i++) { - level[i].mode = RADEON_SURF_MODE_1D; - si_surf_minify(surf, level+i, bpe, i, xalign, yalign, zalign, slice_align, offset); - /* level0 and first mipmap need to have alignment */ - offset = surf->bo_size; - if ((i == 0)) { - offset = ALIGN(offset, alignment); - } - if (surf->flags & RADEON_SURF_HAS_TILE_MODE_INDEX) { - if (surf->level == level) { - surf->tiling_index[i] = tile_mode; - /* it's ok because stencil is done after */ - surf->stencil_tiling_index[i] = tile_mode; - } else { - surf->stencil_tiling_index[i] = tile_mode; - } - } - } - return 0; -} - -static int si_surface_init_1d_miptrees(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - unsigned tile_mode, unsigned stencil_tile_mode) -{ - int r; - - r = si_surface_init_1d(surf_man, surf, surf->level, surf->bpe, tile_mode, 0, 0); - if (r) { - return r; - } - - if (surf->flags & RADEON_SURF_SBUFFER) { - r = si_surface_init_1d(surf_man, surf, surf->stencil_level, 1, stencil_tile_mode, surf->bo_size, 0); - surf->stencil_offset = surf->stencil_level[0].offset; - } - return r; -} - -static int si_surface_init_2d(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - struct radeon_surface_level *level, - unsigned bpe, unsigned tile_mode, - unsigned num_pipes, unsigned num_banks, - unsigned tile_split, - uint64_t offset, - unsigned start_level) -{ - uint64_t aligned_offset = offset; - unsigned tilew, tileh, tileb; - unsigned mtilew, mtileh, mtileb; - unsigned slice_pt; - unsigned i; - - /* compute tile values */ - tilew = 8; - tileh = 8; - tileb = tilew * tileh * bpe * surf->nsamples; - /* slices per tile */ - slice_pt = 1; - if (tileb > tile_split && tile_split) { - slice_pt = tileb / tile_split; - } - tileb = tileb / slice_pt; - - /* macro tile width & height */ - mtilew = (tilew * surf->bankw * num_pipes) * surf->mtilea; - mtileh = (tileh * surf->bankh * num_banks) / surf->mtilea; - - /* macro tile bytes */ - mtileb = (mtilew / tilew) * (mtileh / tileh) * tileb; - - if (start_level <= 1) { - unsigned alignment = MAX2(256, mtileb); - surf->bo_alignment = MAX2(surf->bo_alignment, alignment); - - if (aligned_offset) { - aligned_offset = ALIGN(aligned_offset, alignment); - } - } - - /* build mipmap tree */ - for (i = start_level; i <= surf->last_level; i++) { - level[i].mode = RADEON_SURF_MODE_2D; - si_surf_minify_2d(surf, level+i, bpe, i, slice_pt, mtilew, mtileh, 1, mtileb, aligned_offset); - if (level[i].mode == RADEON_SURF_MODE_1D) { - switch (tile_mode) { - case SI_TILE_MODE_COLOR_2D_8BPP: - case SI_TILE_MODE_COLOR_2D_16BPP: - case SI_TILE_MODE_COLOR_2D_32BPP: - case SI_TILE_MODE_COLOR_2D_64BPP: - tile_mode = SI_TILE_MODE_COLOR_1D; - break; - case SI_TILE_MODE_COLOR_2D_SCANOUT_16BPP: - case SI_TILE_MODE_COLOR_2D_SCANOUT_32BPP: - tile_mode = SI_TILE_MODE_COLOR_1D_SCANOUT; - break; - case SI_TILE_MODE_DEPTH_STENCIL_2D: - tile_mode = SI_TILE_MODE_DEPTH_STENCIL_1D; - break; - default: - return -EINVAL; - } - return si_surface_init_1d(surf_man, surf, level, bpe, tile_mode, offset, i); - } - /* level0 and first mipmap need to have alignment */ - aligned_offset = offset = surf->bo_size; - if ((i == 0)) { - aligned_offset = ALIGN(aligned_offset, surf->bo_alignment); - } - if (surf->flags & RADEON_SURF_HAS_TILE_MODE_INDEX) { - if (surf->level == level) { - surf->tiling_index[i] = tile_mode; - /* it's ok because stencil is done after */ - surf->stencil_tiling_index[i] = tile_mode; - } else { - surf->stencil_tiling_index[i] = tile_mode; - } - } - } - return 0; -} - -static int si_surface_init_2d_miptrees(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - unsigned tile_mode, unsigned stencil_tile_mode) -{ - unsigned num_pipes, num_banks; - uint32_t gb_tile_mode; - int r; - - /* retrieve tiling mode value */ - gb_tile_mode = surf_man->hw_info.tile_mode_array[tile_mode]; - si_gb_tile_mode(gb_tile_mode, &num_pipes, &num_banks, NULL, NULL, NULL, NULL); - - r = si_surface_init_2d(surf_man, surf, surf->level, surf->bpe, tile_mode, num_pipes, num_banks, surf->tile_split, 0, 0); - if (r) { - return r; - } - - if (surf->flags & RADEON_SURF_SBUFFER) { - r = si_surface_init_2d(surf_man, surf, surf->stencil_level, 1, stencil_tile_mode, num_pipes, num_banks, surf->stencil_tile_split, surf->bo_size, 0); - surf->stencil_offset = surf->stencil_level[0].offset; - } - return r; -} - -static int si_surface_init(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf) -{ - unsigned mode, tile_mode, stencil_tile_mode; - int r; - - /* MSAA surfaces support the 2D mode only. */ - if (surf->nsamples > 1) { - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_2D, MODE); - } - - /* tiling mode */ - mode = (surf->flags >> RADEON_SURF_MODE_SHIFT) & RADEON_SURF_MODE_MASK; - - if (surf->flags & (RADEON_SURF_ZBUFFER | RADEON_SURF_SBUFFER)) { - /* zbuffer only support 1D or 2D tiled surface */ - switch (mode) { - case RADEON_SURF_MODE_1D: - case RADEON_SURF_MODE_2D: - break; - default: - mode = RADEON_SURF_MODE_1D; - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_1D, MODE); - break; - } - } - - r = si_surface_sanity(surf_man, surf, mode, &tile_mode, &stencil_tile_mode); - if (r) { - return r; - } - - surf->stencil_offset = 0; - surf->bo_alignment = 0; - - /* check tiling mode */ - switch (mode) { - case RADEON_SURF_MODE_LINEAR: - r = r6_surface_init_linear(surf_man, surf, 0, 0); - break; - case RADEON_SURF_MODE_LINEAR_ALIGNED: - r = si_surface_init_linear_aligned(surf_man, surf, tile_mode, 0, 0); - break; - case RADEON_SURF_MODE_1D: - r = si_surface_init_1d_miptrees(surf_man, surf, tile_mode, stencil_tile_mode); - break; - case RADEON_SURF_MODE_2D: - r = si_surface_init_2d_miptrees(surf_man, surf, tile_mode, stencil_tile_mode); - break; - default: - return -EINVAL; - } - return r; -} - -/* - * depending on surface - */ -static int si_surface_best(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf) -{ - unsigned mode, tile_mode, stencil_tile_mode; - - /* tiling mode */ - mode = (surf->flags >> RADEON_SURF_MODE_SHIFT) & RADEON_SURF_MODE_MASK; - - if (surf->flags & (RADEON_SURF_ZBUFFER | RADEON_SURF_SBUFFER) && - !(surf->flags & RADEON_SURF_HAS_TILE_MODE_INDEX)) { - /* depth/stencil force 1d tiling for old mesa */ - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_1D, MODE); - } - - return si_surface_sanity(surf_man, surf, mode, &tile_mode, &stencil_tile_mode); -} - - -/* =========================================================================== - * Sea Islands family - */ -#define CIK__GB_TILE_MODE__PIPE_CONFIG(x) (((x) >> 6) & 0x1f) -#define CIK__PIPE_CONFIG__ADDR_SURF_P2 0 -#define CIK__PIPE_CONFIG__ADDR_SURF_P4_8x16 4 -#define CIK__PIPE_CONFIG__ADDR_SURF_P4_16x16 5 -#define CIK__PIPE_CONFIG__ADDR_SURF_P4_16x32 6 -#define CIK__PIPE_CONFIG__ADDR_SURF_P4_32x32 7 -#define CIK__PIPE_CONFIG__ADDR_SURF_P8_16x16_8x16 8 -#define CIK__PIPE_CONFIG__ADDR_SURF_P8_16x32_8x16 9 -#define CIK__PIPE_CONFIG__ADDR_SURF_P8_32x32_8x16 10 -#define CIK__PIPE_CONFIG__ADDR_SURF_P8_16x32_16x16 11 -#define CIK__PIPE_CONFIG__ADDR_SURF_P8_32x32_16x16 12 -#define CIK__PIPE_CONFIG__ADDR_SURF_P8_32x32_16x32 13 -#define CIK__PIPE_CONFIG__ADDR_SURF_P8_32x64_32x32 14 -#define CIK__PIPE_CONFIG__ADDR_SURF_P16_32X32_8X16 16 -#define CIK__PIPE_CONFIG__ADDR_SURF_P16_32X32_16X16 17 -#define CIK__GB_TILE_MODE__TILE_SPLIT(x) (((x) >> 11) & 0x7) -#define CIK__TILE_SPLIT__64B 0 -#define CIK__TILE_SPLIT__128B 1 -#define CIK__TILE_SPLIT__256B 2 -#define CIK__TILE_SPLIT__512B 3 -#define CIK__TILE_SPLIT__1024B 4 -#define CIK__TILE_SPLIT__2048B 5 -#define CIK__TILE_SPLIT__4096B 6 -#define CIK__GB_TILE_MODE__SAMPLE_SPLIT(x) (((x) >> 25) & 0x3) -#define CIK__SAMPLE_SPLIT__1 0 -#define CIK__SAMPLE_SPLIT__2 1 -#define CIK__SAMPLE_SPLIT__4 2 -#define CIK__SAMPLE_SPLIT__8 3 -#define CIK__GB_MACROTILE_MODE__BANK_WIDTH(x) ((x) & 0x3) -#define CIK__BANK_WIDTH__1 0 -#define CIK__BANK_WIDTH__2 1 -#define CIK__BANK_WIDTH__4 2 -#define CIK__BANK_WIDTH__8 3 -#define CIK__GB_MACROTILE_MODE__BANK_HEIGHT(x) (((x) >> 2) & 0x3) -#define CIK__BANK_HEIGHT__1 0 -#define CIK__BANK_HEIGHT__2 1 -#define CIK__BANK_HEIGHT__4 2 -#define CIK__BANK_HEIGHT__8 3 -#define CIK__GB_MACROTILE_MODE__MACRO_TILE_ASPECT(x) (((x) >> 4) & 0x3) -#define CIK__MACRO_TILE_ASPECT__1 0 -#define CIK__MACRO_TILE_ASPECT__2 1 -#define CIK__MACRO_TILE_ASPECT__4 2 -#define CIK__MACRO_TILE_ASPECT__8 3 -#define CIK__GB_MACROTILE_MODE__NUM_BANKS(x) (((x) >> 6) & 0x3) -#define CIK__NUM_BANKS__2_BANK 0 -#define CIK__NUM_BANKS__4_BANK 1 -#define CIK__NUM_BANKS__8_BANK 2 -#define CIK__NUM_BANKS__16_BANK 3 - - -static void cik_get_2d_params(struct radeon_surface_manager *surf_man, - unsigned bpe, unsigned nsamples, bool is_color, - unsigned tile_mode, - uint32_t *num_pipes, - uint32_t *tile_split_ptr, - uint32_t *num_banks, - uint32_t *macro_tile_aspect, - uint32_t *bank_w, - uint32_t *bank_h) -{ - uint32_t gb_tile_mode = surf_man->hw_info.tile_mode_array[tile_mode]; - unsigned tileb_1x, tileb; - unsigned gb_macrotile_mode; - unsigned macrotile_index; - unsigned tile_split, sample_split; - - if (num_pipes) { - switch (CIK__GB_TILE_MODE__PIPE_CONFIG(gb_tile_mode)) { - case CIK__PIPE_CONFIG__ADDR_SURF_P2: - default: - *num_pipes = 2; - break; - case CIK__PIPE_CONFIG__ADDR_SURF_P4_8x16: - case CIK__PIPE_CONFIG__ADDR_SURF_P4_16x16: - case CIK__PIPE_CONFIG__ADDR_SURF_P4_16x32: - case CIK__PIPE_CONFIG__ADDR_SURF_P4_32x32: - *num_pipes = 4; - break; - case CIK__PIPE_CONFIG__ADDR_SURF_P8_16x16_8x16: - case CIK__PIPE_CONFIG__ADDR_SURF_P8_16x32_8x16: - case CIK__PIPE_CONFIG__ADDR_SURF_P8_32x32_8x16: - case CIK__PIPE_CONFIG__ADDR_SURF_P8_16x32_16x16: - case CIK__PIPE_CONFIG__ADDR_SURF_P8_32x32_16x16: - case CIK__PIPE_CONFIG__ADDR_SURF_P8_32x32_16x32: - case CIK__PIPE_CONFIG__ADDR_SURF_P8_32x64_32x32: - *num_pipes = 8; - break; - case CIK__PIPE_CONFIG__ADDR_SURF_P16_32X32_8X16: - case CIK__PIPE_CONFIG__ADDR_SURF_P16_32X32_16X16: - *num_pipes = 16; - break; - } - } - switch (CIK__GB_TILE_MODE__TILE_SPLIT(gb_tile_mode)) { - default: - case CIK__TILE_SPLIT__64B: - tile_split = 64; - break; - case CIK__TILE_SPLIT__128B: - tile_split = 128; - break; - case CIK__TILE_SPLIT__256B: - tile_split = 256; - break; - case CIK__TILE_SPLIT__512B: - tile_split = 512; - break; - case CIK__TILE_SPLIT__1024B: - tile_split = 1024; - break; - case CIK__TILE_SPLIT__2048B: - tile_split = 2048; - break; - case CIK__TILE_SPLIT__4096B: - tile_split = 4096; - break; - } - switch (CIK__GB_TILE_MODE__SAMPLE_SPLIT(gb_tile_mode)) { - default: - case CIK__SAMPLE_SPLIT__1: - sample_split = 1; - break; - case CIK__SAMPLE_SPLIT__2: - sample_split = 1; - break; - case CIK__SAMPLE_SPLIT__4: - sample_split = 4; - break; - case CIK__SAMPLE_SPLIT__8: - sample_split = 8; - break; - } - - /* Adjust the tile split. */ - tileb_1x = 8 * 8 * bpe; - if (is_color) { - tile_split = MAX2(256, sample_split * tileb_1x); - } - tile_split = MIN2(surf_man->hw_info.row_size, tile_split); - - /* Determine the macrotile index. */ - tileb = MIN2(tile_split, nsamples * tileb_1x); - - for (macrotile_index = 0; tileb > 64; macrotile_index++) { - tileb >>= 1; - } - gb_macrotile_mode = surf_man->hw_info.macrotile_mode_array[macrotile_index]; - - if (tile_split_ptr) { - *tile_split_ptr = tile_split; - } - if (num_banks) { - switch (CIK__GB_MACROTILE_MODE__NUM_BANKS(gb_macrotile_mode)) { - default: - case CIK__NUM_BANKS__2_BANK: - *num_banks = 2; - break; - case CIK__NUM_BANKS__4_BANK: - *num_banks = 4; - break; - case CIK__NUM_BANKS__8_BANK: - *num_banks = 8; - break; - case CIK__NUM_BANKS__16_BANK: - *num_banks = 16; - break; - } - } - if (macro_tile_aspect) { - switch (CIK__GB_MACROTILE_MODE__MACRO_TILE_ASPECT(gb_macrotile_mode)) { - default: - case CIK__MACRO_TILE_ASPECT__1: - *macro_tile_aspect = 1; - break; - case CIK__MACRO_TILE_ASPECT__2: - *macro_tile_aspect = 2; - break; - case CIK__MACRO_TILE_ASPECT__4: - *macro_tile_aspect = 4; - break; - case CIK__MACRO_TILE_ASPECT__8: - *macro_tile_aspect = 8; - break; - } - } - if (bank_w) { - switch (CIK__GB_MACROTILE_MODE__BANK_WIDTH(gb_macrotile_mode)) { - default: - case CIK__BANK_WIDTH__1: - *bank_w = 1; - break; - case CIK__BANK_WIDTH__2: - *bank_w = 2; - break; - case CIK__BANK_WIDTH__4: - *bank_w = 4; - break; - case CIK__BANK_WIDTH__8: - *bank_w = 8; - break; - } - } - if (bank_h) { - switch (CIK__GB_MACROTILE_MODE__BANK_HEIGHT(gb_macrotile_mode)) { - default: - case CIK__BANK_HEIGHT__1: - *bank_h = 1; - break; - case CIK__BANK_HEIGHT__2: - *bank_h = 2; - break; - case CIK__BANK_HEIGHT__4: - *bank_h = 4; - break; - case CIK__BANK_HEIGHT__8: - *bank_h = 8; - break; - } - } -} - -static int cik_init_hw_info(struct radeon_surface_manager *surf_man) -{ - uint32_t tiling_config; - drmVersionPtr version; - int r; - - r = radeon_get_value(surf_man->fd, RADEON_INFO_TILING_CONFIG, - &tiling_config); - if (r) { - return r; - } - - surf_man->hw_info.allow_2d = 0; - version = drmGetVersion(surf_man->fd); - if (version && version->version_minor >= 35) { - if (!radeon_get_value(surf_man->fd, RADEON_INFO_SI_TILE_MODE_ARRAY, surf_man->hw_info.tile_mode_array) && - !radeon_get_value(surf_man->fd, RADEON_INFO_CIK_MACROTILE_MODE_ARRAY, surf_man->hw_info.macrotile_mode_array)) { - surf_man->hw_info.allow_2d = 1; - } - } - drmFreeVersion(version); - - switch (tiling_config & 0xf) { - case 0: - surf_man->hw_info.num_pipes = 1; - break; - case 1: - surf_man->hw_info.num_pipes = 2; - break; - case 2: - surf_man->hw_info.num_pipes = 4; - break; - case 3: - surf_man->hw_info.num_pipes = 8; - break; - default: - surf_man->hw_info.num_pipes = 8; - surf_man->hw_info.allow_2d = 0; - break; - } - - switch ((tiling_config & 0xf0) >> 4) { - case 0: - surf_man->hw_info.num_banks = 4; - break; - case 1: - surf_man->hw_info.num_banks = 8; - break; - case 2: - surf_man->hw_info.num_banks = 16; - break; - default: - surf_man->hw_info.num_banks = 8; - surf_man->hw_info.allow_2d = 0; - break; - } - - switch ((tiling_config & 0xf00) >> 8) { - case 0: - surf_man->hw_info.group_bytes = 256; - break; - case 1: - surf_man->hw_info.group_bytes = 512; - break; - default: - surf_man->hw_info.group_bytes = 256; - surf_man->hw_info.allow_2d = 0; - break; - } - - switch ((tiling_config & 0xf000) >> 12) { - case 0: - surf_man->hw_info.row_size = 1024; - break; - case 1: - surf_man->hw_info.row_size = 2048; - break; - case 2: - surf_man->hw_info.row_size = 4096; - break; - default: - surf_man->hw_info.row_size = 4096; - surf_man->hw_info.allow_2d = 0; - break; - } - return 0; -} - -static int cik_surface_sanity(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - unsigned mode, unsigned *tile_mode, unsigned *stencil_tile_mode) -{ - /* check surface dimension */ - if (surf->npix_x > 16384 || surf->npix_y > 16384 || surf->npix_z > 16384) { - return -EINVAL; - } - - /* check mipmap last_level */ - if (surf->last_level > 15) { - return -EINVAL; - } - - /* force 1d on kernel that can't do 2d */ - if (mode > RADEON_SURF_MODE_1D && - (!surf_man->hw_info.allow_2d || !(surf->flags & RADEON_SURF_HAS_TILE_MODE_INDEX))) { - if (surf->nsamples > 1) { - fprintf(stderr, "radeon: Cannot use 1D tiling for an MSAA surface (%i).\n", __LINE__); - return -EFAULT; - } - mode = RADEON_SURF_MODE_1D; - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(mode, MODE); - } - - if (surf->nsamples > 1 && mode != RADEON_SURF_MODE_2D) { - return -EINVAL; - } - - if (!surf->tile_split) { - /* default value */ - surf->mtilea = 1; - surf->bankw = 1; - surf->bankw = 1; - surf->tile_split = 64; - surf->stencil_tile_split = 64; - } - - switch (mode) { - case RADEON_SURF_MODE_2D: { - if (surf->flags & RADEON_SURF_Z_OR_SBUFFER) { - switch (surf->nsamples) { - case 1: - *tile_mode = CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_64; - break; - case 2: - case 4: - *tile_mode = CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_128; - break; - case 8: - *tile_mode = CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_256; - break; - default: - return -EINVAL; - } - - if (surf->flags & RADEON_SURF_SBUFFER) { - *stencil_tile_mode = *tile_mode; - - cik_get_2d_params(surf_man, 1, surf->nsamples, false, - *stencil_tile_mode, NULL, - &surf->stencil_tile_split, - NULL, NULL, NULL, NULL); - } - } else if (surf->flags & RADEON_SURF_SCANOUT) { - *tile_mode = CIK_TILE_MODE_COLOR_2D_SCANOUT; - } else { - *tile_mode = CIK_TILE_MODE_COLOR_2D; - } - - /* retrieve tiling mode values */ - cik_get_2d_params(surf_man, surf->bpe, surf->nsamples, - !(surf->flags & RADEON_SURF_Z_OR_SBUFFER), *tile_mode, - NULL, &surf->tile_split, NULL, &surf->mtilea, - &surf->bankw, &surf->bankh); - break; - } - case RADEON_SURF_MODE_1D: - if (surf->flags & RADEON_SURF_SBUFFER) { - *stencil_tile_mode = CIK_TILE_MODE_DEPTH_STENCIL_1D; - } - if (surf->flags & RADEON_SURF_ZBUFFER) { - *tile_mode = CIK_TILE_MODE_DEPTH_STENCIL_1D; - } else if (surf->flags & RADEON_SURF_SCANOUT) { - *tile_mode = SI_TILE_MODE_COLOR_1D_SCANOUT; - } else { - *tile_mode = SI_TILE_MODE_COLOR_1D; - } - break; - case RADEON_SURF_MODE_LINEAR_ALIGNED: - default: - *tile_mode = SI_TILE_MODE_COLOR_LINEAR_ALIGNED; - } - - return 0; -} - -static int cik_surface_init_2d(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - struct radeon_surface_level *level, - unsigned bpe, unsigned tile_mode, - unsigned tile_split, - unsigned num_pipes, unsigned num_banks, - uint64_t offset, - unsigned start_level) -{ - uint64_t aligned_offset = offset; - unsigned tilew, tileh, tileb_1x, tileb; - unsigned mtilew, mtileh, mtileb; - unsigned slice_pt; - unsigned i; - - /* compute tile values */ - tilew = 8; - tileh = 8; - tileb_1x = tilew * tileh * bpe; - - tile_split = MIN2(surf_man->hw_info.row_size, tile_split); - - tileb = surf->nsamples * tileb_1x; - - /* slices per tile */ - slice_pt = 1; - if (tileb > tile_split && tile_split) { - slice_pt = tileb / tile_split; - tileb = tileb / slice_pt; - } - - /* macro tile width & height */ - mtilew = (tilew * surf->bankw * num_pipes) * surf->mtilea; - mtileh = (tileh * surf->bankh * num_banks) / surf->mtilea; - - /* macro tile bytes */ - mtileb = (mtilew / tilew) * (mtileh / tileh) * tileb; - - if (start_level <= 1) { - unsigned alignment = MAX2(256, mtileb); - surf->bo_alignment = MAX2(surf->bo_alignment, alignment); - - if (aligned_offset) { - aligned_offset = ALIGN(aligned_offset, alignment); - } - } - - /* build mipmap tree */ - for (i = start_level; i <= surf->last_level; i++) { - level[i].mode = RADEON_SURF_MODE_2D; - si_surf_minify_2d(surf, level+i, bpe, i, slice_pt, mtilew, mtileh, 1, mtileb, aligned_offset); - if (level[i].mode == RADEON_SURF_MODE_1D) { - switch (tile_mode) { - case CIK_TILE_MODE_COLOR_2D: - tile_mode = SI_TILE_MODE_COLOR_1D; - break; - case CIK_TILE_MODE_COLOR_2D_SCANOUT: - tile_mode = SI_TILE_MODE_COLOR_1D_SCANOUT; - break; - case CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_64: - case CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_128: - case CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_256: - case CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_512: - case CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_ROW_SIZE: - tile_mode = CIK_TILE_MODE_DEPTH_STENCIL_1D; - break; - default: - return -EINVAL; - } - return si_surface_init_1d(surf_man, surf, level, bpe, tile_mode, offset, i); - } - /* level0 and first mipmap need to have alignment */ - aligned_offset = offset = surf->bo_size; - if (i == 0) { - aligned_offset = ALIGN(aligned_offset, surf->bo_alignment); - } - if (surf->flags & RADEON_SURF_HAS_TILE_MODE_INDEX) { - if (surf->level == level) { - surf->tiling_index[i] = tile_mode; - /* it's ok because stencil is done after */ - surf->stencil_tiling_index[i] = tile_mode; - } else { - surf->stencil_tiling_index[i] = tile_mode; - } - } - } - return 0; -} - -static int cik_surface_init_2d_miptrees(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - unsigned tile_mode, unsigned stencil_tile_mode) -{ - int r; - uint32_t num_pipes, num_banks; - - cik_get_2d_params(surf_man, surf->bpe, surf->nsamples, - !(surf->flags & RADEON_SURF_Z_OR_SBUFFER), tile_mode, - &num_pipes, NULL, &num_banks, NULL, NULL, NULL); - - r = cik_surface_init_2d(surf_man, surf, surf->level, surf->bpe, tile_mode, - surf->tile_split, num_pipes, num_banks, 0, 0); - if (r) { - return r; - } - - if (surf->flags & RADEON_SURF_SBUFFER) { - r = cik_surface_init_2d(surf_man, surf, surf->stencil_level, 1, stencil_tile_mode, - surf->stencil_tile_split, num_pipes, num_banks, - surf->bo_size, 0); - surf->stencil_offset = surf->stencil_level[0].offset; - } - return r; -} - -static int cik_surface_init(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf) -{ - unsigned mode, tile_mode, stencil_tile_mode; - int r; - - /* MSAA surfaces support the 2D mode only. */ - if (surf->nsamples > 1) { - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_2D, MODE); - } - - /* tiling mode */ - mode = (surf->flags >> RADEON_SURF_MODE_SHIFT) & RADEON_SURF_MODE_MASK; - - if (surf->flags & (RADEON_SURF_ZBUFFER | RADEON_SURF_SBUFFER)) { - /* zbuffer only support 1D or 2D tiled surface */ - switch (mode) { - case RADEON_SURF_MODE_1D: - case RADEON_SURF_MODE_2D: - break; - default: - mode = RADEON_SURF_MODE_1D; - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_1D, MODE); - break; - } - } - - r = cik_surface_sanity(surf_man, surf, mode, &tile_mode, &stencil_tile_mode); - if (r) { - return r; - } - - surf->stencil_offset = 0; - surf->bo_alignment = 0; - - /* check tiling mode */ - switch (mode) { - case RADEON_SURF_MODE_LINEAR: - r = r6_surface_init_linear(surf_man, surf, 0, 0); - break; - case RADEON_SURF_MODE_LINEAR_ALIGNED: - r = si_surface_init_linear_aligned(surf_man, surf, tile_mode, 0, 0); - break; - case RADEON_SURF_MODE_1D: - r = si_surface_init_1d_miptrees(surf_man, surf, tile_mode, stencil_tile_mode); - break; - case RADEON_SURF_MODE_2D: - r = cik_surface_init_2d_miptrees(surf_man, surf, tile_mode, stencil_tile_mode); - break; - default: - return -EINVAL; - } - return r; -} - -/* - * depending on surface - */ -static int cik_surface_best(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf) -{ - unsigned mode, tile_mode, stencil_tile_mode; - - /* tiling mode */ - mode = (surf->flags >> RADEON_SURF_MODE_SHIFT) & RADEON_SURF_MODE_MASK; - - if (surf->flags & (RADEON_SURF_ZBUFFER | RADEON_SURF_SBUFFER) && - !(surf->flags & RADEON_SURF_HAS_TILE_MODE_INDEX)) { - /* depth/stencil force 1d tiling for old mesa */ - surf->flags = RADEON_SURF_CLR(surf->flags, MODE); - surf->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_1D, MODE); - } - - return cik_surface_sanity(surf_man, surf, mode, &tile_mode, &stencil_tile_mode); -} - - -/* =========================================================================== - * public API - */ -struct radeon_surface_manager *radeon_surface_manager_new(int fd) -{ - struct radeon_surface_manager *surf_man; - - surf_man = calloc(1, sizeof(struct radeon_surface_manager)); - if (surf_man == NULL) { - return NULL; - } - surf_man->fd = fd; - if (radeon_get_value(fd, RADEON_INFO_DEVICE_ID, &surf_man->device_id)) { - goto out_err; - } - if (radeon_get_family(surf_man)) { - goto out_err; - } - - if (surf_man->family <= CHIP_RV740) { - if (r6_init_hw_info(surf_man)) { - goto out_err; - } - surf_man->surface_init = &r6_surface_init; - surf_man->surface_best = &r6_surface_best; - } else if (surf_man->family <= CHIP_ARUBA) { - if (eg_init_hw_info(surf_man)) { - goto out_err; - } - surf_man->surface_init = &eg_surface_init; - surf_man->surface_best = &eg_surface_best; - } else if (surf_man->family < CHIP_BONAIRE) { - if (si_init_hw_info(surf_man)) { - goto out_err; - } - surf_man->surface_init = &si_surface_init; - surf_man->surface_best = &si_surface_best; - } else { - if (cik_init_hw_info(surf_man)) { - goto out_err; - } - surf_man->surface_init = &cik_surface_init; - surf_man->surface_best = &cik_surface_best; - } - - return surf_man; -out_err: - free(surf_man); - return NULL; -} - -void radeon_surface_manager_free(struct radeon_surface_manager *surf_man) -{ - free(surf_man); -} - -static int radeon_surface_sanity(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf, - unsigned type, - unsigned mode) -{ - if (surf_man == NULL || surf_man->surface_init == NULL || surf == NULL) { - return -EINVAL; - } - - /* all dimension must be at least 1 ! */ - if (!surf->npix_x || !surf->npix_y || !surf->npix_z) { - return -EINVAL; - } - if (!surf->blk_w || !surf->blk_h || !surf->blk_d) { - return -EINVAL; - } - if (!surf->array_size) { - return -EINVAL; - } - /* array size must be a power of 2 */ - surf->array_size = next_power_of_two(surf->array_size); - - switch (surf->nsamples) { - case 1: - case 2: - case 4: - case 8: - break; - default: - return -EINVAL; - } - /* check type */ - switch (type) { - case RADEON_SURF_TYPE_1D: - if (surf->npix_y > 1) { - return -EINVAL; - } - case RADEON_SURF_TYPE_2D: - if (surf->npix_z > 1) { - return -EINVAL; - } - break; - case RADEON_SURF_TYPE_CUBEMAP: - if (surf->npix_z > 1) { - return -EINVAL; - } - /* deal with cubemap as they were texture array */ - if (surf_man->family >= CHIP_RV770) { - surf->array_size = 8; - } else { - surf->array_size = 6; - } - break; - case RADEON_SURF_TYPE_3D: - break; - case RADEON_SURF_TYPE_1D_ARRAY: - if (surf->npix_y > 1) { - return -EINVAL; - } - case RADEON_SURF_TYPE_2D_ARRAY: - break; - default: - return -EINVAL; - } - return 0; -} - -int radeon_surface_init(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf) -{ - unsigned mode, type; - int r; - - type = RADEON_SURF_GET(surf->flags, TYPE); - mode = RADEON_SURF_GET(surf->flags, MODE); - - r = radeon_surface_sanity(surf_man, surf, type, mode); - if (r) { - return r; - } - return surf_man->surface_init(surf_man, surf); -} - -int radeon_surface_best(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf) -{ - unsigned mode, type; - int r; - - type = RADEON_SURF_GET(surf->flags, TYPE); - mode = RADEON_SURF_GET(surf->flags, MODE); - - r = radeon_surface_sanity(surf_man, surf, type, mode); - if (r) { - return r; - } - return surf_man->surface_best(surf_man, surf); -} diff -Nru libdrm-2.4.52/radeon/radeon_surface.h libdrm-2.4.52+really2.4.21/radeon/radeon_surface.h --- libdrm-2.4.52/radeon/radeon_surface.h 2013-12-29 06:05:33.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/radeon/radeon_surface.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,149 +0,0 @@ -/* - * Copyright © 2011 Red Hat All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS - * AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - * USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - */ -/* - * Authors: - * Jérôme Glisse - */ -#ifndef RADEON_SURFACE_H -#define RADEON_SURFACE_H - -/* Note : - * - * For texture array, the n layer are stored one after the other within each - * mipmap level. 0 value for field than can be hint is always valid. - */ - -#define RADEON_SURF_MAX_LEVEL 32 - -#define RADEON_SURF_TYPE_MASK 0xFF -#define RADEON_SURF_TYPE_SHIFT 0 -#define RADEON_SURF_TYPE_1D 0 -#define RADEON_SURF_TYPE_2D 1 -#define RADEON_SURF_TYPE_3D 2 -#define RADEON_SURF_TYPE_CUBEMAP 3 -#define RADEON_SURF_TYPE_1D_ARRAY 4 -#define RADEON_SURF_TYPE_2D_ARRAY 5 -#define RADEON_SURF_MODE_MASK 0xFF -#define RADEON_SURF_MODE_SHIFT 8 -#define RADEON_SURF_MODE_LINEAR 0 -#define RADEON_SURF_MODE_LINEAR_ALIGNED 1 -#define RADEON_SURF_MODE_1D 2 -#define RADEON_SURF_MODE_2D 3 -#define RADEON_SURF_SCANOUT (1 << 16) -#define RADEON_SURF_ZBUFFER (1 << 17) -#define RADEON_SURF_SBUFFER (1 << 18) -#define RADEON_SURF_Z_OR_SBUFFER (RADEON_SURF_ZBUFFER | RADEON_SURF_SBUFFER) -#define RADEON_SURF_HAS_SBUFFER_MIPTREE (1 << 19) -#define RADEON_SURF_HAS_TILE_MODE_INDEX (1 << 20) -#define RADEON_SURF_FMASK (1 << 21) - -#define RADEON_SURF_GET(v, field) (((v) >> RADEON_SURF_ ## field ## _SHIFT) & RADEON_SURF_ ## field ## _MASK) -#define RADEON_SURF_SET(v, field) (((v) & RADEON_SURF_ ## field ## _MASK) << RADEON_SURF_ ## field ## _SHIFT) -#define RADEON_SURF_CLR(v, field) ((v) & ~(RADEON_SURF_ ## field ## _MASK << RADEON_SURF_ ## field ## _SHIFT)) - -/* first field up to mode need to match r6 struct so that we can reuse - * same function for linear & linear aligned - */ -struct radeon_surface_level { - uint64_t offset; - uint64_t slice_size; - uint32_t npix_x; - uint32_t npix_y; - uint32_t npix_z; - uint32_t nblk_x; - uint32_t nblk_y; - uint32_t nblk_z; - uint32_t pitch_bytes; - uint32_t mode; -}; - -enum si_tiling_mode { - SI_TILING_AUTO = 0, - - SI_TILING_COLOR_1D, - SI_TILING_COLOR_1D_SCANOUT, - SI_TILING_COLOR_2D_8BPP, - SI_TILING_COLOR_2D_16BPP, - SI_TILING_COLOR_2D_32BPP, - SI_TILING_COLOR_2D_64BPP, - SI_TILING_COLOR_2D_SCANOUT_16BPP, - SI_TILING_COLOR_2D_SCANOUT_32BPP, - SI_TILING_COLOR_LINEAR, - - SI_TILING_STENCIL_1D, - SI_TILING_STENCIL_2D, - SI_TILING_STENCIL_2D_2AA, - SI_TILING_STENCIL_2D_4AA, - SI_TILING_STENCIL_2D_8AA, - - SI_TILING_DEPTH_1D, - SI_TILING_DEPTH_2D, - SI_TILING_DEPTH_2D_2AA, - SI_TILING_DEPTH_2D_4AA, - SI_TILING_DEPTH_2D_8AA, - - SI_TILING_LAST_MODE, -}; - -struct radeon_surface { - uint32_t npix_x; - uint32_t npix_y; - uint32_t npix_z; - uint32_t blk_w; - uint32_t blk_h; - uint32_t blk_d; - uint32_t array_size; - uint32_t last_level; - uint32_t bpe; - uint32_t nsamples; - uint32_t flags; - /* Following is updated/fill by the allocator. It's allowed to - * set some of the value but they are use as hint and can be - * overridden (things lile bankw/bankh on evergreen for - * instance). - */ - uint64_t bo_size; - uint64_t bo_alignment; - /* apply to eg */ - uint32_t bankw; - uint32_t bankh; - uint32_t mtilea; - uint32_t tile_split; - uint32_t stencil_tile_split; - uint64_t stencil_offset; - struct radeon_surface_level level[RADEON_SURF_MAX_LEVEL]; - struct radeon_surface_level stencil_level[RADEON_SURF_MAX_LEVEL]; - uint32_t tiling_index[RADEON_SURF_MAX_LEVEL]; - uint32_t stencil_tiling_index[RADEON_SURF_MAX_LEVEL]; -}; - -struct radeon_surface_manager *radeon_surface_manager_new(int fd); -void radeon_surface_manager_free(struct radeon_surface_manager *surf_man); -int radeon_surface_init(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf); -int radeon_surface_best(struct radeon_surface_manager *surf_man, - struct radeon_surface *surf); - -#endif diff -Nru libdrm-2.4.52/tests/drmtest.c libdrm-2.4.52+really2.4.21/tests/drmtest.c --- libdrm-2.4.52/tests/drmtest.c 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/drmtest.c 2010-06-07 01:11:45.000000000 +0000 @@ -62,7 +62,6 @@ struct udev_device *device, *parent; struct udev_list_entry *entry; const char *pci_id, *path; - const char *usub, *dnode; int fd; udev = udev_new(); @@ -79,17 +78,13 @@ path = udev_list_entry_get_name(entry); device = udev_device_new_from_syspath(udev, path); parent = udev_device_get_parent(device); - usub = udev_device_get_subsystem(parent); /* Filter out KMS output devices. */ - if (!usub || (strcmp(usub, "pci") != 0)) + if (strcmp(udev_device_get_subsystem(parent), "pci") != 0) continue; pci_id = udev_device_get_property_value(parent, "PCI_ID"); if (fnmatch(pci_glob, pci_id, 0) != 0) continue; - dnode = udev_device_get_devnode(device); - if (strstr(dnode, "control")) - continue; - fd = open(dnode, O_RDWR); + fd = open(udev_device_get_devnode(device), O_RDWR); if (fd < 0) continue; if ((flags & DRM_TEST_MASTER) && !is_master(fd)) { @@ -112,7 +107,7 @@ if (fd < 0) { fprintf(stderr, "failed to open any drm device\n"); - exit(0); + abort(); } return fd; @@ -127,7 +122,7 @@ if (fd < 0) { fprintf(stderr, "failed to open any drm device\n"); - exit(0); + abort(); } return fd; diff -Nru libdrm-2.4.52/tests/exynos/exynos_fimg2d_test.c libdrm-2.4.52+really2.4.21/tests/exynos/exynos_fimg2d_test.c --- libdrm-2.4.52/tests/exynos/exynos_fimg2d_test.c 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/exynos/exynos_fimg2d_test.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,695 +0,0 @@ -/* - * Copyright (C) 2013 Samsung Electronics Co.Ltd - * Authors: - * Inki Dae - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include - -#include "exynos_drm.h" -#include "exynos_drmif.h" -#include "fimg2d.h" - -#define DRM_MODULE_NAME "exynos" -#define MAX_TEST_CASE 8 - -static unsigned int screen_width, screen_height; - -/* - * A structure to test fimg2d hw. - * - * @solid_fild: fill given color data to source buffer. - * @copy: copy source to destination buffer. - * @copy_with_scale: copy source to destination buffer scaling up or - * down properly. - * @blend: blend source to destination buffer. - */ -struct fimg2d_test_case { - int (*solid_fill)(struct exynos_device *dev, struct exynos_bo *dst); - int (*copy)(struct exynos_device *dev, struct exynos_bo *src, - struct exynos_bo *dst, enum e_g2d_buf_type); - int (*copy_with_scale)(struct exynos_device *dev, - struct exynos_bo *src, struct exynos_bo *dst, - enum e_g2d_buf_type); - int (*blend)(struct exynos_device *dev, - struct exynos_bo *src, struct exynos_bo *dst, - enum e_g2d_buf_type); -}; - -struct connector { - uint32_t id; - char mode_str[64]; - char format_str[5]; - unsigned int fourcc; - drmModeModeInfo *mode; - drmModeEncoder *encoder; - int crtc; - int pipe; - int plane_zpos; - unsigned int fb_id[2], current_fb_id; - struct timeval start; - - int swap_count; -}; - -static void connector_find_mode(int fd, struct connector *c, - drmModeRes *resources) -{ - drmModeConnector *connector; - int i, j; - - /* First, find the connector & mode */ - c->mode = NULL; - for (i = 0; i < resources->count_connectors; i++) { - connector = drmModeGetConnector(fd, resources->connectors[i]); - - if (!connector) { - fprintf(stderr, "could not get connector %i: %s\n", - resources->connectors[i], strerror(errno)); - drmModeFreeConnector(connector); - continue; - } - - if (!connector->count_modes) { - drmModeFreeConnector(connector); - continue; - } - - if (connector->connector_id != c->id) { - drmModeFreeConnector(connector); - continue; - } - - for (j = 0; j < connector->count_modes; j++) { - c->mode = &connector->modes[j]; - if (!strcmp(c->mode->name, c->mode_str)) - break; - } - - /* Found it, break out */ - if (c->mode) - break; - - drmModeFreeConnector(connector); - } - - if (!c->mode) { - fprintf(stderr, "failed to find mode \"%s\"\n", c->mode_str); - return; - } - - /* Now get the encoder */ - for (i = 0; i < resources->count_encoders; i++) { - c->encoder = drmModeGetEncoder(fd, resources->encoders[i]); - - if (!c->encoder) { - fprintf(stderr, "could not get encoder %i: %s\n", - resources->encoders[i], strerror(errno)); - drmModeFreeEncoder(c->encoder); - continue; - } - - if (c->encoder->encoder_id == connector->encoder_id) - break; - - drmModeFreeEncoder(c->encoder); - } - - if (c->crtc == -1) - c->crtc = c->encoder->crtc_id; -} - -static int connector_find_plane(int fd, unsigned int *plane_id) -{ - drmModePlaneRes *plane_resources; - drmModePlane *ovr; - int i; - - plane_resources = drmModeGetPlaneResources(fd); - if (!plane_resources) { - fprintf(stderr, "drmModeGetPlaneResources failed: %s\n", - strerror(errno)); - return -1; - } - - for (i = 0; i < plane_resources->count_planes; i++) { - plane_id[i] = 0; - - ovr = drmModeGetPlane(fd, plane_resources->planes[i]); - if (!ovr) { - fprintf(stderr, "drmModeGetPlane failed: %s\n", - strerror(errno)); - continue; - } - - if (ovr->possible_crtcs & (1 << 0)) - plane_id[i] = ovr->plane_id; - drmModeFreePlane(ovr); - } - - return 0; -} - -static int drm_set_crtc(struct exynos_device *dev, struct connector *c, - unsigned int fb_id) -{ - int ret; - - ret = drmModeSetCrtc(dev->fd, c->crtc, - fb_id, 0, 0, &c->id, 1, c->mode); - if (ret) { - drmMsg("failed to set mode: %s\n", strerror(errno)); - goto err; - } - - return 0; - -err: - return ret; -} - -static struct exynos_bo *exynos_create_buffer(struct exynos_device *dev, - unsigned long size, - unsigned int flags) -{ - struct exynos_bo *bo; - - bo = exynos_bo_create(dev, size, flags); - if (!bo) - return bo; - - if (!exynos_bo_map(bo)) { - exynos_bo_destroy(bo); - return NULL; - } - - return bo; -} - -static void exynos_destroy_buffer(struct exynos_bo *bo) -{ - exynos_bo_destroy(bo); -} - -static int g2d_solid_fill_test(struct exynos_device *dev, struct exynos_bo *dst) -{ - struct g2d_context *ctx; - struct g2d_image img; - unsigned int count, img_w, img_h; - int ret = 0; - - ctx = g2d_init(dev->fd); - if (!ctx) - return -EFAULT; - - memset(&img, 0, sizeof(struct g2d_image)); - img.bo[0] = dst->handle; - - printf("soild fill test.\n"); - - srand(time(NULL)); - img_w = screen_width; - img_h = screen_height; - - for (count = 0; count < 2; count++) { - unsigned int x, y, w, h; - - x = rand() % (img_w / 2); - y = rand() % (img_h / 2); - w = rand() % (img_w - x); - h = rand() % (img_h - y); - - img.width = img_w; - img.height = img_h; - img.stride = img.width * 4; - img.color_mode = G2D_COLOR_FMT_ARGB8888 | G2D_ORDER_AXRGB; - img.color = 0xff000000 + (random() & 0xffffff); - - ret = g2d_solid_fill(ctx, &img, x, y, w, h); - if (ret < 0) - goto err_fini; - - ret = g2d_exec(ctx); - if (ret < 0) - break; - } - -err_fini: - g2d_fini(ctx); - - return ret; -} - -static int g2d_copy_test(struct exynos_device *dev, struct exynos_bo *src, - struct exynos_bo *dst, - enum e_g2d_buf_type type) -{ - struct g2d_context *ctx; - struct g2d_image src_img, dst_img; - unsigned int count; - unsigned int src_x, src_y, dst_x, dst_y, img_w, img_h; - unsigned long userptr, size; - int ret; - - ctx = g2d_init(dev->fd); - if (!ctx) - return -EFAULT; - - memset(&src_img, 0, sizeof(struct g2d_image)); - memset(&dst_img, 0, sizeof(struct g2d_image)); - dst_img.bo[0] = dst->handle; - - src_x = 0; - src_y = 0; - dst_x = 0; - dst_y = 0; - img_w = screen_width; - img_h = screen_height; - - switch (type) { - case G2D_IMGBUF_GEM: - src_img.bo[0] = src->handle; - break; - case G2D_IMGBUF_USERPTR: - size = img_w * img_h * 4; - - userptr = (unsigned long)malloc(size); - if (!userptr) { - fprintf(stderr, "failed to allocate userptr.\n"); - return -EFAULT; - } - - src_img.user_ptr[0].userptr = userptr; - src_img.user_ptr[0].size = size; - break; - default: - type = G2D_IMGBUF_GEM; - break; - } - - printf("copy test with %s.\n", - type == G2D_IMGBUF_GEM ? "gem" : "userptr"); - - src_img.width = img_w; - src_img.height = img_h; - src_img.stride = src_img.width * 4; - src_img.buf_type = type; - src_img.color_mode = G2D_COLOR_FMT_ARGB8888 | G2D_ORDER_AXRGB; - src_img.color = 0xffff0000; - ret = g2d_solid_fill(ctx, &src_img, src_x, src_y, img_w, img_h); - if (ret < 0) - goto err_free_userptr; - - dst_img.width = img_w; - dst_img.height = img_h; - dst_img.stride = dst_img.width * 4; - dst_img.buf_type = G2D_IMGBUF_GEM; - dst_img.color_mode = G2D_COLOR_FMT_ARGB8888 | G2D_ORDER_AXRGB; - - ret = g2d_copy(ctx, &src_img, &dst_img, src_x, src_y, dst_x, dst_y, - img_w - 4, img_h - 4); - if (ret < 0) - goto err_free_userptr; - - g2d_exec(ctx); - -err_free_userptr: - if (type == G2D_IMGBUF_USERPTR) - if (userptr) - free((void *)userptr); - - g2d_fini(ctx); - - return ret; -} - -static int g2d_copy_with_scale_test(struct exynos_device *dev, - struct exynos_bo *src, - struct exynos_bo *dst, - enum e_g2d_buf_type type) -{ - struct g2d_context *ctx; - struct g2d_image src_img, dst_img; - unsigned int count; - unsigned int src_x, src_y, dst_x, dst_y, img_w, img_h; - unsigned long userptr, size; - int ret; - - ctx = g2d_init(dev->fd); - if (!ctx) - return -EFAULT; - - memset(&src_img, 0, sizeof(struct g2d_image)); - memset(&dst_img, 0, sizeof(struct g2d_image)); - dst_img.bo[0] = dst->handle; - - src_x = 0; - src_y = 0; - dst_x = 0; - dst_y = 0; - img_w = screen_width; - img_h = screen_height; - - switch (type) { - case G2D_IMGBUF_GEM: - src_img.bo[0] = src->handle; - break; - case G2D_IMGBUF_USERPTR: - size = img_w * img_h * 4; - - userptr = (unsigned long)malloc(size); - if (!userptr) { - fprintf(stderr, "failed to allocate userptr.\n"); - return -EFAULT; - } - - src_img.user_ptr[0].userptr = userptr; - src_img.user_ptr[0].size = size; - break; - default: - type = G2D_IMGBUF_GEM; - break; - } - - printf("copy and scale test with %s.\n", - type == G2D_IMGBUF_GEM ? "gem" : "userptr"); - - src_img.width = img_w; - src_img.height = img_h; - src_img.stride = src_img.width * 4; - src_img.buf_type = type; - src_img.color_mode = G2D_COLOR_FMT_ARGB8888 | G2D_ORDER_AXRGB; - src_img.color = 0xffffffff; - ret = g2d_solid_fill(ctx, &src_img, src_x, src_y, img_w , img_h); - if (ret < 0) - goto err_free_userptr; - - src_img.color = 0xff00ff00; - ret = g2d_solid_fill(ctx, &src_img, 5, 5, 100, 100); - if (ret < 0) - goto err_free_userptr; - - dst_img.width = img_w; - dst_img.height = img_h; - dst_img.buf_type = G2D_IMGBUF_GEM; - dst_img.stride = dst_img.width * 4; - dst_img.color_mode = G2D_COLOR_FMT_ARGB8888 | G2D_ORDER_AXRGB; - - ret = g2d_copy_with_scale(ctx, &src_img, &dst_img, 5, 5, 100, 100, - 100, 100, 200, 200, 0); - if (ret < 0) - goto err_free_userptr; - - g2d_exec(ctx); - -err_free_userptr: - if (type == G2D_IMGBUF_USERPTR) - if (userptr) - free((void *)userptr); - - g2d_fini(ctx); - - return 0; -} - -static int g2d_blend_test(struct exynos_device *dev, - struct exynos_bo *src, - struct exynos_bo *dst, - enum e_g2d_buf_type type) -{ - struct g2d_context *ctx; - struct g2d_image src_img, dst_img; - unsigned int count; - unsigned int src_x, src_y, dst_x, dst_y, img_w, img_h; - unsigned long userptr, size; - int ret; - - ctx = g2d_init(dev->fd); - if (!ctx) - return -EFAULT; - - memset(&src_img, 0, sizeof(struct g2d_image)); - memset(&dst_img, 0, sizeof(struct g2d_image)); - dst_img.bo[0] = dst->handle; - - src_x = 0; - src_y = 0; - dst_x = 0; - dst_y = 0; - img_w = screen_width; - img_h = screen_height; - - switch (type) { - case G2D_IMGBUF_GEM: - src_img.bo[0] = src->handle; - break; - case G2D_IMGBUF_USERPTR: - size = img_w * img_h * 4; - - userptr = (unsigned long)malloc(size); - if (!userptr) { - fprintf(stderr, "failed to allocate userptr.\n"); - return -EFAULT; - } - - src_img.user_ptr[0].userptr = userptr; - src_img.user_ptr[0].size = size; - break; - default: - type = G2D_IMGBUF_GEM; - break; - } - - printf("blend test with %s.\n", - type == G2D_IMGBUF_GEM ? "gem" : "userptr"); - - src_img.width = img_w; - src_img.height = img_h; - src_img.stride = src_img.width * 4; - src_img.buf_type = type; - src_img.select_mode = G2D_SELECT_MODE_NORMAL; - src_img.color_mode = G2D_COLOR_FMT_ARGB8888 | G2D_ORDER_AXRGB; - src_img.color = 0xffffffff; - ret = g2d_solid_fill(ctx, &src_img, src_x, src_y, img_w, img_h); - if (ret < 0) - goto err_free_userptr; - - src_img.color = 0x770000ff; - ret = g2d_solid_fill(ctx, &src_img, 5, 5, 200, 200); - if (ret < 0) - goto err_free_userptr; - - dst_img.width = img_w; - dst_img.height = img_h; - dst_img.stride = dst_img.width * 4; - dst_img.buf_type = G2D_IMGBUF_GEM; - dst_img.select_mode = G2D_SELECT_MODE_NORMAL; - dst_img.color_mode = G2D_COLOR_FMT_ARGB8888 | G2D_ORDER_AXRGB; - dst_img.color = 0xffffffff; - ret = g2d_solid_fill(ctx, &dst_img, dst_x, dst_y, img_w, img_h); - if (ret < 0) - goto err_free_userptr; - - dst_img.color = 0x77ff0000; - ret = g2d_solid_fill(ctx, &dst_img, 105, 105, 200, 200); - if (ret < 0) - goto err_free_userptr; - - ret = g2d_blend(ctx, &src_img, &dst_img, 5, 5, 105, 105, 200, 200, - G2D_OP_OVER); - if (ret < 0) - goto err_free_userptr; - - g2d_exec(ctx); - -err_free_userptr: - if (type == G2D_IMGBUF_USERPTR) - if (userptr) - free((void *)userptr); - - g2d_fini(ctx); - - return 0; -} - -static struct fimg2d_test_case test_case = { - .solid_fill = &g2d_solid_fill_test, - .copy = &g2d_copy_test, - .copy_with_scale = &g2d_copy_with_scale_test, - .blend = &g2d_blend_test, -}; - -static void usage(char *name) -{ - fprintf(stderr, "usage: %s [-s]\n", name); - fprintf(stderr, "-s @:\n"); - exit(0); -} - -extern char *optarg; -static const char optstr[] = "s:"; - -int main(int argc, char **argv) -{ - struct exynos_device *dev; - struct exynos_bo *bo, *src; - struct connector con; - char *modeset = NULL; - unsigned int fb_id; - uint32_t handles[4] = {0}, pitches[4] = {0}, offsets[4] = {0}; - drmModeRes *resources; - int ret, fd, c; - - memset(&con, 0, sizeof(struct connector)); - - if (argc != 3) { - usage(argv[0]); - return -EINVAL; - } - - while ((c = getopt(argc, argv, optstr)) != -1) { - switch (c) { - case 's': - modeset = strdup(optarg); - con.crtc = -1; - if (sscanf(optarg, "%d:0x%64s", - &con.id, - con.mode_str) != 2 && - sscanf(optarg, "%d@%d:%64s", - &con.id, - &con.crtc, - con.mode_str) != 3) - usage(argv[0]); - break; - default: - usage(argv[0]); - return -EINVAL; - } - } - - fd = drmOpen(DRM_MODULE_NAME, NULL); - if (fd < 0) { - fprintf(stderr, "failed to open.\n"); - return fd; - } - - dev = exynos_device_create(fd); - if (!dev) { - drmClose(dev->fd); - return -EFAULT; - } - - resources = drmModeGetResources(dev->fd); - if (!resources) { - fprintf(stderr, "drmModeGetResources failed: %s\n", - strerror(errno)); - ret = -EFAULT; - goto err_drm_close; - } - - connector_find_mode(dev->fd, &con, resources); - drmModeFreeResources(resources); - - screen_width = con.mode->hdisplay; - screen_height = con.mode->vdisplay; - - printf("screen width = %d, screen height = %d\n", screen_width, - screen_height); - - bo = exynos_create_buffer(dev, screen_width * screen_height * 4, 0); - if (!bo) { - ret = -EFAULT; - goto err_drm_close; - } - - handles[0] = bo->handle; - pitches[0] = screen_width * 4; - offsets[0] = 0; - - ret = drmModeAddFB2(dev->fd, screen_width, screen_height, - DRM_FORMAT_RGBA8888, handles, - pitches, offsets, &fb_id, 0); - if (ret < 0) - goto err_destroy_buffer; - - con.plane_zpos = -1; - - memset(bo->vaddr, 0xff, screen_width * screen_height * 4); - - ret = drm_set_crtc(dev, &con, fb_id); - if (ret < 0) - goto err_rm_fb; - - ret = test_case.solid_fill(dev, bo); - if (ret < 0) { - fprintf(stderr, "failed to solid fill operation.\n"); - goto err_rm_fb; - } - - getchar(); - - src = exynos_create_buffer(dev, screen_width * screen_height * 4, 0); - if (!src) { - ret = -EFAULT; - goto err_rm_fb; - } - - ret = test_case.copy(dev, src, bo, G2D_IMGBUF_GEM); - if (ret < 0) { - fprintf(stderr, "failed to test copy operation.\n"); - goto err_free_src; - } - - getchar(); - - ret = test_case.copy_with_scale(dev, src, bo, G2D_IMGBUF_GEM); - if (ret < 0) { - fprintf(stderr, "failed to test copy and scale operation.\n"); - goto err_free_src; - } - - getchar(); - - ret = test_case.blend(dev, src, bo, G2D_IMGBUF_USERPTR); - if (ret < 0) - fprintf(stderr, "failed to test blend operation.\n"); - - getchar(); - -err_free_src: - if (src) - exynos_destroy_buffer(src); - -err_rm_fb: - drmModeRmFB(fb_id, bo->handle); - -err_destroy_buffer: - exynos_destroy_buffer(bo); - -err_drm_close: - drmClose(dev->fd); - exynos_device_destroy(dev); - - return 0; -} diff -Nru libdrm-2.4.52/tests/exynos/Makefile.am libdrm-2.4.52+really2.4.21/tests/exynos/Makefile.am --- libdrm-2.4.52/tests/exynos/Makefile.am 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/exynos/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -AM_CFLAGS = \ - -I $(top_srcdir)/include/drm \ - -I $(top_srcdir)/libkms/ \ - -I $(top_srcdir)/exynos \ - -I $(top_srcdir) - -noinst_PROGRAMS = \ - exynos_fimg2d_test - -exynos_fimg2d_test_LDADD = \ - $(top_builddir)/libdrm.la \ - $(top_builddir)/libkms/libkms.la \ - $(top_builddir)/exynos/libdrm_exynos.la - -exynos_fimg2d_test_SOURCES = \ - exynos_fimg2d_test.c - -run: exynos_fimg2d_test - ./exynos_fimg2d_test diff -Nru libdrm-2.4.52/tests/exynos/Makefile.in libdrm-2.4.52+really2.4.21/tests/exynos/Makefile.in --- libdrm-2.4.52/tests/exynos/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/exynos/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,608 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = exynos_fimg2d_test$(EXEEXT) -subdir = tests/exynos -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -PROGRAMS = $(noinst_PROGRAMS) -am_exynos_fimg2d_test_OBJECTS = exynos_fimg2d_test.$(OBJEXT) -exynos_fimg2d_test_OBJECTS = $(am_exynos_fimg2d_test_OBJECTS) -exynos_fimg2d_test_DEPENDENCIES = $(top_builddir)/libdrm.la \ - $(top_builddir)/libkms/libkms.la \ - $(top_builddir)/exynos/libdrm_exynos.la -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(exynos_fimg2d_test_SOURCES) -DIST_SOURCES = $(exynos_fimg2d_test_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = \ - -I $(top_srcdir)/include/drm \ - -I $(top_srcdir)/libkms/ \ - -I $(top_srcdir)/exynos \ - -I $(top_srcdir) - -exynos_fimg2d_test_LDADD = \ - $(top_builddir)/libdrm.la \ - $(top_builddir)/libkms/libkms.la \ - $(top_builddir)/exynos/libdrm_exynos.la - -exynos_fimg2d_test_SOURCES = \ - exynos_fimg2d_test.c - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/exynos/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign tests/exynos/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -exynos_fimg2d_test$(EXEEXT): $(exynos_fimg2d_test_OBJECTS) $(exynos_fimg2d_test_DEPENDENCIES) $(EXTRA_exynos_fimg2d_test_DEPENDENCIES) - @rm -f exynos_fimg2d_test$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(exynos_fimg2d_test_OBJECTS) $(exynos_fimg2d_test_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exynos_fimg2d_test.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am - - -run: exynos_fimg2d_test - ./exynos_fimg2d_test - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/tests/gem_flink.c libdrm-2.4.52+really2.4.21/tests/gem_flink.c --- libdrm-2.4.52/tests/gem_flink.c 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/gem_flink.c 2010-06-07 01:11:45.000000000 +0000 @@ -96,7 +96,7 @@ flink.handle = 0x10101010; ret = ioctl(fd, DRM_IOCTL_GEM_FLINK, &flink); - assert(ret == -1 && errno == ENOENT); + assert(ret == -1 && errno == EBADF); } static void @@ -117,15 +117,10 @@ { int fd; - if (geteuid()) { - fprintf(stderr, "requires root privileges, skipping\n"); - return 77; - } - fd = drm_open_matching("8086:*", 0); if (fd < 0) { fprintf(stderr, "failed to open intel drm device, skipping\n"); - return 77; + return 0; } test_flink(fd); diff -Nru libdrm-2.4.52/tests/gem_mmap.c libdrm-2.4.52+really2.4.21/tests/gem_mmap.c --- libdrm-2.4.52/tests/gem_mmap.c 2011-10-11 21:10:10.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/gem_mmap.c 2010-06-07 01:11:45.000000000 +0000 @@ -93,7 +93,7 @@ mmap.size = 4096; printf("Testing mmaping of bad object.\n"); ret = ioctl(fd, DRM_IOCTL_I915_GEM_MMAP, &mmap); - assert(ret == -1 && errno == ENOENT); + assert(ret == -1 && errno == EBADF); memset(&create, 0, sizeof(create)); create.size = OBJECT_SIZE; diff -Nru libdrm-2.4.52/tests/gem_readwrite.c libdrm-2.4.52+really2.4.21/tests/gem_readwrite.c --- libdrm-2.4.52/tests/gem_readwrite.c 2011-10-11 21:10:10.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/gem_readwrite.c 2010-06-07 01:11:45.000000000 +0000 @@ -127,11 +127,11 @@ printf("Testing read of bad buffer handle\n"); ret = do_read(fd, 1234, buf, 0, 1024); - assert(ret == -1 && errno == ENOENT); + assert(ret == -1 && errno == EBADF); printf("Testing write of bad buffer handle\n"); ret = do_write(fd, 1234, buf, 0, 1024); - assert(ret == -1 && errno == ENOENT); + assert(ret == -1 && errno == EBADF); close(fd); diff -Nru libdrm-2.4.52/tests/getversion.c libdrm-2.4.52+really2.4.21/tests/getversion.c --- libdrm-2.4.52/tests/getversion.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/getversion.c 2010-06-07 01:11:45.000000000 +0000 @@ -25,7 +25,6 @@ * */ -#include #include "drmtest.h" /** diff -Nru libdrm-2.4.52/tests/kmstest/main.c libdrm-2.4.52+really2.4.21/tests/kmstest/main.c --- libdrm-2.4.52/tests/kmstest/main.c 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/kmstest/main.c 2010-06-07 01:11:45.000000000 +0000 @@ -61,7 +61,6 @@ "radeon", "nouveau", "vmwgfx", - "exynos", NULL }; diff -Nru libdrm-2.4.52/tests/kmstest/Makefile.am libdrm-2.4.52+really2.4.21/tests/kmstest/Makefile.am --- libdrm-2.4.52/tests/kmstest/Makefile.am 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/kmstest/Makefile.am 2010-06-07 01:11:45.000000000 +0000 @@ -3,13 +3,8 @@ -I$(top_srcdir)/libkms/ \ -I$(top_srcdir) -if HAVE_INSTALL_TESTS -bin_PROGRAMS = \ - kmstest -else noinst_PROGRAMS = \ kmstest -endif kmstest_SOURCES = \ main.c diff -Nru libdrm-2.4.52/tests/kmstest/Makefile.in libdrm-2.4.52+really2.4.21/tests/kmstest/Makefile.in --- libdrm-2.4.52/tests/kmstest/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/kmstest/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,660 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_INSTALL_TESTS_TRUE@bin_PROGRAMS = kmstest$(EXEEXT) -@HAVE_INSTALL_TESTS_FALSE@noinst_PROGRAMS = kmstest$(EXEEXT) -subdir = tests/kmstest -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" -PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) -am_kmstest_OBJECTS = main.$(OBJEXT) -kmstest_OBJECTS = $(am_kmstest_OBJECTS) -kmstest_DEPENDENCIES = $(top_builddir)/libdrm.la \ - $(top_builddir)/libkms/libkms.la -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(kmstest_SOURCES) -DIST_SOURCES = $(kmstest_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = \ - -I$(top_srcdir)/include/drm \ - -I$(top_srcdir)/libkms/ \ - -I$(top_srcdir) - -kmstest_SOURCES = \ - main.c - -kmstest_LDADD = \ - $(top_builddir)/libdrm.la \ - $(top_builddir)/libkms/libkms.la - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/kmstest/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign tests/kmstest/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -kmstest$(EXEEXT): $(kmstest_OBJECTS) $(kmstest_DEPENDENCIES) $(EXTRA_kmstest_DEPENDENCIES) - @rm -f kmstest$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(kmstest_OBJECTS) $(kmstest_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: - for dir in "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libtool \ - clean-noinstPROGRAMS mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-binPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic clean-libtool \ - clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-binPROGRAMS install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am uninstall-binPROGRAMS - - -run: kmstest - ./kmstest - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/tests/Makefile.am libdrm-2.4.52+really2.4.21/tests/Makefile.am --- libdrm-2.4.52/tests/Makefile.am 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/Makefile.am 2010-06-07 01:11:45.000000000 +0000 @@ -10,18 +10,13 @@ dristat \ drmstat -SUBDIRS = modeprint +SUBDIRS = if HAVE_LIBKMS -SUBDIRS += kmstest modetest +SUBDIRS += kmstest endif -if HAVE_RADEON -SUBDIRS += radeon -endif - -if HAVE_EXYNOS -SUBDIRS += exynos +if HAVE_INTEL endif if HAVE_LIBUDEV @@ -55,6 +50,11 @@ SUBDIRS += vbltest $(NULL) if HAVE_INTEL +SUBDIRS += \ + modeprint \ + modetest \ + $(NULL) + TESTS += \ gem_basic \ gem_flink \ diff -Nru libdrm-2.4.52/tests/Makefile.in libdrm-2.4.52+really2.4.21/tests/Makefile.in --- libdrm-2.4.52/tests/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,1334 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -check_PROGRAMS = dristat$(EXEEXT) drmstat$(EXEEXT) $(am__EXEEXT_4) -@HAVE_LIBKMS_TRUE@am__append_1 = kmstest modetest -@HAVE_RADEON_TRUE@am__append_2 = radeon -@HAVE_EXYNOS_TRUE@am__append_3 = exynos -@HAVE_LIBUDEV_TRUE@am__append_4 = libdrmtest.la -@HAVE_LIBUDEV_TRUE@TESTS = openclose$(EXEEXT) getversion$(EXEEXT) \ -@HAVE_LIBUDEV_TRUE@ getclient$(EXEEXT) getstats$(EXEEXT) \ -@HAVE_LIBUDEV_TRUE@ setversion$(EXEEXT) updatedraw$(EXEEXT) \ -@HAVE_LIBUDEV_TRUE@ name_from_fd$(EXEEXT) $(am__EXEEXT_1) \ -@HAVE_LIBUDEV_TRUE@ $(am__EXEEXT_2) -@HAVE_LIBUDEV_TRUE@am__append_5 = vbltest $(NULL) -@HAVE_INTEL_TRUE@@HAVE_LIBUDEV_TRUE@am__append_6 = \ -@HAVE_INTEL_TRUE@@HAVE_LIBUDEV_TRUE@ gem_basic \ -@HAVE_INTEL_TRUE@@HAVE_LIBUDEV_TRUE@ gem_flink \ -@HAVE_INTEL_TRUE@@HAVE_LIBUDEV_TRUE@ gem_readwrite \ -@HAVE_INTEL_TRUE@@HAVE_LIBUDEV_TRUE@ gem_mmap \ -@HAVE_INTEL_TRUE@@HAVE_LIBUDEV_TRUE@ $(NULL) - -@HAVE_LIBUDEV_TRUE@am__append_7 = $(TESTS) -subdir = tests -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__DEPENDENCIES_1 = -@HAVE_LIBUDEV_TRUE@libdrmtest_la_DEPENDENCIES = \ -@HAVE_LIBUDEV_TRUE@ $(top_builddir)/libdrm.la \ -@HAVE_LIBUDEV_TRUE@ $(am__DEPENDENCIES_1) -am__libdrmtest_la_SOURCES_DIST = drmtest.c drmtest.h -@HAVE_LIBUDEV_TRUE@am_libdrmtest_la_OBJECTS = drmtest.lo -libdrmtest_la_OBJECTS = $(am_libdrmtest_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -@HAVE_LIBUDEV_TRUE@am_libdrmtest_la_rpath = -am__EXEEXT_1 = -@HAVE_INTEL_TRUE@@HAVE_LIBUDEV_TRUE@am__EXEEXT_2 = gem_basic$(EXEEXT) \ -@HAVE_INTEL_TRUE@@HAVE_LIBUDEV_TRUE@ gem_flink$(EXEEXT) \ -@HAVE_INTEL_TRUE@@HAVE_LIBUDEV_TRUE@ gem_readwrite$(EXEEXT) \ -@HAVE_INTEL_TRUE@@HAVE_LIBUDEV_TRUE@ gem_mmap$(EXEEXT) \ -@HAVE_INTEL_TRUE@@HAVE_LIBUDEV_TRUE@ $(am__EXEEXT_1) -@HAVE_LIBUDEV_TRUE@am__EXEEXT_3 = openclose$(EXEEXT) \ -@HAVE_LIBUDEV_TRUE@ getversion$(EXEEXT) getclient$(EXEEXT) \ -@HAVE_LIBUDEV_TRUE@ getstats$(EXEEXT) setversion$(EXEEXT) \ -@HAVE_LIBUDEV_TRUE@ updatedraw$(EXEEXT) name_from_fd$(EXEEXT) \ -@HAVE_LIBUDEV_TRUE@ $(am__EXEEXT_1) $(am__EXEEXT_2) -@HAVE_LIBUDEV_TRUE@am__EXEEXT_4 = $(am__EXEEXT_3) -dristat_SOURCES = dristat.c -dristat_OBJECTS = dristat.$(OBJEXT) -dristat_LDADD = $(LDADD) -dristat_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -drmstat_SOURCES = drmstat.c -drmstat_OBJECTS = drmstat.$(OBJEXT) -drmstat_LDADD = $(LDADD) -drmstat_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -gem_basic_SOURCES = gem_basic.c -gem_basic_OBJECTS = gem_basic.$(OBJEXT) -gem_basic_LDADD = $(LDADD) -gem_basic_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -gem_flink_SOURCES = gem_flink.c -gem_flink_OBJECTS = gem_flink.$(OBJEXT) -gem_flink_LDADD = $(LDADD) -gem_flink_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -gem_mmap_SOURCES = gem_mmap.c -gem_mmap_OBJECTS = gem_mmap.$(OBJEXT) -gem_mmap_LDADD = $(LDADD) -gem_mmap_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -gem_readwrite_SOURCES = gem_readwrite.c -gem_readwrite_OBJECTS = gem_readwrite.$(OBJEXT) -gem_readwrite_LDADD = $(LDADD) -gem_readwrite_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -getclient_SOURCES = getclient.c -getclient_OBJECTS = getclient.$(OBJEXT) -getclient_LDADD = $(LDADD) -getclient_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -getstats_SOURCES = getstats.c -getstats_OBJECTS = getstats.$(OBJEXT) -getstats_LDADD = $(LDADD) -getstats_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -getversion_SOURCES = getversion.c -getversion_OBJECTS = getversion.$(OBJEXT) -getversion_LDADD = $(LDADD) -getversion_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -name_from_fd_SOURCES = name_from_fd.c -name_from_fd_OBJECTS = name_from_fd.$(OBJEXT) -name_from_fd_LDADD = $(LDADD) -name_from_fd_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -openclose_SOURCES = openclose.c -openclose_OBJECTS = openclose.$(OBJEXT) -openclose_LDADD = $(LDADD) -openclose_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -setversion_SOURCES = setversion.c -setversion_OBJECTS = setversion.$(OBJEXT) -setversion_LDADD = $(LDADD) -setversion_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -updatedraw_SOURCES = updatedraw.c -updatedraw_OBJECTS = updatedraw.$(OBJEXT) -updatedraw_LDADD = $(LDADD) -updatedraw_DEPENDENCIES = $(top_builddir)/libdrm.la $(am__append_4) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libdrmtest_la_SOURCES) dristat.c drmstat.c gem_basic.c \ - gem_flink.c gem_mmap.c gem_readwrite.c getclient.c getstats.c \ - getversion.c name_from_fd.c openclose.c setversion.c \ - updatedraw.c -DIST_SOURCES = $(am__libdrmtest_la_SOURCES_DIST) dristat.c drmstat.c \ - gem_basic.c gem_flink.c gem_mmap.c gem_readwrite.c getclient.c \ - getstats.c getversion.c name_from_fd.c openclose.c \ - setversion.c updatedraw.c -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - check recheck distdir -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red=''; \ - grn=''; \ - lgn=''; \ - blu=''; \ - mgn=''; \ - brg=''; \ - std=''; \ - fi; \ -} -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -RECHECK_LOGS = $(TEST_LOGS) -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -DIST_SUBDIRS = modeprint kmstest modetest radeon exynos vbltest -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -NULL := # -AM_CPPFLAGS = \ - -I $(top_srcdir)/include/drm \ - -I $(top_srcdir) - -LDADD = $(top_builddir)/libdrm.la $(am__append_4) -SUBDIRS = modeprint $(am__append_1) $(am__append_2) $(am__append_3) \ - $(am__append_5) -@HAVE_LIBUDEV_TRUE@check_LTLIBRARIES = libdrmtest.la -@HAVE_LIBUDEV_TRUE@libdrmtest_la_SOURCES = \ -@HAVE_LIBUDEV_TRUE@ drmtest.c \ -@HAVE_LIBUDEV_TRUE@ drmtest.h - -@HAVE_LIBUDEV_TRUE@libdrmtest_la_LIBADD = \ -@HAVE_LIBUDEV_TRUE@ $(top_builddir)/libdrm.la \ -@HAVE_LIBUDEV_TRUE@ $(LIBUDEV_LIBS) - -@HAVE_LIBUDEV_TRUE@XFAIL_TESTS = \ -@HAVE_LIBUDEV_TRUE@ auth \ -@HAVE_LIBUDEV_TRUE@ lock - -all: all-recursive - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign tests/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkLTLIBRARIES: - -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES) - @list='$(check_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libdrmtest.la: $(libdrmtest_la_OBJECTS) $(libdrmtest_la_DEPENDENCIES) $(EXTRA_libdrmtest_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(am_libdrmtest_la_rpath) $(libdrmtest_la_OBJECTS) $(libdrmtest_la_LIBADD) $(LIBS) - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -dristat$(EXEEXT): $(dristat_OBJECTS) $(dristat_DEPENDENCIES) $(EXTRA_dristat_DEPENDENCIES) - @rm -f dristat$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(dristat_OBJECTS) $(dristat_LDADD) $(LIBS) - -drmstat$(EXEEXT): $(drmstat_OBJECTS) $(drmstat_DEPENDENCIES) $(EXTRA_drmstat_DEPENDENCIES) - @rm -f drmstat$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(drmstat_OBJECTS) $(drmstat_LDADD) $(LIBS) - -gem_basic$(EXEEXT): $(gem_basic_OBJECTS) $(gem_basic_DEPENDENCIES) $(EXTRA_gem_basic_DEPENDENCIES) - @rm -f gem_basic$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(gem_basic_OBJECTS) $(gem_basic_LDADD) $(LIBS) - -gem_flink$(EXEEXT): $(gem_flink_OBJECTS) $(gem_flink_DEPENDENCIES) $(EXTRA_gem_flink_DEPENDENCIES) - @rm -f gem_flink$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(gem_flink_OBJECTS) $(gem_flink_LDADD) $(LIBS) - -gem_mmap$(EXEEXT): $(gem_mmap_OBJECTS) $(gem_mmap_DEPENDENCIES) $(EXTRA_gem_mmap_DEPENDENCIES) - @rm -f gem_mmap$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(gem_mmap_OBJECTS) $(gem_mmap_LDADD) $(LIBS) - -gem_readwrite$(EXEEXT): $(gem_readwrite_OBJECTS) $(gem_readwrite_DEPENDENCIES) $(EXTRA_gem_readwrite_DEPENDENCIES) - @rm -f gem_readwrite$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(gem_readwrite_OBJECTS) $(gem_readwrite_LDADD) $(LIBS) - -getclient$(EXEEXT): $(getclient_OBJECTS) $(getclient_DEPENDENCIES) $(EXTRA_getclient_DEPENDENCIES) - @rm -f getclient$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(getclient_OBJECTS) $(getclient_LDADD) $(LIBS) - -getstats$(EXEEXT): $(getstats_OBJECTS) $(getstats_DEPENDENCIES) $(EXTRA_getstats_DEPENDENCIES) - @rm -f getstats$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(getstats_OBJECTS) $(getstats_LDADD) $(LIBS) - -getversion$(EXEEXT): $(getversion_OBJECTS) $(getversion_DEPENDENCIES) $(EXTRA_getversion_DEPENDENCIES) - @rm -f getversion$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(getversion_OBJECTS) $(getversion_LDADD) $(LIBS) - -name_from_fd$(EXEEXT): $(name_from_fd_OBJECTS) $(name_from_fd_DEPENDENCIES) $(EXTRA_name_from_fd_DEPENDENCIES) - @rm -f name_from_fd$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(name_from_fd_OBJECTS) $(name_from_fd_LDADD) $(LIBS) - -openclose$(EXEEXT): $(openclose_OBJECTS) $(openclose_DEPENDENCIES) $(EXTRA_openclose_DEPENDENCIES) - @rm -f openclose$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(openclose_OBJECTS) $(openclose_LDADD) $(LIBS) - -setversion$(EXEEXT): $(setversion_OBJECTS) $(setversion_DEPENDENCIES) $(EXTRA_setversion_DEPENDENCIES) - @rm -f setversion$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(setversion_OBJECTS) $(setversion_LDADD) $(LIBS) - -updatedraw$(EXEEXT): $(updatedraw_OBJECTS) $(updatedraw_DEPENDENCIES) $(EXTRA_updatedraw_DEPENDENCIES) - @rm -f updatedraw$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(updatedraw_OBJECTS) $(updatedraw_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dristat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/drmstat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/drmtest.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gem_basic.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gem_flink.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gem_mmap.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gem_readwrite.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getclient.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getstats.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getversion.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/name_from_fd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openclose.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setversion.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/updatedraw.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - else \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_LTLIBRARIES) $(check_PROGRAMS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -openclose.log: openclose$(EXEEXT) - @p='openclose$(EXEEXT)'; \ - b='openclose'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -getversion.log: getversion$(EXEEXT) - @p='getversion$(EXEEXT)'; \ - b='getversion'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -getclient.log: getclient$(EXEEXT) - @p='getclient$(EXEEXT)'; \ - b='getclient'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -getstats.log: getstats$(EXEEXT) - @p='getstats$(EXEEXT)'; \ - b='getstats'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -setversion.log: setversion$(EXEEXT) - @p='setversion$(EXEEXT)'; \ - b='setversion'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -updatedraw.log: updatedraw$(EXEEXT) - @p='updatedraw$(EXEEXT)'; \ - b='updatedraw'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -name_from_fd.log: name_from_fd$(EXEEXT) - @p='name_from_fd$(EXEEXT)'; \ - b='name_from_fd'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -gem_basic.log: gem_basic$(EXEEXT) - @p='gem_basic$(EXEEXT)'; \ - b='gem_basic'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -gem_flink.log: gem_flink$(EXEEXT) - @p='gem_flink$(EXEEXT)'; \ - b='gem_flink'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -gem_readwrite.log: gem_readwrite$(EXEEXT) - @p='gem_readwrite$(EXEEXT)'; \ - b='gem_readwrite'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -gem_mmap.log: gem_mmap$(EXEEXT) - @p='gem_mmap$(EXEEXT)'; \ - b='gem_mmap'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) $(check_PROGRAMS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-checkLTLIBRARIES clean-checkPROGRAMS clean-generic \ - clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(am__recursive_targets) check-am install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-TESTS check-am clean clean-checkLTLIBRARIES \ - clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/tests/modeprint/Makefile.am libdrm-2.4.52+really2.4.21/tests/modeprint/Makefile.am --- libdrm-2.4.52/tests/modeprint/Makefile.am 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/modeprint/Makefile.am 2010-06-07 01:11:45.000000000 +0000 @@ -1,16 +1,13 @@ AM_CFLAGS = \ -I$(top_srcdir)/include/drm \ + -I$(top_srcdir)/intel/ \ -I$(top_srcdir) -if HAVE_INSTALL_TESTS -bin_PROGRAMS = \ - modeprint -else noinst_PROGRAMS = \ modeprint -endif modeprint_SOURCES = \ modeprint.c modeprint_LDADD = \ - $(top_builddir)/libdrm.la + $(top_builddir)/libdrm.la \ + $(top_builddir)/intel/libdrm_intel.la diff -Nru libdrm-2.4.52/tests/modeprint/Makefile.in libdrm-2.4.52+really2.4.21/tests/modeprint/Makefile.in --- libdrm-2.4.52/tests/modeprint/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/modeprint/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,654 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_INSTALL_TESTS_TRUE@bin_PROGRAMS = modeprint$(EXEEXT) -@HAVE_INSTALL_TESTS_FALSE@noinst_PROGRAMS = modeprint$(EXEEXT) -subdir = tests/modeprint -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" -PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) -am_modeprint_OBJECTS = modeprint.$(OBJEXT) -modeprint_OBJECTS = $(am_modeprint_OBJECTS) -modeprint_DEPENDENCIES = $(top_builddir)/libdrm.la -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(modeprint_SOURCES) -DIST_SOURCES = $(modeprint_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = \ - -I$(top_srcdir)/include/drm \ - -I$(top_srcdir) - -modeprint_SOURCES = \ - modeprint.c - -modeprint_LDADD = \ - $(top_builddir)/libdrm.la - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/modeprint/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign tests/modeprint/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -modeprint$(EXEEXT): $(modeprint_OBJECTS) $(modeprint_DEPENDENCIES) $(EXTRA_modeprint_DEPENDENCIES) - @rm -f modeprint$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(modeprint_OBJECTS) $(modeprint_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modeprint.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: - for dir in "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libtool \ - clean-noinstPROGRAMS mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-binPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic clean-libtool \ - clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-binPROGRAMS install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am uninstall-binPROGRAMS - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/tests/modeprint/modeprint.c libdrm-2.4.52+really2.4.21/tests/modeprint/modeprint.c --- libdrm-2.4.52/tests/modeprint/modeprint.c 2011-10-27 20:37:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/modeprint/modeprint.c 2010-06-07 01:11:45.000000000 +0000 @@ -36,7 +36,6 @@ #include #include #include -#include #include "xf86drm.h" #include "xf86drmMode.h" @@ -102,7 +101,7 @@ if (props->count_values) { printf("\tvalues :"); for (j = 0; j < props->count_values; j++) - printf(" %" PRIu64, props->values[j]); + printf(" %llu", props->values[j]); printf("\n"); } @@ -117,7 +116,7 @@ printf("blob is %d length, %08X\n", blob->length, *(uint32_t *)blob->data); drmModeFreePropertyBlob(blob); } else { - printf("error getting blob %" PRIu64 "\n", value); + printf("error getting blob %llu\n", value); } } else { @@ -133,7 +132,7 @@ if (props->count_enums && name) { printf("\tcon_value : %s\n", name); } else { - printf("\tcon_value : %" PRIu64 "\n", value); + printf("\tcon_value : %lld\n", value); } } @@ -194,8 +193,8 @@ printf("\tid :%i\n", id); printf("\tcrtc_id :%d\n", encoder->crtc_id); printf("\ttype :%d\n", encoder->encoder_type); - printf("\tpossible_crtcs :0x%x\n", encoder->possible_crtcs); - printf("\tpossible_clones :0x%x\n", encoder->possible_clones); + printf("\tpossible_crtcs :%d\n", encoder->possible_crtcs); + printf("\tpossible_clones :%d\n", encoder->possible_clones); return 0; } diff -Nru libdrm-2.4.52/tests/modetest/buffers.c libdrm-2.4.52+really2.4.21/tests/modetest/buffers.c --- libdrm-2.4.52/tests/modetest/buffers.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/modetest/buffers.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1170 +0,0 @@ -/* - * DRM based mode setting test program - * Copyright 2008 Tungsten Graphics - * Jakob Bornecrantz - * Copyright 2008 Intel Corporation - * Jesse Barnes - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include - -#include "drm_fourcc.h" -#include "libkms.h" - -#include "buffers.h" - -#ifdef HAVE_CAIRO -#include -#include -#endif - -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) - -/* ----------------------------------------------------------------------------- - * Formats - */ - -struct color_component { - unsigned int length; - unsigned int offset; -}; - -struct rgb_info { - struct color_component red; - struct color_component green; - struct color_component blue; - struct color_component alpha; -}; - -enum yuv_order { - YUV_YCbCr = 1, - YUV_YCrCb = 2, - YUV_YC = 4, - YUV_CY = 8, -}; - -struct yuv_info { - enum yuv_order order; - unsigned int xsub; - unsigned int ysub; - unsigned int chroma_stride; -}; - -struct format_info { - unsigned int format; - const char *name; - const struct rgb_info rgb; - const struct yuv_info yuv; -}; - -#define MAKE_RGB_INFO(rl, ro, bl, bo, gl, go, al, ao) \ - .rgb = { { (rl), (ro) }, { (bl), (bo) }, { (gl), (go) }, { (al), (ao) } } - -#define MAKE_YUV_INFO(order, xsub, ysub, chroma_stride) \ - .yuv = { (order), (xsub), (ysub), (chroma_stride) } - -static const struct format_info format_info[] = { - /* YUV packed */ - { DRM_FORMAT_UYVY, "UYVY", MAKE_YUV_INFO(YUV_YCbCr | YUV_CY, 2, 2, 2) }, - { DRM_FORMAT_VYUY, "VYUY", MAKE_YUV_INFO(YUV_YCrCb | YUV_CY, 2, 2, 2) }, - { DRM_FORMAT_YUYV, "YUYV", MAKE_YUV_INFO(YUV_YCbCr | YUV_YC, 2, 2, 2) }, - { DRM_FORMAT_YVYU, "YVYU", MAKE_YUV_INFO(YUV_YCrCb | YUV_YC, 2, 2, 2) }, - /* YUV semi-planar */ - { DRM_FORMAT_NV12, "NV12", MAKE_YUV_INFO(YUV_YCbCr, 2, 2, 2) }, - { DRM_FORMAT_NV21, "NV21", MAKE_YUV_INFO(YUV_YCrCb, 2, 2, 2) }, - { DRM_FORMAT_NV16, "NV16", MAKE_YUV_INFO(YUV_YCbCr, 2, 1, 2) }, - { DRM_FORMAT_NV61, "NV61", MAKE_YUV_INFO(YUV_YCrCb, 2, 1, 2) }, - /* YUV planar */ - { DRM_FORMAT_YUV420, "YU12", MAKE_YUV_INFO(YUV_YCbCr, 2, 2, 1) }, - { DRM_FORMAT_YVU420, "YV12", MAKE_YUV_INFO(YUV_YCrCb, 2, 2, 1) }, - /* RGB16 */ - { DRM_FORMAT_ARGB4444, "AR12", MAKE_RGB_INFO(4, 8, 4, 4, 4, 0, 4, 12) }, - { DRM_FORMAT_XRGB4444, "XR12", MAKE_RGB_INFO(4, 8, 4, 4, 4, 0, 0, 0) }, - { DRM_FORMAT_ABGR4444, "AB12", MAKE_RGB_INFO(4, 0, 4, 4, 4, 8, 4, 12) }, - { DRM_FORMAT_XBGR4444, "XB12", MAKE_RGB_INFO(4, 0, 4, 4, 4, 8, 0, 0) }, - { DRM_FORMAT_RGBA4444, "RA12", MAKE_RGB_INFO(4, 12, 4, 8, 4, 4, 4, 0) }, - { DRM_FORMAT_RGBX4444, "RX12", MAKE_RGB_INFO(4, 12, 4, 8, 4, 4, 0, 0) }, - { DRM_FORMAT_BGRA4444, "BA12", MAKE_RGB_INFO(4, 4, 4, 8, 4, 12, 4, 0) }, - { DRM_FORMAT_BGRX4444, "BX12", MAKE_RGB_INFO(4, 4, 4, 8, 4, 12, 0, 0) }, - { DRM_FORMAT_ARGB1555, "AR15", MAKE_RGB_INFO(5, 10, 5, 5, 5, 0, 1, 15) }, - { DRM_FORMAT_XRGB1555, "XR15", MAKE_RGB_INFO(5, 10, 5, 5, 5, 0, 0, 0) }, - { DRM_FORMAT_ABGR1555, "AB15", MAKE_RGB_INFO(5, 0, 5, 5, 5, 10, 1, 15) }, - { DRM_FORMAT_XBGR1555, "XB15", MAKE_RGB_INFO(5, 0, 5, 5, 5, 10, 0, 0) }, - { DRM_FORMAT_RGBA5551, "RA15", MAKE_RGB_INFO(5, 11, 5, 6, 5, 1, 1, 0) }, - { DRM_FORMAT_RGBX5551, "RX15", MAKE_RGB_INFO(5, 11, 5, 6, 5, 1, 0, 0) }, - { DRM_FORMAT_BGRA5551, "BA15", MAKE_RGB_INFO(5, 1, 5, 6, 5, 11, 1, 0) }, - { DRM_FORMAT_BGRX5551, "BX15", MAKE_RGB_INFO(5, 1, 5, 6, 5, 11, 0, 0) }, - { DRM_FORMAT_RGB565, "RG16", MAKE_RGB_INFO(5, 11, 6, 5, 5, 0, 0, 0) }, - { DRM_FORMAT_BGR565, "BG16", MAKE_RGB_INFO(5, 0, 6, 5, 5, 11, 0, 0) }, - /* RGB24 */ - { DRM_FORMAT_BGR888, "BG24", MAKE_RGB_INFO(8, 0, 8, 8, 8, 16, 0, 0) }, - { DRM_FORMAT_RGB888, "RG24", MAKE_RGB_INFO(8, 16, 8, 8, 8, 0, 0, 0) }, - /* RGB32 */ - { DRM_FORMAT_ARGB8888, "AR24", MAKE_RGB_INFO(8, 16, 8, 8, 8, 0, 8, 24) }, - { DRM_FORMAT_XRGB8888, "XR24", MAKE_RGB_INFO(8, 16, 8, 8, 8, 0, 0, 0) }, - { DRM_FORMAT_ABGR8888, "AB24", MAKE_RGB_INFO(8, 0, 8, 8, 8, 16, 8, 24) }, - { DRM_FORMAT_XBGR8888, "XB24", MAKE_RGB_INFO(8, 0, 8, 8, 8, 16, 0, 0) }, - { DRM_FORMAT_RGBA8888, "RA24", MAKE_RGB_INFO(8, 24, 8, 16, 8, 8, 8, 0) }, - { DRM_FORMAT_RGBX8888, "RX24", MAKE_RGB_INFO(8, 24, 8, 16, 8, 8, 0, 0) }, - { DRM_FORMAT_BGRA8888, "BA24", MAKE_RGB_INFO(8, 8, 8, 16, 8, 24, 8, 0) }, - { DRM_FORMAT_BGRX8888, "BX24", MAKE_RGB_INFO(8, 8, 8, 16, 8, 24, 0, 0) }, - { DRM_FORMAT_ARGB2101010, "AR30", MAKE_RGB_INFO(10, 20, 10, 10, 10, 0, 2, 30) }, - { DRM_FORMAT_XRGB2101010, "XR30", MAKE_RGB_INFO(10, 20, 10, 10, 10, 0, 0, 0) }, - { DRM_FORMAT_ABGR2101010, "AB30", MAKE_RGB_INFO(10, 0, 10, 10, 10, 20, 2, 30) }, - { DRM_FORMAT_XBGR2101010, "XB30", MAKE_RGB_INFO(10, 0, 10, 10, 10, 20, 0, 0) }, - { DRM_FORMAT_RGBA1010102, "RA30", MAKE_RGB_INFO(10, 22, 10, 12, 10, 2, 2, 0) }, - { DRM_FORMAT_RGBX1010102, "RX30", MAKE_RGB_INFO(10, 22, 10, 12, 10, 2, 0, 0) }, - { DRM_FORMAT_BGRA1010102, "BA30", MAKE_RGB_INFO(10, 2, 10, 12, 10, 22, 2, 0) }, - { DRM_FORMAT_BGRX1010102, "BX30", MAKE_RGB_INFO(10, 2, 10, 12, 10, 22, 0, 0) }, -}; - -unsigned int format_fourcc(const char *name) -{ - unsigned int i; - for (i = 0; i < ARRAY_SIZE(format_info); i++) { - if (!strcmp(format_info[i].name, name)) - return format_info[i].format; - } - return 0; -} - -/* ----------------------------------------------------------------------------- - * Test patterns - */ - -struct color_rgb24 { - unsigned int value:24; -} __attribute__((__packed__)); - -struct color_yuv { - unsigned char y; - unsigned char u; - unsigned char v; -}; - -#define MAKE_YUV_601_Y(r, g, b) \ - ((( 66 * (r) + 129 * (g) + 25 * (b) + 128) >> 8) + 16) -#define MAKE_YUV_601_U(r, g, b) \ - (((-38 * (r) - 74 * (g) + 112 * (b) + 128) >> 8) + 128) -#define MAKE_YUV_601_V(r, g, b) \ - (((112 * (r) - 94 * (g) - 18 * (b) + 128) >> 8) + 128) - -#define MAKE_YUV_601(r, g, b) \ - { .y = MAKE_YUV_601_Y(r, g, b), \ - .u = MAKE_YUV_601_U(r, g, b), \ - .v = MAKE_YUV_601_V(r, g, b) } - -#define MAKE_RGBA(rgb, r, g, b, a) \ - ((((r) >> (8 - (rgb)->red.length)) << (rgb)->red.offset) | \ - (((g) >> (8 - (rgb)->green.length)) << (rgb)->green.offset) | \ - (((b) >> (8 - (rgb)->blue.length)) << (rgb)->blue.offset) | \ - (((a) >> (8 - (rgb)->alpha.length)) << (rgb)->alpha.offset)) - -#define MAKE_RGB24(rgb, r, g, b) \ - { .value = MAKE_RGBA(rgb, r, g, b, 0) } - -static void -fill_smpte_yuv_planar(const struct yuv_info *yuv, - unsigned char *y_mem, unsigned char *u_mem, - unsigned char *v_mem, unsigned int width, - unsigned int height, unsigned int stride) -{ - const struct color_yuv colors_top[] = { - MAKE_YUV_601(191, 192, 192), /* grey */ - MAKE_YUV_601(192, 192, 0), /* yellow */ - MAKE_YUV_601(0, 192, 192), /* cyan */ - MAKE_YUV_601(0, 192, 0), /* green */ - MAKE_YUV_601(192, 0, 192), /* magenta */ - MAKE_YUV_601(192, 0, 0), /* red */ - MAKE_YUV_601(0, 0, 192), /* blue */ - }; - const struct color_yuv colors_middle[] = { - MAKE_YUV_601(0, 0, 192), /* blue */ - MAKE_YUV_601(19, 19, 19), /* black */ - MAKE_YUV_601(192, 0, 192), /* magenta */ - MAKE_YUV_601(19, 19, 19), /* black */ - MAKE_YUV_601(0, 192, 192), /* cyan */ - MAKE_YUV_601(19, 19, 19), /* black */ - MAKE_YUV_601(192, 192, 192), /* grey */ - }; - const struct color_yuv colors_bottom[] = { - MAKE_YUV_601(0, 33, 76), /* in-phase */ - MAKE_YUV_601(255, 255, 255), /* super white */ - MAKE_YUV_601(50, 0, 106), /* quadrature */ - MAKE_YUV_601(19, 19, 19), /* black */ - MAKE_YUV_601(9, 9, 9), /* 3.5% */ - MAKE_YUV_601(19, 19, 19), /* 7.5% */ - MAKE_YUV_601(29, 29, 29), /* 11.5% */ - MAKE_YUV_601(19, 19, 19), /* black */ - }; - unsigned int cs = yuv->chroma_stride; - unsigned int xsub = yuv->xsub; - unsigned int ysub = yuv->ysub; - unsigned int x; - unsigned int y; - - /* Luma */ - for (y = 0; y < height * 6 / 9; ++y) { - for (x = 0; x < width; ++x) - y_mem[x] = colors_top[x * 7 / width].y; - y_mem += stride; - } - - for (; y < height * 7 / 9; ++y) { - for (x = 0; x < width; ++x) - y_mem[x] = colors_middle[x * 7 / width].y; - y_mem += stride; - } - - for (; y < height; ++y) { - for (x = 0; x < width * 5 / 7; ++x) - y_mem[x] = colors_bottom[x * 4 / (width * 5 / 7)].y; - for (; x < width * 6 / 7; ++x) - y_mem[x] = colors_bottom[(x - width * 5 / 7) * 3 - / (width / 7) + 4].y; - for (; x < width; ++x) - y_mem[x] = colors_bottom[7].y; - y_mem += stride; - } - - /* Chroma */ - for (y = 0; y < height / ysub * 6 / 9; ++y) { - for (x = 0; x < width; x += xsub) { - u_mem[x*cs/xsub] = colors_top[x * 7 / width].u; - v_mem[x*cs/xsub] = colors_top[x * 7 / width].v; - } - u_mem += stride * cs / xsub; - v_mem += stride * cs / xsub; - } - - for (; y < height / ysub * 7 / 9; ++y) { - for (x = 0; x < width; x += xsub) { - u_mem[x*cs/xsub] = colors_middle[x * 7 / width].u; - v_mem[x*cs/xsub] = colors_middle[x * 7 / width].v; - } - u_mem += stride * cs / xsub; - v_mem += stride * cs / xsub; - } - - for (; y < height / ysub; ++y) { - for (x = 0; x < width * 5 / 7; x += xsub) { - u_mem[x*cs/xsub] = - colors_bottom[x * 4 / (width * 5 / 7)].u; - v_mem[x*cs/xsub] = - colors_bottom[x * 4 / (width * 5 / 7)].v; - } - for (; x < width * 6 / 7; x += xsub) { - u_mem[x*cs/xsub] = colors_bottom[(x - width * 5 / 7) * - 3 / (width / 7) + 4].u; - v_mem[x*cs/xsub] = colors_bottom[(x - width * 5 / 7) * - 3 / (width / 7) + 4].v; - } - for (; x < width; x += xsub) { - u_mem[x*cs/xsub] = colors_bottom[7].u; - v_mem[x*cs/xsub] = colors_bottom[7].v; - } - u_mem += stride * cs / xsub; - v_mem += stride * cs / xsub; - } -} - -static void -fill_smpte_yuv_packed(const struct yuv_info *yuv, unsigned char *mem, - unsigned int width, unsigned int height, - unsigned int stride) -{ - const struct color_yuv colors_top[] = { - MAKE_YUV_601(191, 192, 192), /* grey */ - MAKE_YUV_601(192, 192, 0), /* yellow */ - MAKE_YUV_601(0, 192, 192), /* cyan */ - MAKE_YUV_601(0, 192, 0), /* green */ - MAKE_YUV_601(192, 0, 192), /* magenta */ - MAKE_YUV_601(192, 0, 0), /* red */ - MAKE_YUV_601(0, 0, 192), /* blue */ - }; - const struct color_yuv colors_middle[] = { - MAKE_YUV_601(0, 0, 192), /* blue */ - MAKE_YUV_601(19, 19, 19), /* black */ - MAKE_YUV_601(192, 0, 192), /* magenta */ - MAKE_YUV_601(19, 19, 19), /* black */ - MAKE_YUV_601(0, 192, 192), /* cyan */ - MAKE_YUV_601(19, 19, 19), /* black */ - MAKE_YUV_601(192, 192, 192), /* grey */ - }; - const struct color_yuv colors_bottom[] = { - MAKE_YUV_601(0, 33, 76), /* in-phase */ - MAKE_YUV_601(255, 255, 255), /* super white */ - MAKE_YUV_601(50, 0, 106), /* quadrature */ - MAKE_YUV_601(19, 19, 19), /* black */ - MAKE_YUV_601(9, 9, 9), /* 3.5% */ - MAKE_YUV_601(19, 19, 19), /* 7.5% */ - MAKE_YUV_601(29, 29, 29), /* 11.5% */ - MAKE_YUV_601(19, 19, 19), /* black */ - }; - unsigned char *y_mem = (yuv->order & YUV_YC) ? mem : mem + 1; - unsigned char *c_mem = (yuv->order & YUV_CY) ? mem : mem + 1; - unsigned int u = (yuv->order & YUV_YCrCb) ? 2 : 0; - unsigned int v = (yuv->order & YUV_YCbCr) ? 2 : 0; - unsigned int x; - unsigned int y; - - /* Luma */ - for (y = 0; y < height * 6 / 9; ++y) { - for (x = 0; x < width; ++x) - y_mem[2*x] = colors_top[x * 7 / width].y; - y_mem += stride; - } - - for (; y < height * 7 / 9; ++y) { - for (x = 0; x < width; ++x) - y_mem[2*x] = colors_middle[x * 7 / width].y; - y_mem += stride; - } - - for (; y < height; ++y) { - for (x = 0; x < width * 5 / 7; ++x) - y_mem[2*x] = colors_bottom[x * 4 / (width * 5 / 7)].y; - for (; x < width * 6 / 7; ++x) - y_mem[2*x] = colors_bottom[(x - width * 5 / 7) * 3 - / (width / 7) + 4].y; - for (; x < width; ++x) - y_mem[2*x] = colors_bottom[7].y; - y_mem += stride; - } - - /* Chroma */ - for (y = 0; y < height * 6 / 9; ++y) { - for (x = 0; x < width; x += 2) { - c_mem[2*x+u] = colors_top[x * 7 / width].u; - c_mem[2*x+v] = colors_top[x * 7 / width].v; - } - c_mem += stride; - } - - for (; y < height * 7 / 9; ++y) { - for (x = 0; x < width; x += 2) { - c_mem[2*x+u] = colors_middle[x * 7 / width].u; - c_mem[2*x+v] = colors_middle[x * 7 / width].v; - } - c_mem += stride; - } - - for (; y < height; ++y) { - for (x = 0; x < width * 5 / 7; x += 2) { - c_mem[2*x+u] = colors_bottom[x * 4 / (width * 5 / 7)].u; - c_mem[2*x+v] = colors_bottom[x * 4 / (width * 5 / 7)].v; - } - for (; x < width * 6 / 7; x += 2) { - c_mem[2*x+u] = colors_bottom[(x - width * 5 / 7) * - 3 / (width / 7) + 4].u; - c_mem[2*x+v] = colors_bottom[(x - width * 5 / 7) * - 3 / (width / 7) + 4].v; - } - for (; x < width; x += 2) { - c_mem[2*x+u] = colors_bottom[7].u; - c_mem[2*x+v] = colors_bottom[7].v; - } - c_mem += stride; - } -} - -static void -fill_smpte_rgb16(const struct rgb_info *rgb, unsigned char *mem, - unsigned int width, unsigned int height, unsigned int stride) -{ - const uint16_t colors_top[] = { - MAKE_RGBA(rgb, 192, 192, 192, 255), /* grey */ - MAKE_RGBA(rgb, 192, 192, 0, 255), /* yellow */ - MAKE_RGBA(rgb, 0, 192, 192, 255), /* cyan */ - MAKE_RGBA(rgb, 0, 192, 0, 255), /* green */ - MAKE_RGBA(rgb, 192, 0, 192, 255), /* magenta */ - MAKE_RGBA(rgb, 192, 0, 0, 255), /* red */ - MAKE_RGBA(rgb, 0, 0, 192, 255), /* blue */ - }; - const uint16_t colors_middle[] = { - MAKE_RGBA(rgb, 0, 0, 192, 255), /* blue */ - MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ - MAKE_RGBA(rgb, 192, 0, 192, 255), /* magenta */ - MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ - MAKE_RGBA(rgb, 0, 192, 192, 255), /* cyan */ - MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ - MAKE_RGBA(rgb, 192, 192, 192, 255), /* grey */ - }; - const uint16_t colors_bottom[] = { - MAKE_RGBA(rgb, 0, 33, 76, 255), /* in-phase */ - MAKE_RGBA(rgb, 255, 255, 255, 255), /* super white */ - MAKE_RGBA(rgb, 50, 0, 106, 255), /* quadrature */ - MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ - MAKE_RGBA(rgb, 9, 9, 9, 255), /* 3.5% */ - MAKE_RGBA(rgb, 19, 19, 19, 255), /* 7.5% */ - MAKE_RGBA(rgb, 29, 29, 29, 255), /* 11.5% */ - MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ - }; - unsigned int x; - unsigned int y; - - for (y = 0; y < height * 6 / 9; ++y) { - for (x = 0; x < width; ++x) - ((uint16_t *)mem)[x] = colors_top[x * 7 / width]; - mem += stride; - } - - for (; y < height * 7 / 9; ++y) { - for (x = 0; x < width; ++x) - ((uint16_t *)mem)[x] = colors_middle[x * 7 / width]; - mem += stride; - } - - for (; y < height; ++y) { - for (x = 0; x < width * 5 / 7; ++x) - ((uint16_t *)mem)[x] = - colors_bottom[x * 4 / (width * 5 / 7)]; - for (; x < width * 6 / 7; ++x) - ((uint16_t *)mem)[x] = - colors_bottom[(x - width * 5 / 7) * 3 - / (width / 7) + 4]; - for (; x < width; ++x) - ((uint16_t *)mem)[x] = colors_bottom[7]; - mem += stride; - } -} - -static void -fill_smpte_rgb24(const struct rgb_info *rgb, void *mem, - unsigned int width, unsigned int height, unsigned int stride) -{ - const struct color_rgb24 colors_top[] = { - MAKE_RGB24(rgb, 192, 192, 192), /* grey */ - MAKE_RGB24(rgb, 192, 192, 0), /* yellow */ - MAKE_RGB24(rgb, 0, 192, 192), /* cyan */ - MAKE_RGB24(rgb, 0, 192, 0), /* green */ - MAKE_RGB24(rgb, 192, 0, 192), /* magenta */ - MAKE_RGB24(rgb, 192, 0, 0), /* red */ - MAKE_RGB24(rgb, 0, 0, 192), /* blue */ - }; - const struct color_rgb24 colors_middle[] = { - MAKE_RGB24(rgb, 0, 0, 192), /* blue */ - MAKE_RGB24(rgb, 19, 19, 19), /* black */ - MAKE_RGB24(rgb, 192, 0, 192), /* magenta */ - MAKE_RGB24(rgb, 19, 19, 19), /* black */ - MAKE_RGB24(rgb, 0, 192, 192), /* cyan */ - MAKE_RGB24(rgb, 19, 19, 19), /* black */ - MAKE_RGB24(rgb, 192, 192, 192), /* grey */ - }; - const struct color_rgb24 colors_bottom[] = { - MAKE_RGB24(rgb, 0, 33, 76), /* in-phase */ - MAKE_RGB24(rgb, 255, 255, 255), /* super white */ - MAKE_RGB24(rgb, 50, 0, 106), /* quadrature */ - MAKE_RGB24(rgb, 19, 19, 19), /* black */ - MAKE_RGB24(rgb, 9, 9, 9), /* 3.5% */ - MAKE_RGB24(rgb, 19, 19, 19), /* 7.5% */ - MAKE_RGB24(rgb, 29, 29, 29), /* 11.5% */ - MAKE_RGB24(rgb, 19, 19, 19), /* black */ - }; - unsigned int x; - unsigned int y; - - for (y = 0; y < height * 6 / 9; ++y) { - for (x = 0; x < width; ++x) - ((struct color_rgb24 *)mem)[x] = - colors_top[x * 7 / width]; - mem += stride; - } - - for (; y < height * 7 / 9; ++y) { - for (x = 0; x < width; ++x) - ((struct color_rgb24 *)mem)[x] = - colors_middle[x * 7 / width]; - mem += stride; - } - - for (; y < height; ++y) { - for (x = 0; x < width * 5 / 7; ++x) - ((struct color_rgb24 *)mem)[x] = - colors_bottom[x * 4 / (width * 5 / 7)]; - for (; x < width * 6 / 7; ++x) - ((struct color_rgb24 *)mem)[x] = - colors_bottom[(x - width * 5 / 7) * 3 - / (width / 7) + 4]; - for (; x < width; ++x) - ((struct color_rgb24 *)mem)[x] = colors_bottom[7]; - mem += stride; - } -} - -static void -fill_smpte_rgb32(const struct rgb_info *rgb, unsigned char *mem, - unsigned int width, unsigned int height, unsigned int stride) -{ - const uint32_t colors_top[] = { - MAKE_RGBA(rgb, 192, 192, 192, 255), /* grey */ - MAKE_RGBA(rgb, 192, 192, 0, 255), /* yellow */ - MAKE_RGBA(rgb, 0, 192, 192, 255), /* cyan */ - MAKE_RGBA(rgb, 0, 192, 0, 255), /* green */ - MAKE_RGBA(rgb, 192, 0, 192, 255), /* magenta */ - MAKE_RGBA(rgb, 192, 0, 0, 255), /* red */ - MAKE_RGBA(rgb, 0, 0, 192, 255), /* blue */ - }; - const uint32_t colors_middle[] = { - MAKE_RGBA(rgb, 0, 0, 192, 255), /* blue */ - MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ - MAKE_RGBA(rgb, 192, 0, 192, 255), /* magenta */ - MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ - MAKE_RGBA(rgb, 0, 192, 192, 255), /* cyan */ - MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ - MAKE_RGBA(rgb, 192, 192, 192, 255), /* grey */ - }; - const uint32_t colors_bottom[] = { - MAKE_RGBA(rgb, 0, 33, 76, 255), /* in-phase */ - MAKE_RGBA(rgb, 255, 255, 255, 255), /* super white */ - MAKE_RGBA(rgb, 50, 0, 106, 255), /* quadrature */ - MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ - MAKE_RGBA(rgb, 9, 9, 9, 255), /* 3.5% */ - MAKE_RGBA(rgb, 19, 19, 19, 255), /* 7.5% */ - MAKE_RGBA(rgb, 29, 29, 29, 255), /* 11.5% */ - MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ - }; - unsigned int x; - unsigned int y; - - for (y = 0; y < height * 6 / 9; ++y) { - for (x = 0; x < width; ++x) - ((uint32_t *)mem)[x] = colors_top[x * 7 / width]; - mem += stride; - } - - for (; y < height * 7 / 9; ++y) { - for (x = 0; x < width; ++x) - ((uint32_t *)mem)[x] = colors_middle[x * 7 / width]; - mem += stride; - } - - for (; y < height; ++y) { - for (x = 0; x < width * 5 / 7; ++x) - ((uint32_t *)mem)[x] = - colors_bottom[x * 4 / (width * 5 / 7)]; - for (; x < width * 6 / 7; ++x) - ((uint32_t *)mem)[x] = - colors_bottom[(x - width * 5 / 7) * 3 - / (width / 7) + 4]; - for (; x < width; ++x) - ((uint32_t *)mem)[x] = colors_bottom[7]; - mem += stride; - } -} - -static void -fill_smpte(const struct format_info *info, void *planes[3], unsigned int width, - unsigned int height, unsigned int stride) -{ - unsigned char *u, *v; - - switch (info->format) { - case DRM_FORMAT_UYVY: - case DRM_FORMAT_VYUY: - case DRM_FORMAT_YUYV: - case DRM_FORMAT_YVYU: - return fill_smpte_yuv_packed(&info->yuv, planes[0], width, - height, stride); - - case DRM_FORMAT_NV12: - case DRM_FORMAT_NV21: - case DRM_FORMAT_NV16: - case DRM_FORMAT_NV61: - u = info->yuv.order & YUV_YCbCr ? planes[1] : planes[1] + 1; - v = info->yuv.order & YUV_YCrCb ? planes[1] : planes[1] + 1; - return fill_smpte_yuv_planar(&info->yuv, planes[0], u, v, - width, height, stride); - - case DRM_FORMAT_YUV420: - return fill_smpte_yuv_planar(&info->yuv, planes[0], planes[1], - planes[2], width, height, stride); - - case DRM_FORMAT_YVU420: - return fill_smpte_yuv_planar(&info->yuv, planes[0], planes[2], - planes[1], width, height, stride); - - case DRM_FORMAT_ARGB4444: - case DRM_FORMAT_XRGB4444: - case DRM_FORMAT_ABGR4444: - case DRM_FORMAT_XBGR4444: - case DRM_FORMAT_RGBA4444: - case DRM_FORMAT_RGBX4444: - case DRM_FORMAT_BGRA4444: - case DRM_FORMAT_BGRX4444: - case DRM_FORMAT_RGB565: - case DRM_FORMAT_BGR565: - case DRM_FORMAT_ARGB1555: - case DRM_FORMAT_XRGB1555: - case DRM_FORMAT_ABGR1555: - case DRM_FORMAT_XBGR1555: - case DRM_FORMAT_RGBA5551: - case DRM_FORMAT_RGBX5551: - case DRM_FORMAT_BGRA5551: - case DRM_FORMAT_BGRX5551: - return fill_smpte_rgb16(&info->rgb, planes[0], - width, height, stride); - - case DRM_FORMAT_BGR888: - case DRM_FORMAT_RGB888: - return fill_smpte_rgb24(&info->rgb, planes[0], - width, height, stride); - case DRM_FORMAT_ARGB8888: - case DRM_FORMAT_XRGB8888: - case DRM_FORMAT_ABGR8888: - case DRM_FORMAT_XBGR8888: - case DRM_FORMAT_RGBA8888: - case DRM_FORMAT_RGBX8888: - case DRM_FORMAT_BGRA8888: - case DRM_FORMAT_BGRX8888: - case DRM_FORMAT_ARGB2101010: - case DRM_FORMAT_XRGB2101010: - case DRM_FORMAT_ABGR2101010: - case DRM_FORMAT_XBGR2101010: - case DRM_FORMAT_RGBA1010102: - case DRM_FORMAT_RGBX1010102: - case DRM_FORMAT_BGRA1010102: - case DRM_FORMAT_BGRX1010102: - return fill_smpte_rgb32(&info->rgb, planes[0], - width, height, stride); - } -} - -/* swap these for big endian.. */ -#define RED 2 -#define GREEN 1 -#define BLUE 0 - -static void -make_pwetty(void *data, int width, int height, int stride, uint32_t format) -{ -#ifdef HAVE_CAIRO - cairo_surface_t *surface; - cairo_t *cr; - int x, y; - cairo_format_t cairo_format; - - /* we can ignore the order of R,G,B channels */ - switch (format) { - case DRM_FORMAT_XRGB8888: - case DRM_FORMAT_ARGB8888: - case DRM_FORMAT_XBGR8888: - case DRM_FORMAT_ABGR8888: - cairo_format = CAIRO_FORMAT_ARGB32; - break; - case DRM_FORMAT_RGB565: - case DRM_FORMAT_BGR565: - cairo_format = CAIRO_FORMAT_RGB16_565; - break; - default: - return; - } - - surface = cairo_image_surface_create_for_data(data, - cairo_format, - width, height, - stride); - cr = cairo_create(surface); - cairo_surface_destroy(surface); - - cairo_set_line_cap(cr, CAIRO_LINE_CAP_SQUARE); - for (x = 0; x < width; x += 250) - for (y = 0; y < height; y += 250) { - char buf[64]; - - cairo_move_to(cr, x, y - 20); - cairo_line_to(cr, x, y + 20); - cairo_move_to(cr, x - 20, y); - cairo_line_to(cr, x + 20, y); - cairo_new_sub_path(cr); - cairo_arc(cr, x, y, 10, 0, M_PI * 2); - cairo_set_line_width(cr, 4); - cairo_set_source_rgb(cr, 0, 0, 0); - cairo_stroke_preserve(cr); - cairo_set_source_rgb(cr, 1, 1, 1); - cairo_set_line_width(cr, 2); - cairo_stroke(cr); - - snprintf(buf, sizeof buf, "%d, %d", x, y); - cairo_move_to(cr, x + 20, y + 20); - cairo_text_path(cr, buf); - cairo_set_source_rgb(cr, 0, 0, 0); - cairo_stroke_preserve(cr); - cairo_set_source_rgb(cr, 1, 1, 1); - cairo_fill(cr); - } - - cairo_destroy(cr); -#endif -} - -static void -fill_tiles_yuv_planar(const struct format_info *info, - unsigned char *y_mem, unsigned char *u_mem, - unsigned char *v_mem, unsigned int width, - unsigned int height, unsigned int stride) -{ - const struct yuv_info *yuv = &info->yuv; - unsigned int cs = yuv->chroma_stride; - unsigned int xsub = yuv->xsub; - unsigned int ysub = yuv->ysub; - unsigned int x; - unsigned int y; - - for (y = 0; y < height; ++y) { - for (x = 0; x < width; ++x) { - div_t d = div(x+y, width); - uint32_t rgb32 = 0x00130502 * (d.quot >> 6) - + 0x000a1120 * (d.rem >> 6); - struct color_yuv color = - MAKE_YUV_601((rgb32 >> 16) & 0xff, - (rgb32 >> 8) & 0xff, rgb32 & 0xff); - - y_mem[x] = color.y; - u_mem[x/xsub*cs] = color.u; - v_mem[x/xsub*cs] = color.v; - } - - y_mem += stride; - if ((y + 1) % ysub == 0) { - u_mem += stride * cs / xsub; - v_mem += stride * cs / xsub; - } - } -} - -static void -fill_tiles_yuv_packed(const struct format_info *info, unsigned char *mem, - unsigned int width, unsigned int height, - unsigned int stride) -{ - const struct yuv_info *yuv = &info->yuv; - unsigned char *y_mem = (yuv->order & YUV_YC) ? mem : mem + 1; - unsigned char *c_mem = (yuv->order & YUV_CY) ? mem : mem + 1; - unsigned int u = (yuv->order & YUV_YCrCb) ? 2 : 0; - unsigned int v = (yuv->order & YUV_YCbCr) ? 2 : 0; - unsigned int x; - unsigned int y; - - for (y = 0; y < height; ++y) { - for (x = 0; x < width; x += 2) { - div_t d = div(x+y, width); - uint32_t rgb32 = 0x00130502 * (d.quot >> 6) - + 0x000a1120 * (d.rem >> 6); - struct color_yuv color = - MAKE_YUV_601((rgb32 >> 16) & 0xff, - (rgb32 >> 8) & 0xff, rgb32 & 0xff); - - y_mem[2*x] = color.y; - c_mem[2*x+u] = color.u; - y_mem[2*x+2] = color.y; - c_mem[2*x+v] = color.v; - } - - y_mem += stride; - c_mem += stride; - } -} - -static void -fill_tiles_rgb16(const struct format_info *info, unsigned char *mem, - unsigned int width, unsigned int height, unsigned int stride) -{ - const struct rgb_info *rgb = &info->rgb; - unsigned char *mem_base = mem; - unsigned int x, y; - - for (y = 0; y < height; ++y) { - for (x = 0; x < width; ++x) { - div_t d = div(x+y, width); - uint32_t rgb32 = 0x00130502 * (d.quot >> 6) - + 0x000a1120 * (d.rem >> 6); - uint16_t color = - MAKE_RGBA(rgb, (rgb32 >> 16) & 0xff, - (rgb32 >> 8) & 0xff, rgb32 & 0xff, - 255); - - ((uint16_t *)mem)[x] = color; - } - mem += stride; - } - - make_pwetty(mem_base, width, height, stride, info->format); -} - -static void -fill_tiles_rgb24(const struct format_info *info, unsigned char *mem, - unsigned int width, unsigned int height, unsigned int stride) -{ - const struct rgb_info *rgb = &info->rgb; - unsigned int x, y; - - for (y = 0; y < height; ++y) { - for (x = 0; x < width; ++x) { - div_t d = div(x+y, width); - uint32_t rgb32 = 0x00130502 * (d.quot >> 6) - + 0x000a1120 * (d.rem >> 6); - struct color_rgb24 color = - MAKE_RGB24(rgb, (rgb32 >> 16) & 0xff, - (rgb32 >> 8) & 0xff, rgb32 & 0xff); - - ((struct color_rgb24 *)mem)[x] = color; - } - mem += stride; - } -} - -static void -fill_tiles_rgb32(const struct format_info *info, unsigned char *mem, - unsigned int width, unsigned int height, unsigned int stride) -{ - const struct rgb_info *rgb = &info->rgb; - unsigned char *mem_base = mem; - unsigned int x, y; - - for (y = 0; y < height; ++y) { - for (x = 0; x < width; ++x) { - div_t d = div(x+y, width); - uint32_t rgb32 = 0x00130502 * (d.quot >> 6) - + 0x000a1120 * (d.rem >> 6); - uint32_t color = - MAKE_RGBA(rgb, (rgb32 >> 16) & 0xff, - (rgb32 >> 8) & 0xff, rgb32 & 0xff, - 255); - - ((uint32_t *)mem)[x] = color; - } - mem += stride; - } - - make_pwetty(mem_base, width, height, stride, info->format); -} - -static void -fill_tiles(const struct format_info *info, void *planes[3], unsigned int width, - unsigned int height, unsigned int stride) -{ - unsigned char *u, *v; - - switch (info->format) { - case DRM_FORMAT_UYVY: - case DRM_FORMAT_VYUY: - case DRM_FORMAT_YUYV: - case DRM_FORMAT_YVYU: - return fill_tiles_yuv_packed(info, planes[0], - width, height, stride); - - case DRM_FORMAT_NV12: - case DRM_FORMAT_NV21: - case DRM_FORMAT_NV16: - case DRM_FORMAT_NV61: - u = info->yuv.order & YUV_YCbCr ? planes[1] : planes[1] + 1; - v = info->yuv.order & YUV_YCrCb ? planes[1] : planes[1] + 1; - return fill_tiles_yuv_planar(info, planes[0], u, v, - width, height, stride); - - case DRM_FORMAT_YUV420: - return fill_tiles_yuv_planar(info, planes[0], planes[1], - planes[2], width, height, stride); - - case DRM_FORMAT_YVU420: - return fill_tiles_yuv_planar(info, planes[0], planes[2], - planes[1], width, height, stride); - - case DRM_FORMAT_ARGB4444: - case DRM_FORMAT_XRGB4444: - case DRM_FORMAT_ABGR4444: - case DRM_FORMAT_XBGR4444: - case DRM_FORMAT_RGBA4444: - case DRM_FORMAT_RGBX4444: - case DRM_FORMAT_BGRA4444: - case DRM_FORMAT_BGRX4444: - case DRM_FORMAT_RGB565: - case DRM_FORMAT_BGR565: - case DRM_FORMAT_ARGB1555: - case DRM_FORMAT_XRGB1555: - case DRM_FORMAT_ABGR1555: - case DRM_FORMAT_XBGR1555: - case DRM_FORMAT_RGBA5551: - case DRM_FORMAT_RGBX5551: - case DRM_FORMAT_BGRA5551: - case DRM_FORMAT_BGRX5551: - return fill_tiles_rgb16(info, planes[0], - width, height, stride); - - case DRM_FORMAT_BGR888: - case DRM_FORMAT_RGB888: - return fill_tiles_rgb24(info, planes[0], - width, height, stride); - case DRM_FORMAT_ARGB8888: - case DRM_FORMAT_XRGB8888: - case DRM_FORMAT_ABGR8888: - case DRM_FORMAT_XBGR8888: - case DRM_FORMAT_RGBA8888: - case DRM_FORMAT_RGBX8888: - case DRM_FORMAT_BGRA8888: - case DRM_FORMAT_BGRX8888: - case DRM_FORMAT_ARGB2101010: - case DRM_FORMAT_XRGB2101010: - case DRM_FORMAT_ABGR2101010: - case DRM_FORMAT_XBGR2101010: - case DRM_FORMAT_RGBA1010102: - case DRM_FORMAT_RGBX1010102: - case DRM_FORMAT_BGRA1010102: - case DRM_FORMAT_BGRX1010102: - return fill_tiles_rgb32(info, planes[0], - width, height, stride); - } -} - -static void -fill_plain(const struct format_info *info, void *planes[3], unsigned int width, - unsigned int height, unsigned int stride) -{ - memset(planes[0], 0x77, stride * height); -} - -/* - * fill_pattern - Fill a buffer with a test pattern - * @format: Pixel format - * @pattern: Test pattern - * @buffer: Buffer memory - * @width: Width in pixels - * @height: Height in pixels - * @stride: Line stride (pitch) in bytes - * - * Fill the buffer with the test pattern specified by the pattern parameter. - * Supported formats vary depending on the selected pattern. - */ -static void -fill_pattern(unsigned int format, enum fill_pattern pattern, void *planes[3], - unsigned int width, unsigned int height, unsigned int stride) -{ - const struct format_info *info = NULL; - unsigned int i; - - for (i = 0; i < ARRAY_SIZE(format_info); ++i) { - if (format_info[i].format == format) { - info = &format_info[i]; - break; - } - } - - if (info == NULL) - return; - - switch (pattern) { - case PATTERN_TILES: - return fill_tiles(info, planes, width, height, stride); - - case PATTERN_SMPTE: - return fill_smpte(info, planes, width, height, stride); - - case PATTERN_PLAIN: - return fill_plain(info, planes, width, height, stride); - - default: - printf("Error: unsupported test pattern %u.\n", pattern); - break; - } -} - -/* ----------------------------------------------------------------------------- - * Buffers management - */ - -static struct kms_bo * -allocate_buffer(struct kms_driver *kms, unsigned int width, unsigned int height, - unsigned int *stride) -{ - struct kms_bo *bo; - unsigned bo_attribs[] = { - KMS_WIDTH, 0, - KMS_HEIGHT, 0, - KMS_BO_TYPE, KMS_BO_TYPE_SCANOUT_X8R8G8B8, - KMS_TERMINATE_PROP_LIST - }; - int ret; - - bo_attribs[1] = width; - bo_attribs[3] = height; - - ret = kms_bo_create(kms, bo_attribs, &bo); - if (ret) { - fprintf(stderr, "failed to alloc buffer: %s\n", - strerror(-ret)); - return NULL; - } - - ret = kms_bo_get_prop(bo, KMS_PITCH, stride); - if (ret) { - fprintf(stderr, "failed to retreive buffer stride: %s\n", - strerror(-ret)); - kms_bo_destroy(&bo); - return NULL; - } - - return bo; -} - -struct kms_bo * -create_test_buffer(struct kms_driver *kms, unsigned int format, - unsigned int width, unsigned int height, - unsigned int handles[4], unsigned int pitches[4], - unsigned int offsets[4], enum fill_pattern pattern) -{ - unsigned int virtual_height; - struct kms_bo *bo; - void *planes[3] = { 0, }; - void *virtual; - int ret; - - switch (format) { - case DRM_FORMAT_NV12: - case DRM_FORMAT_NV21: - virtual_height = height * 3 / 2; - break; - - case DRM_FORMAT_NV16: - case DRM_FORMAT_NV61: - virtual_height = height * 2; - break; - - default: - virtual_height = height; - break; - } - - bo = allocate_buffer(kms, width, virtual_height, &pitches[0]); - if (!bo) - return NULL; - - ret = kms_bo_map(bo, &virtual); - if (ret) { - fprintf(stderr, "failed to map buffer: %s\n", - strerror(-ret)); - kms_bo_destroy(&bo); - return NULL; - } - - /* just testing a limited # of formats to test single - * and multi-planar path.. would be nice to add more.. - */ - switch (format) { - case DRM_FORMAT_UYVY: - case DRM_FORMAT_VYUY: - case DRM_FORMAT_YUYV: - case DRM_FORMAT_YVYU: - offsets[0] = 0; - kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]); - kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]); - - planes[0] = virtual; - break; - - case DRM_FORMAT_NV12: - case DRM_FORMAT_NV21: - case DRM_FORMAT_NV16: - case DRM_FORMAT_NV61: - offsets[0] = 0; - kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]); - kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]); - pitches[1] = pitches[0]; - offsets[1] = pitches[0] * height; - kms_bo_get_prop(bo, KMS_HANDLE, &handles[1]); - - planes[0] = virtual; - planes[1] = virtual + offsets[1]; - break; - - case DRM_FORMAT_YUV420: - case DRM_FORMAT_YVU420: - offsets[0] = 0; - kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]); - kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]); - pitches[1] = pitches[0] / 2; - offsets[1] = pitches[0] * height; - kms_bo_get_prop(bo, KMS_HANDLE, &handles[1]); - pitches[2] = pitches[1]; - offsets[2] = offsets[1] + pitches[1] * height / 2; - kms_bo_get_prop(bo, KMS_HANDLE, &handles[2]); - - planes[0] = virtual; - planes[1] = virtual + offsets[1]; - planes[2] = virtual + offsets[2]; - break; - - case DRM_FORMAT_ARGB4444: - case DRM_FORMAT_XRGB4444: - case DRM_FORMAT_ABGR4444: - case DRM_FORMAT_XBGR4444: - case DRM_FORMAT_RGBA4444: - case DRM_FORMAT_RGBX4444: - case DRM_FORMAT_BGRA4444: - case DRM_FORMAT_BGRX4444: - case DRM_FORMAT_ARGB1555: - case DRM_FORMAT_XRGB1555: - case DRM_FORMAT_ABGR1555: - case DRM_FORMAT_XBGR1555: - case DRM_FORMAT_RGBA5551: - case DRM_FORMAT_RGBX5551: - case DRM_FORMAT_BGRA5551: - case DRM_FORMAT_BGRX5551: - case DRM_FORMAT_RGB565: - case DRM_FORMAT_BGR565: - case DRM_FORMAT_BGR888: - case DRM_FORMAT_RGB888: - case DRM_FORMAT_ARGB8888: - case DRM_FORMAT_XRGB8888: - case DRM_FORMAT_ABGR8888: - case DRM_FORMAT_XBGR8888: - case DRM_FORMAT_RGBA8888: - case DRM_FORMAT_RGBX8888: - case DRM_FORMAT_BGRA8888: - case DRM_FORMAT_BGRX8888: - case DRM_FORMAT_ARGB2101010: - case DRM_FORMAT_XRGB2101010: - case DRM_FORMAT_ABGR2101010: - case DRM_FORMAT_XBGR2101010: - case DRM_FORMAT_RGBA1010102: - case DRM_FORMAT_RGBX1010102: - case DRM_FORMAT_BGRA1010102: - case DRM_FORMAT_BGRX1010102: - offsets[0] = 0; - kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]); - kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]); - - planes[0] = virtual; - break; - } - - fill_pattern(format, pattern, planes, width, height, pitches[0]); - kms_bo_unmap(bo); - - return bo; -} diff -Nru libdrm-2.4.52/tests/modetest/buffers.h libdrm-2.4.52+really2.4.21/tests/modetest/buffers.h --- libdrm-2.4.52/tests/modetest/buffers.h 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/modetest/buffers.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -/* - * DRM based mode setting test program - * Copyright 2008 Tungsten Graphics - * Jakob Bornecrantz - * Copyright 2008 Intel Corporation - * Jesse Barnes - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#ifndef __BUFFERS_H__ -#define __BUFFERS_H__ - -struct kms_bo; -struct kms_driver; - -enum fill_pattern { - PATTERN_TILES = 0, - PATTERN_PLAIN = 1, - PATTERN_SMPTE = 2, -}; - -struct kms_bo *create_test_buffer(struct kms_driver *kms, unsigned int format, - unsigned int width, unsigned int height, - unsigned int handles[4], unsigned int pitches[4], - unsigned int offsets[4], enum fill_pattern pattern); - -unsigned int format_fourcc(const char *name); - -#endif diff -Nru libdrm-2.4.52/tests/modetest/Makefile.am libdrm-2.4.52+really2.4.21/tests/modetest/Makefile.am --- libdrm-2.4.52/tests/modetest/Makefile.am 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/modetest/Makefile.am 2010-06-07 01:11:45.000000000 +0000 @@ -1,26 +1,15 @@ -AM_CFLAGS = $(filter-out -Wpointer-arith, $(WARN_CFLAGS)) - -AM_CFLAGS += \ +AM_CFLAGS = \ -I$(top_srcdir)/include/drm \ - -I$(top_srcdir)/libkms/ \ - -I$(top_srcdir) + -I$(top_srcdir)/intel/ \ + -I$(top_srcdir) \ + $(CAIRO_CFLAGS) -if HAVE_INSTALL_TESTS -bin_PROGRAMS = \ - modetest -else noinst_PROGRAMS = \ modetest -endif modetest_SOURCES = \ - buffers.c modetest.c buffers.h - + modetest.c modetest_LDADD = \ $(top_builddir)/libdrm.la \ - $(top_builddir)/libkms/libkms.la - -if HAVE_CAIRO -AM_CFLAGS += $(CAIRO_CFLAGS) -modetest_LDADD += $(CAIRO_LIBS) -endif + $(top_builddir)/intel/libdrm_intel.la \ + $(CAIRO_LIBS) diff -Nru libdrm-2.4.52/tests/modetest/Makefile.in libdrm-2.4.52+really2.4.21/tests/modetest/Makefile.in --- libdrm-2.4.52/tests/modetest/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/modetest/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,658 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_INSTALL_TESTS_TRUE@bin_PROGRAMS = modetest$(EXEEXT) -@HAVE_INSTALL_TESTS_FALSE@noinst_PROGRAMS = modetest$(EXEEXT) -@HAVE_CAIRO_TRUE@am__append_1 = $(CAIRO_CFLAGS) -@HAVE_CAIRO_TRUE@am__append_2 = $(CAIRO_LIBS) -subdir = tests/modetest -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" -PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) -am_modetest_OBJECTS = buffers.$(OBJEXT) modetest.$(OBJEXT) -modetest_OBJECTS = $(am_modetest_OBJECTS) -am__DEPENDENCIES_1 = -@HAVE_CAIRO_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) -modetest_DEPENDENCIES = $(top_builddir)/libdrm.la \ - $(top_builddir)/libkms/libkms.la $(am__DEPENDENCIES_2) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(modetest_SOURCES) -DIST_SOURCES = $(modetest_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = $(filter-out -Wpointer-arith, $(WARN_CFLAGS)) \ - -I$(top_srcdir)/include/drm -I$(top_srcdir)/libkms/ \ - -I$(top_srcdir) $(am__append_1) -modetest_SOURCES = \ - buffers.c modetest.c buffers.h - -modetest_LDADD = $(top_builddir)/libdrm.la \ - $(top_builddir)/libkms/libkms.la $(am__append_2) -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/modetest/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign tests/modetest/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -modetest$(EXEEXT): $(modetest_OBJECTS) $(modetest_DEPENDENCIES) $(EXTRA_modetest_DEPENDENCIES) - @rm -f modetest$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(modetest_OBJECTS) $(modetest_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffers.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modetest.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: - for dir in "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libtool \ - clean-noinstPROGRAMS mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-binPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic clean-libtool \ - clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-binPROGRAMS install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am uninstall-binPROGRAMS - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/tests/modetest/modetest.c libdrm-2.4.52+really2.4.21/tests/modetest/modetest.c --- libdrm-2.4.52/tests/modetest/modetest.c 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/modetest/modetest.c 2010-06-07 01:11:45.000000000 +0000 @@ -40,12 +40,9 @@ #include "config.h" #include -#include -#include #include #include #include -#include #include #include #include @@ -54,74 +51,27 @@ #include "xf86drm.h" #include "xf86drmMode.h" -#include "drm_fourcc.h" -#include "libkms.h" +#include "intel_bufmgr.h" +#include "i915_drm.h" -#include "buffers.h" - -struct crtc { - drmModeCrtc *crtc; - drmModeObjectProperties *props; - drmModePropertyRes **props_info; - drmModeModeInfo *mode; -}; - -struct encoder { - drmModeEncoder *encoder; -}; - -struct connector { - drmModeConnector *connector; - drmModeObjectProperties *props; - drmModePropertyRes **props_info; -}; - -struct fb { - drmModeFB *fb; -}; - -struct plane { - drmModePlane *plane; - drmModeObjectProperties *props; - drmModePropertyRes **props_info; -}; - -struct resources { - drmModeRes *res; - drmModePlaneRes *plane_res; - - struct crtc *crtcs; - struct encoder *encoders; - struct connector *connectors; - struct fb *fbs; - struct plane *planes; -}; - -struct device { - int fd; - - struct resources *resources; - struct kms_driver *kms; +#ifdef HAVE_CAIRO +#include +#include +#endif - struct { - unsigned int width; - unsigned int height; - - unsigned int fb_id; - struct kms_bo *bo; - } mode; -}; +drmModeRes *resources; +int fd, modes; #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) struct type_name { int type; - const char *name; + char *name; }; #define type_name_fn(res) \ -const char * res##_str(int type) { \ - unsigned int i; \ +char * res##_str(int type) { \ + int i; \ for (i = 0; i < ARRAY_SIZE(res##_names); i++) { \ if (res##_names[i].type == type) \ return res##_names[i].name; \ @@ -137,7 +87,7 @@ { DRM_MODE_ENCODER_TVDAC, "TVDAC" }, }; -static type_name_fn(encoder_type) +type_name_fn(encoder_type) struct type_name connector_status_names[] = { { DRM_MODE_CONNECTED, "connected" }, @@ -145,7 +95,7 @@ { DRM_MODE_UNKNOWNCONNECTION, "unknown" }, }; -static type_name_fn(connector_status) +type_name_fn(connector_status) struct type_name connector_type_names[] = { { DRM_MODE_CONNECTOR_Unknown, "unknown" }, @@ -158,84 +108,42 @@ { DRM_MODE_CONNECTOR_LVDS, "LVDS" }, { DRM_MODE_CONNECTOR_Component, "component" }, { DRM_MODE_CONNECTOR_9PinDIN, "9-pin DIN" }, - { DRM_MODE_CONNECTOR_DisplayPort, "DP" }, + { DRM_MODE_CONNECTOR_DisplayPort, "displayport" }, { DRM_MODE_CONNECTOR_HDMIA, "HDMI-A" }, { DRM_MODE_CONNECTOR_HDMIB, "HDMI-B" }, - { DRM_MODE_CONNECTOR_TV, "TV" }, - { DRM_MODE_CONNECTOR_eDP, "eDP" }, -}; - -static type_name_fn(connector_type) - -#define bit_name_fn(res) \ -const char * res##_str(int type) { \ - unsigned int i; \ - const char *sep = ""; \ - for (i = 0; i < ARRAY_SIZE(res##_names); i++) { \ - if (type & (1 << i)) { \ - printf("%s%s", sep, res##_names[i]); \ - sep = ", "; \ - } \ - } \ - return NULL; \ -} - -static const char *mode_type_names[] = { - "builtin", - "clock_c", - "crtc_c", - "preferred", - "default", - "userdef", - "driver", -}; - -static bit_name_fn(mode_type) - -static const char *mode_flag_names[] = { - "phsync", - "nhsync", - "pvsync", - "nvsync", - "interlace", - "dblscan", - "csync", - "pcsync", - "ncsync", - "hskew", - "bcast", - "pixmux", - "dblclk", - "clkdiv2" }; -static bit_name_fn(mode_flag) +type_name_fn(connector_type) -static void dump_encoders(struct device *dev) +void dump_encoders(void) { drmModeEncoder *encoder; int i; printf("Encoders:\n"); printf("id\tcrtc\ttype\tpossible crtcs\tpossible clones\t\n"); - for (i = 0; i < dev->resources->res->count_encoders; i++) { - encoder = dev->resources->encoders[i].encoder; - if (!encoder) - continue; + for (i = 0; i < resources->count_encoders; i++) { + encoder = drmModeGetEncoder(fd, resources->encoders[i]); + if (!encoder) { + fprintf(stderr, "could not get encoder %i: %s\n", + resources->encoders[i], strerror(errno)); + continue; + } printf("%d\t%d\t%s\t0x%08x\t0x%08x\n", encoder->encoder_id, encoder->crtc_id, encoder_type_str(encoder->encoder_type), encoder->possible_crtcs, encoder->possible_clones); + drmModeFreeEncoder(encoder); } printf("\n"); } -static void dump_mode(drmModeModeInfo *mode) +void dump_mode(drmModeModeInfo *mode) { - printf(" %s %d %d %d %d %d %d %d %d %d", + printf(" %s %d %d %d %d %d %d %d %d %d\n", mode->name, mode->vrefresh, mode->hdisplay, @@ -246,113 +154,36 @@ mode->vsync_start, mode->vsync_end, mode->vtotal); - - printf(" flags: "); - mode_flag_str(mode->flags); - printf("; type: "); - mode_type_str(mode->type); - printf("\n"); -} - -static void dump_blob(struct device *dev, uint32_t blob_id) -{ - uint32_t i; - unsigned char *blob_data; - drmModePropertyBlobPtr blob; - - blob = drmModeGetPropertyBlob(dev->fd, blob_id); - if (!blob) - return; - - blob_data = blob->data; - - for (i = 0; i < blob->length; i++) { - if (i % 16 == 0) - printf("\n\t\t\t"); - printf("%.2hhx", blob_data[i]); - } - printf("\n"); - - drmModeFreePropertyBlob(blob); } -static void dump_prop(struct device *dev, drmModePropertyPtr prop, - uint32_t prop_id, uint64_t value) +static void +dump_props(drmModeConnector *connector) { + drmModePropertyPtr props; int i; - printf("\t%d", prop_id); - if (!prop) { - printf("\n"); - return; - } - - printf(" %s:\n", prop->name); - - printf("\t\tflags:"); - if (prop->flags & DRM_MODE_PROP_PENDING) - printf(" pending"); - if (prop->flags & DRM_MODE_PROP_RANGE) - printf(" range"); - if (prop->flags & DRM_MODE_PROP_IMMUTABLE) - printf(" immutable"); - if (prop->flags & DRM_MODE_PROP_ENUM) - printf(" enum"); - if (prop->flags & DRM_MODE_PROP_BITMASK) - printf(" bitmask"); - if (prop->flags & DRM_MODE_PROP_BLOB) - printf(" blob"); - printf("\n"); - - if (prop->flags & DRM_MODE_PROP_RANGE) { - printf("\t\tvalues:"); - for (i = 0; i < prop->count_values; i++) - printf(" %"PRIu64, prop->values[i]); - printf("\n"); - } - - if (prop->flags & DRM_MODE_PROP_ENUM) { - printf("\t\tenums:"); - for (i = 0; i < prop->count_enums; i++) - printf(" %s=%llu", prop->enums[i].name, - prop->enums[i].value); - printf("\n"); - } else if (prop->flags & DRM_MODE_PROP_BITMASK) { - printf("\t\tvalues:"); - for (i = 0; i < prop->count_enums; i++) - printf(" %s=0x%llx", prop->enums[i].name, - (1LL << prop->enums[i].value)); - printf("\n"); - } else { - assert(prop->count_enums == 0); - } - if (prop->flags & DRM_MODE_PROP_BLOB) { - printf("\t\tblobs:\n"); - for (i = 0; i < prop->count_blobs; i++) - dump_blob(dev, prop->blob_ids[i]); - printf("\n"); - } else { - assert(prop->count_blobs == 0); + for (i = 0; i < connector->count_props; i++) { + props = drmModeGetProperty(fd, connector->props[i]); + printf("\t%s, flags %d\n", props->name, props->flags); + drmModeFreeProperty(props); } - - printf("\t\tvalue:"); - if (prop->flags & DRM_MODE_PROP_BLOB) - dump_blob(dev, value); - else - printf(" %"PRIu64"\n", value); } -static void dump_connectors(struct device *dev) +void dump_connectors(void) { + drmModeConnector *connector; int i, j; printf("Connectors:\n"); printf("id\tencoder\tstatus\t\ttype\tsize (mm)\tmodes\tencoders\n"); - for (i = 0; i < dev->resources->res->count_connectors; i++) { - struct connector *_connector = &dev->resources->connectors[i]; - drmModeConnector *connector = _connector->connector; - if (!connector) + for (i = 0; i < resources->count_connectors; i++) { + connector = drmModeGetConnector(fd, resources->connectors[i]); + + if (!connector) { + fprintf(stderr, "could not get connector %i: %s\n", + resources->connectors[i], strerror(errno)); continue; + } printf("%d\t%d\t%s\t%s\t%dx%d\t\t%d\t", connector->connector_id, @@ -366,38 +197,38 @@ printf("%s%d", j > 0 ? ", " : "", connector->encoders[j]); printf("\n"); - if (connector->count_modes) { - printf(" modes:\n"); - printf("\tname refresh (Hz) hdisp hss hse htot vdisp " - "vss vse vtot)\n"); - for (j = 0; j < connector->count_modes; j++) - dump_mode(&connector->modes[j]); - } + if (!connector->count_modes) + continue; - if (_connector->props) { - printf(" props:\n"); - for (j = 0; j < (int)_connector->props->count_props; j++) - dump_prop(dev, _connector->props_info[j], - _connector->props->props[j], - _connector->props->prop_values[j]); - } + printf(" modes:\n"); + printf(" name refresh (Hz) hdisp hss hse htot vdisp " + "vss vse vtot)\n"); + for (j = 0; j < connector->count_modes; j++) + dump_mode(&connector->modes[j]); + + printf(" props:\n"); + dump_props(connector); + + drmModeFreeConnector(connector); } printf("\n"); } -static void dump_crtcs(struct device *dev) +void dump_crtcs(void) { + drmModeCrtc *crtc; int i; - uint32_t j; printf("CRTCs:\n"); printf("id\tfb\tpos\tsize\n"); - for (i = 0; i < dev->resources->res->count_crtcs; i++) { - struct crtc *_crtc = &dev->resources->crtcs[i]; - drmModeCrtc *crtc = _crtc->crtc; - if (!crtc) - continue; + for (i = 0; i < resources->count_crtcs; i++) { + crtc = drmModeGetCrtc(fd, resources->crtcs[i]); + if (!crtc) { + fprintf(stderr, "could not get crtc %i: %s\n", + resources->crtcs[i], strerror(errno)); + continue; + } printf("%d\t%d\t(%d,%d)\t(%dx%d)\n", crtc->crtc_id, crtc->buffer_id, @@ -405,281 +236,36 @@ crtc->width, crtc->height); dump_mode(&crtc->mode); - if (_crtc->props) { - printf(" props:\n"); - for (j = 0; j < _crtc->props->count_props; j++) - dump_prop(dev, _crtc->props_info[j], - _crtc->props->props[j], - _crtc->props->prop_values[j]); - } else { - printf(" no properties found\n"); - } + drmModeFreeCrtc(crtc); } printf("\n"); } -static void dump_framebuffers(struct device *dev) +void dump_framebuffers(void) { drmModeFB *fb; int i; printf("Frame buffers:\n"); printf("id\tsize\tpitch\n"); - for (i = 0; i < dev->resources->res->count_fbs; i++) { - fb = dev->resources->fbs[i].fb; - if (!fb) - continue; + for (i = 0; i < resources->count_fbs; i++) { + fb = drmModeGetFB(fd, resources->fbs[i]); + if (!fb) { + fprintf(stderr, "could not get fb %i: %s\n", + resources->fbs[i], strerror(errno)); + continue; + } printf("%u\t(%ux%u)\t%u\n", fb->fb_id, fb->width, fb->height, fb->pitch); - } - printf("\n"); -} - -static void dump_planes(struct device *dev) -{ - unsigned int i, j; - printf("Planes:\n"); - printf("id\tcrtc\tfb\tCRTC x,y\tx,y\tgamma size\tpossible crtcs\n"); - - if (!dev->resources->plane_res) - return; - - for (i = 0; i < dev->resources->plane_res->count_planes; i++) { - struct plane *plane = &dev->resources->planes[i]; - drmModePlane *ovr = plane->plane; - if (!ovr) - continue; - - printf("%d\t%d\t%d\t%d,%d\t\t%d,%d\t%-8d\t0x%08x\n", - ovr->plane_id, ovr->crtc_id, ovr->fb_id, - ovr->crtc_x, ovr->crtc_y, ovr->x, ovr->y, - ovr->gamma_size, ovr->possible_crtcs); - - if (!ovr->count_formats) - continue; - - printf(" formats:"); - for (j = 0; j < ovr->count_formats; j++) - printf(" %4.4s", (char *)&ovr->formats[j]); - printf("\n"); - - if (plane->props) { - printf(" props:\n"); - for (j = 0; j < plane->props->count_props; j++) - dump_prop(dev, plane->props_info[j], - plane->props->props[j], - plane->props->prop_values[j]); - } else { - printf(" no properties found\n"); - } + drmModeFreeFB(fb); } printf("\n"); - - return; -} - -static void free_resources(struct resources *res) -{ - if (!res) - return; - -#define free_resource(_res, __res, type, Type) \ - do { \ - int i; \ - if (!(_res)->type##s) \ - break; \ - for (i = 0; i < (int)(_res)->__res->count_##type##s; ++i) { \ - if (!(_res)->type##s[i].type) \ - break; \ - drmModeFree##Type((_res)->type##s[i].type); \ - } \ - free((_res)->type##s); \ - } while (0) - -#define free_properties(_res, __res, type) \ - do { \ - int i; \ - for (i = 0; i < (int)(_res)->__res->count_##type##s; ++i) { \ - drmModeFreeObjectProperties(res->type##s[i].props); \ - free(res->type##s[i].props_info); \ - } \ - } while (0) - - if (res->res) { - free_properties(res, res, crtc); - - free_resource(res, res, crtc, Crtc); - free_resource(res, res, encoder, Encoder); - free_resource(res, res, connector, Connector); - free_resource(res, res, fb, FB); - - drmModeFreeResources(res->res); - } - - if (res->plane_res) { - free_properties(res, plane_res, plane); - - free_resource(res, plane_res, plane, Plane); - - drmModeFreePlaneResources(res->plane_res); - } - - free(res); -} - -static struct resources *get_resources(struct device *dev) -{ - struct resources *res; - int i; - - res = malloc(sizeof *res); - if (res == 0) - return NULL; - - memset(res, 0, sizeof *res); - - res->res = drmModeGetResources(dev->fd); - if (!res->res) { - fprintf(stderr, "drmModeGetResources failed: %s\n", - strerror(errno)); - goto error; - } - - res->crtcs = malloc(res->res->count_crtcs * sizeof *res->crtcs); - res->encoders = malloc(res->res->count_encoders * sizeof *res->encoders); - res->connectors = malloc(res->res->count_connectors * sizeof *res->connectors); - res->fbs = malloc(res->res->count_fbs * sizeof *res->fbs); - - if (!res->crtcs || !res->encoders || !res->connectors || !res->fbs) - goto error; - - memset(res->crtcs , 0, res->res->count_crtcs * sizeof *res->crtcs); - memset(res->encoders, 0, res->res->count_encoders * sizeof *res->encoders); - memset(res->connectors, 0, res->res->count_connectors * sizeof *res->connectors); - memset(res->fbs, 0, res->res->count_fbs * sizeof *res->fbs); - -#define get_resource(_res, __res, type, Type) \ - do { \ - int i; \ - for (i = 0; i < (int)(_res)->__res->count_##type##s; ++i) { \ - (_res)->type##s[i].type = \ - drmModeGet##Type(dev->fd, (_res)->__res->type##s[i]); \ - if (!(_res)->type##s[i].type) \ - fprintf(stderr, "could not get %s %i: %s\n", \ - #type, (_res)->__res->type##s[i], \ - strerror(errno)); \ - } \ - } while (0) - - get_resource(res, res, crtc, Crtc); - get_resource(res, res, encoder, Encoder); - get_resource(res, res, connector, Connector); - get_resource(res, res, fb, FB); - -#define get_properties(_res, __res, type, Type) \ - do { \ - int i; \ - for (i = 0; i < (int)(_res)->__res->count_##type##s; ++i) { \ - struct type *obj = &res->type##s[i]; \ - unsigned int j; \ - obj->props = \ - drmModeObjectGetProperties(dev->fd, obj->type->type##_id, \ - DRM_MODE_OBJECT_##Type); \ - if (!obj->props) { \ - fprintf(stderr, \ - "could not get %s %i properties: %s\n", \ - #type, obj->type->type##_id, \ - strerror(errno)); \ - continue; \ - } \ - obj->props_info = malloc(obj->props->count_props * \ - sizeof *obj->props_info); \ - if (!obj->props_info) \ - continue; \ - for (j = 0; j < obj->props->count_props; ++j) \ - obj->props_info[j] = \ - drmModeGetProperty(dev->fd, obj->props->props[j]); \ - } \ - } while (0) - - get_properties(res, res, crtc, CRTC); - get_properties(res, res, connector, CONNECTOR); - - for (i = 0; i < res->res->count_crtcs; ++i) - res->crtcs[i].mode = &res->crtcs[i].crtc->mode; - - res->plane_res = drmModeGetPlaneResources(dev->fd); - if (!res->plane_res) { - fprintf(stderr, "drmModeGetPlaneResources failed: %s\n", - strerror(errno)); - return res; - } - - res->planes = malloc(res->plane_res->count_planes * sizeof *res->planes); - if (!res->planes) - goto error; - - memset(res->planes, 0, res->plane_res->count_planes * sizeof *res->planes); - - get_resource(res, plane_res, plane, Plane); - get_properties(res, plane_res, plane, PLANE); - - return res; - -error: - free_resources(res); - return NULL; -} - -static int get_crtc_index(struct device *dev, uint32_t id) -{ - int i; - - for (i = 0; i < dev->resources->res->count_crtcs; ++i) { - drmModeCrtc *crtc = dev->resources->crtcs[i].crtc; - if (crtc && crtc->crtc_id == id) - return i; - } - - return -1; -} - -static drmModeConnector *get_connector_by_id(struct device *dev, uint32_t id) -{ - drmModeConnector *connector; - int i; - - for (i = 0; i < dev->resources->res->count_connectors; i++) { - connector = dev->resources->connectors[i].connector; - if (connector && connector->connector_id == id) - return connector; - } - - return NULL; } -static drmModeEncoder *get_encoder_by_id(struct device *dev, uint32_t id) -{ - drmModeEncoder *encoder; - int i; - - for (i = 0; i < dev->resources->res->count_encoders; i++) { - encoder = dev->resources->encoders[i].encoder; - if (encoder && encoder->encoder_id == id) - return encoder; - } - - return NULL; -} - -/* ----------------------------------------------------------------------------- - * Pipes and planes - */ - /* * Mode setting with the kernel interfaces is a bit of a chore. * First you have to find the connector in question and make sure the @@ -687,402 +273,312 @@ * Then you need to find the encoder attached to that connector so you * can bind it with a free crtc. */ -struct pipe_arg { - uint32_t *con_ids; - unsigned int num_cons; - uint32_t crtc_id; +struct connector { + uint32_t id; char mode_str[64]; - char format_str[5]; - unsigned int vrefresh; - unsigned int fourcc; drmModeModeInfo *mode; - struct crtc *crtc; + drmModeEncoder *encoder; + int crtc; unsigned int fb_id[2], current_fb_id; struct timeval start; int swap_count; -}; - -struct plane_arg { - uint32_t crtc_id; /* the id of CRTC to bind to */ - bool has_position; - int32_t x, y; - uint32_t w, h; - double scale; - unsigned int fb_id; - char format_str[5]; /* need to leave room for terminating \0 */ - unsigned int fourcc; -}; +}; -static drmModeModeInfo * -connector_find_mode(struct device *dev, uint32_t con_id, const char *mode_str, - const unsigned int vrefresh) +static void +connector_find_mode(struct connector *c) { drmModeConnector *connector; - drmModeModeInfo *mode; - int i; - - connector = get_connector_by_id(dev, con_id); - if (!connector || !connector->count_modes) - return NULL; - - for (i = 0; i < connector->count_modes; i++) { - mode = &connector->modes[i]; - if (!strcmp(mode->name, mode_str)) { - /* If the vertical refresh frequency is not specified then return the - * first mode that match with the name. Else, return the mode that match - * the name and the specified vertical refresh frequency. - */ - if (vrefresh == 0) - return mode; - else if (mode->vrefresh == vrefresh) - return mode; - } - } + int i, j; - return NULL; -} + /* First, find the connector & mode */ + c->mode = NULL; + for (i = 0; i < resources->count_connectors; i++) { + connector = drmModeGetConnector(fd, resources->connectors[i]); -static struct crtc *pipe_find_crtc(struct device *dev, struct pipe_arg *pipe) -{ - uint32_t possible_crtcs = ~0; - uint32_t active_crtcs = 0; - unsigned int crtc_idx; - unsigned int i; - int j; - - for (i = 0; i < pipe->num_cons; ++i) { - uint32_t crtcs_for_connector = 0; - drmModeConnector *connector; - drmModeEncoder *encoder; - int idx; - - connector = get_connector_by_id(dev, pipe->con_ids[i]); - if (!connector) - return NULL; - - for (j = 0; j < connector->count_encoders; ++j) { - encoder = get_encoder_by_id(dev, connector->encoders[j]); - if (!encoder) - continue; - - crtcs_for_connector |= encoder->possible_crtcs; - - idx = get_crtc_index(dev, encoder->crtc_id); - if (idx >= 0) - active_crtcs |= 1 << idx; + if (!connector) { + fprintf(stderr, "could not get connector %i: %s\n", + resources->connectors[i], strerror(errno)); + drmModeFreeConnector(connector); + continue; } - possible_crtcs &= crtcs_for_connector; - } - - if (!possible_crtcs) - return NULL; - - /* Return the first possible and active CRTC if one exists, or the first - * possible CRTC otherwise. - */ - if (possible_crtcs & active_crtcs) - crtc_idx = ffs(possible_crtcs & active_crtcs); - else - crtc_idx = ffs(possible_crtcs); - - return &dev->resources->crtcs[crtc_idx - 1]; -} - -static int pipe_find_crtc_and_mode(struct device *dev, struct pipe_arg *pipe) -{ - drmModeModeInfo *mode = NULL; - int i; - - pipe->mode = NULL; - - for (i = 0; i < (int)pipe->num_cons; i++) { - mode = connector_find_mode(dev, pipe->con_ids[i], - pipe->mode_str, pipe->vrefresh); - if (mode == NULL) { - fprintf(stderr, - "failed to find mode \"%s\" for connector %u\n", - pipe->mode_str, pipe->con_ids[i]); - return -EINVAL; + if (!connector->count_modes) { + drmModeFreeConnector(connector); + continue; } - } - /* If the CRTC ID was specified, get the corresponding CRTC. Otherwise - * locate a CRTC that can be attached to all the connectors. - */ - if (pipe->crtc_id != (uint32_t)-1) { - for (i = 0; i < dev->resources->res->count_crtcs; i++) { - struct crtc *crtc = &dev->resources->crtcs[i]; + if (connector->connector_id != c->id) { + drmModeFreeConnector(connector); + continue; + } - if (pipe->crtc_id == crtc->crtc->crtc_id) { - pipe->crtc = crtc; + for (j = 0; j < connector->count_modes; j++) { + c->mode = &connector->modes[j]; + if (!strcmp(c->mode->name, c->mode_str)) break; - } } - } else { - pipe->crtc = pipe_find_crtc(dev, pipe); - } - - if (!pipe->crtc) { - fprintf(stderr, "failed to find CRTC for pipe\n"); - return -EINVAL; - } - - pipe->mode = mode; - pipe->crtc->mode = mode; - - return 0; -} - -/* ----------------------------------------------------------------------------- - * Properties - */ - -struct property_arg { - uint32_t obj_id; - uint32_t obj_type; - char name[DRM_PROP_NAME_LEN+1]; - uint32_t prop_id; - uint64_t value; -}; - -static void set_property(struct device *dev, struct property_arg *p) -{ - drmModeObjectProperties *props = NULL; - drmModePropertyRes **props_info = NULL; - const char *obj_type; - int ret; - int i; - p->obj_type = 0; - p->prop_id = 0; + /* Found it, break out */ + if (c->mode) + break; -#define find_object(_res, __res, type, Type) \ - do { \ - for (i = 0; i < (int)(_res)->__res->count_##type##s; ++i) { \ - struct type *obj = &(_res)->type##s[i]; \ - if (obj->type->type##_id != p->obj_id) \ - continue; \ - p->obj_type = DRM_MODE_OBJECT_##Type; \ - obj_type = #Type; \ - props = obj->props; \ - props_info = obj->props_info; \ - } \ - } while(0) \ - - find_object(dev->resources, res, crtc, CRTC); - if (p->obj_type == 0) - find_object(dev->resources, res, connector, CONNECTOR); - if (p->obj_type == 0) - find_object(dev->resources, plane_res, plane, PLANE); - if (p->obj_type == 0) { - fprintf(stderr, "Object %i not found, can't set property\n", - p->obj_id); - return; + drmModeFreeConnector(connector); } - if (!props) { - fprintf(stderr, "%s %i has no properties\n", - obj_type, p->obj_id); + if (!c->mode) { + fprintf(stderr, "failed to find mode \"%s\"\n", c->mode_str); return; } - for (i = 0; i < (int)props->count_props; ++i) { - if (!props_info[i]) - continue; - if (strcmp(props_info[i]->name, p->name) == 0) - break; - } - - if (i == (int)props->count_props) { - fprintf(stderr, "%s %i has no %s property\n", - obj_type, p->obj_id, p->name); - return; + /* Now get the encoder */ + for (i = 0; i < resources->count_encoders; i++) { + c->encoder = drmModeGetEncoder(fd, resources->encoders[i]); + + if (!c->encoder) { + fprintf(stderr, "could not get encoder %i: %s\n", + resources->encoders[i], strerror(errno)); + drmModeFreeEncoder(c->encoder); + continue; + } + + if (c->encoder->encoder_id == connector->encoder_id) + break; + + drmModeFreeEncoder(c->encoder); + } + + if (c->crtc == -1) + c->crtc = c->encoder->crtc_id; +} + +#ifdef HAVE_CAIRO + +static int +create_test_buffer(drm_intel_bufmgr *bufmgr, + int width, int height, int *stride_out, drm_intel_bo **bo_out) +{ + drm_intel_bo *bo; + unsigned int *fb_ptr; + int size, i, stride; + div_t d; + cairo_surface_t *surface; + cairo_t *cr; + char buf[64]; + int x, y; + + surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); + stride = cairo_image_surface_get_stride(surface); + size = stride * height; + fb_ptr = (unsigned int *) cairo_image_surface_get_data(surface); + + /* paint the buffer with colored tiles */ + for (i = 0; i < width * height; i++) { + d = div(i, width); + fb_ptr[i] = 0x00130502 * (d.quot >> 6) + 0x000a1120 * (d.rem >> 6); + } + + cr = cairo_create(surface); + cairo_set_line_cap(cr, CAIRO_LINE_CAP_SQUARE); + for (x = 0; x < width; x += 250) + for (y = 0; y < height; y += 250) { + cairo_set_operator(cr, CAIRO_OPERATOR_OVER); + cairo_move_to(cr, x, y - 20); + cairo_line_to(cr, x, y + 20); + cairo_move_to(cr, x - 20, y); + cairo_line_to(cr, x + 20, y); + cairo_new_sub_path(cr); + cairo_arc(cr, x, y, 10, 0, M_PI * 2); + cairo_set_line_width(cr, 4); + cairo_set_source_rgb(cr, 0, 0, 0); + cairo_stroke_preserve(cr); + cairo_set_source_rgb(cr, 1, 1, 1); + cairo_set_line_width(cr, 2); + cairo_stroke(cr); + snprintf(buf, sizeof buf, "%d, %d", x, y); + cairo_move_to(cr, x + 20, y + 20); + cairo_text_path(cr, buf); + cairo_set_source_rgb(cr, 0, 0, 0); + cairo_stroke_preserve(cr); + cairo_set_source_rgb(cr, 1, 1, 1); + cairo_fill(cr); + } + + cairo_destroy(cr); + + bo = drm_intel_bo_alloc(bufmgr, "frontbuffer", size, 4096); + if (!bo) { + fprintf(stderr, "failed to alloc buffer: %s\n", + strerror(errno)); + return -1; } - p->prop_id = props->props[i]; - - ret = drmModeObjectSetProperty(dev->fd, p->obj_id, p->obj_type, - p->prop_id, p->value); - if (ret < 0) - fprintf(stderr, "failed to set %s %i property %s to %" PRIu64 ": %s\n", - obj_type, p->obj_id, p->name, p->value, strerror(errno)); -} - -/* -------------------------------------------------------------------------- */ + drm_intel_bo_subdata(bo, 0, size, fb_ptr); -static void -page_flip_handler(int fd, unsigned int frame, - unsigned int sec, unsigned int usec, void *data) -{ - struct pipe_arg *pipe; - unsigned int new_fb_id; - struct timeval end; - double t; + cairo_surface_destroy(surface); - pipe = data; - if (pipe->current_fb_id == pipe->fb_id[0]) - new_fb_id = pipe->fb_id[1]; - else - new_fb_id = pipe->fb_id[0]; + *bo_out = bo; + *stride_out = stride; - drmModePageFlip(fd, pipe->crtc->crtc->crtc_id, new_fb_id, - DRM_MODE_PAGE_FLIP_EVENT, pipe); - pipe->current_fb_id = new_fb_id; - pipe->swap_count++; - if (pipe->swap_count == 60) { - gettimeofday(&end, NULL); - t = end.tv_sec + end.tv_usec * 1e-6 - - (pipe->start.tv_sec + pipe->start.tv_usec * 1e-6); - fprintf(stderr, "freq: %.02fHz\n", pipe->swap_count / t); - pipe->swap_count = 0; - pipe->start = end; - } + return 0; } -static int set_plane(struct device *dev, struct plane_arg *p) -{ - drmModePlane *ovr; - uint32_t handles[4], pitches[4], offsets[4] = {0}; /* we only use [0] */ - uint32_t plane_id = 0; - struct kms_bo *plane_bo; - uint32_t plane_flags = 0; - int crtc_x, crtc_y, crtc_w, crtc_h; - struct crtc *crtc = NULL; - unsigned int pipe; - unsigned int i; - - /* Find an unused plane which can be connected to our CRTC. Find the - * CRTC index first, then iterate over available planes. - */ - for (i = 0; i < (unsigned int)dev->resources->res->count_crtcs; i++) { - if (p->crtc_id == dev->resources->res->crtcs[i]) { - crtc = &dev->resources->crtcs[i]; - pipe = i; - break; - } +#else + +static int +create_test_buffer(drm_intel_bufmgr *bufmgr, + int width, int height, int *stride_out, drm_intel_bo **bo_out) +{ + drm_intel_bo *bo; + unsigned int *fb_ptr; + int size, ret, i, stride; + div_t d; + + /* Mode size at 32 bpp */ + stride = width * 4; + size = stride * height; + + bo = drm_intel_bo_alloc(bufmgr, "frontbuffer", size, 4096); + if (!bo) { + fprintf(stderr, "failed to alloc buffer: %s\n", + strerror(errno)); + return -1; } - if (!crtc) { - fprintf(stderr, "CRTC %u not found\n", p->crtc_id); + ret = drm_intel_gem_bo_map_gtt(bo); + if (ret) { + fprintf(stderr, "failed to GTT map buffer: %s\n", + strerror(errno)); return -1; } - for (i = 0; i < dev->resources->plane_res->count_planes && !plane_id; i++) { - ovr = dev->resources->planes[i].plane; - if (!ovr) - continue; + fb_ptr = bo->virtual; - if ((ovr->possible_crtcs & (1 << pipe)) && !ovr->crtc_id) - plane_id = ovr->plane_id; + /* paint the buffer with colored tiles */ + for (i = 0; i < width * height; i++) { + d = div(i, width); + fb_ptr[i] = 0x00130502 * (d.quot >> 6) + 0x000a1120 * (d.rem >> 6); } + drm_intel_gem_bo_unmap_gtt(bo); - if (!plane_id) { - fprintf(stderr, "no unused plane available for CRTC %u\n", - crtc->crtc->crtc_id); - return -1; - } + *bo_out = bo; + *stride_out = stride; - fprintf(stderr, "testing %dx%d@%s overlay plane %u\n", - p->w, p->h, p->format_str, plane_id); + return 0; +} - plane_bo = create_test_buffer(dev->kms, p->fourcc, p->w, p->h, handles, - pitches, offsets, PATTERN_TILES); - if (plane_bo == NULL) - return -1; +#endif - /* just use single plane format for now.. */ - if (drmModeAddFB2(dev->fd, p->w, p->h, p->fourcc, - handles, pitches, offsets, &p->fb_id, plane_flags)) { - fprintf(stderr, "failed to add fb: %s\n", strerror(errno)); +static int +create_grey_buffer(drm_intel_bufmgr *bufmgr, + int width, int height, int *stride_out, drm_intel_bo **bo_out) +{ + drm_intel_bo *bo; + int size, ret, stride; + + /* Mode size at 32 bpp */ + stride = width * 4; + size = stride * height; + + bo = drm_intel_bo_alloc(bufmgr, "frontbuffer", size, 4096); + if (!bo) { + fprintf(stderr, "failed to alloc buffer: %s\n", + strerror(errno)); return -1; } - crtc_w = p->w * p->scale; - crtc_h = p->h * p->scale; - if (!p->has_position) { - /* Default to the middle of the screen */ - crtc_x = (crtc->mode->hdisplay - crtc_w) / 2; - crtc_y = (crtc->mode->vdisplay - crtc_h) / 2; - } else { - crtc_x = p->x; - crtc_y = p->y; - } - - /* note src coords (last 4 args) are in Q16 format */ - if (drmModeSetPlane(dev->fd, plane_id, crtc->crtc->crtc_id, p->fb_id, - plane_flags, crtc_x, crtc_y, crtc_w, crtc_h, - 0, 0, p->w << 16, p->h << 16)) { - fprintf(stderr, "failed to enable plane: %s\n", + ret = drm_intel_gem_bo_map_gtt(bo); + if (ret) { + fprintf(stderr, "failed to GTT map buffer: %s\n", strerror(errno)); return -1; } - ovr->crtc_id = crtc->crtc->crtc_id; + memset(bo->virtual, 0x77, size); + drm_intel_gem_bo_unmap_gtt(bo); + + *bo_out = bo; + *stride_out = stride; return 0; } -static void set_mode(struct device *dev, struct pipe_arg *pipes, unsigned int count) +void +page_flip_handler(int fd, unsigned int frame, + unsigned int sec, unsigned int usec, void *data) { - uint32_t handles[4], pitches[4], offsets[4] = {0}; /* we only use [0] */ - unsigned int fb_id; - struct kms_bo *bo; - unsigned int i; - unsigned int j; - int ret, x; + struct connector *c; + unsigned int new_fb_id; + struct timeval end; + double t; - dev->mode.width = 0; - dev->mode.height = 0; + c = data; + if (c->current_fb_id == c->fb_id[0]) + new_fb_id = c->fb_id[1]; + else + new_fb_id = c->fb_id[0]; + + drmModePageFlip(fd, c->crtc, new_fb_id, + DRM_MODE_PAGE_FLIP_EVENT, c); + c->current_fb_id = new_fb_id; + c->swap_count++; + if (c->swap_count == 60) { + gettimeofday(&end, NULL); + t = end.tv_sec + end.tv_usec * 1e-6 - + (c->start.tv_sec + c->start.tv_usec * 1e-6); + fprintf(stderr, "freq: %.02fHz\n", c->swap_count / t); + c->swap_count = 0; + c->start = end; + } +} - for (i = 0; i < count; i++) { - struct pipe_arg *pipe = &pipes[i]; +static void +set_mode(struct connector *c, int count, int page_flip) +{ + drm_intel_bufmgr *bufmgr; + drm_intel_bo *bo, *other_bo; + unsigned int fb_id, other_fb_id; + int i, ret, width, height, x, stride; + drmEventContext evctx; - ret = pipe_find_crtc_and_mode(dev, pipe); - if (ret < 0) + width = 0; + height = 0; + for (i = 0; i < count; i++) { + connector_find_mode(&c[i]); + if (c[i].mode == NULL) continue; + width += c[i].mode->hdisplay; + if (height < c[i].mode->vdisplay) + height = c[i].mode->vdisplay; + } - dev->mode.width += pipe->mode->hdisplay; - if (dev->mode.height < pipe->mode->vdisplay) - dev->mode.height = pipe->mode->vdisplay; + bufmgr = drm_intel_bufmgr_gem_init(fd, 2<<20); + if (!bufmgr) { + fprintf(stderr, "failed to init bufmgr: %s\n", strerror(errno)); + return; } - bo = create_test_buffer(dev->kms, pipes[0].fourcc, - dev->mode.width, dev->mode.height, - handles, pitches, offsets, PATTERN_SMPTE); - if (bo == NULL) + if (create_test_buffer(bufmgr, width, height, &stride, &bo)) return; - ret = drmModeAddFB2(dev->fd, dev->mode.width, dev->mode.height, - pipes[0].fourcc, handles, pitches, offsets, &fb_id, 0); + ret = drmModeAddFB(fd, width, height, 32, 32, stride, bo->handle, + &fb_id); if (ret) { - fprintf(stderr, "failed to add fb (%ux%u): %s\n", - dev->mode.width, dev->mode.height, strerror(errno)); + fprintf(stderr, "failed to add fb: %s\n", strerror(errno)); return; } x = 0; for (i = 0; i < count; i++) { - struct pipe_arg *pipe = &pipes[i]; - - if (pipe->mode == NULL) + if (c[i].mode == NULL) continue; - printf("setting mode %s-%dHz@%s on connectors ", - pipe->mode_str, pipe->mode->vrefresh, pipe->format_str); - for (j = 0; j < pipe->num_cons; ++j) - printf("%u, ", pipe->con_ids[j]); - printf("crtc %d\n", pipe->crtc->crtc->crtc_id); - - ret = drmModeSetCrtc(dev->fd, pipe->crtc->crtc->crtc_id, fb_id, - x, 0, pipe->con_ids, pipe->num_cons, - pipe->mode); - - /* XXX: Actually check if this is needed */ - drmModeDirtyFB(dev->fd, fb_id, NULL, 0); + printf("setting mode %s on connector %d, crtc %d\n", + c[i].mode_str, c[i].id, c[i].crtc); - x += pipe->mode->hdisplay; + ret = drmModeSetCrtc(fd, c[i].crtc, fb_id, x, 0, + &c[i].id, 1, c[i].mode); + x += c[i].mode->hdisplay; if (ret) { fprintf(stderr, "failed to set mode: %s\n", strerror(errno)); @@ -1090,61 +586,30 @@ } } - dev->mode.bo = bo; - dev->mode.fb_id = fb_id; -} - -static void set_planes(struct device *dev, struct plane_arg *p, unsigned int count) -{ - unsigned int i; - - /* set up planes/overlays */ - for (i = 0; i < count; i++) - if (set_plane(dev, &p[i])) - return; -} - -static void test_page_flip(struct device *dev, struct pipe_arg *pipes, unsigned int count) -{ - uint32_t handles[4], pitches[4], offsets[4] = {0}; /* we only use [0] */ - unsigned int other_fb_id; - struct kms_bo *other_bo; - drmEventContext evctx; - unsigned int i; - int ret; + if (!page_flip) + return; - other_bo = create_test_buffer(dev->kms, pipes[0].fourcc, - dev->mode.width, dev->mode.height, - handles, pitches, offsets, PATTERN_PLAIN); - if (other_bo == NULL) + if (create_grey_buffer(bufmgr, width, height, &stride, &other_bo)) return; - ret = drmModeAddFB2(dev->fd, dev->mode.width, dev->mode.height, - pipes[0].fourcc, handles, pitches, offsets, - &other_fb_id, 0); + ret = drmModeAddFB(fd, width, height, 32, 32, stride, other_bo->handle, + &other_fb_id); if (ret) { fprintf(stderr, "failed to add fb: %s\n", strerror(errno)); return; } for (i = 0; i < count; i++) { - struct pipe_arg *pipe = &pipes[i]; - - if (pipe->mode == NULL) + if (c[i].mode == NULL) continue; - ret = drmModePageFlip(dev->fd, pipe->crtc->crtc->crtc_id, - other_fb_id, DRM_MODE_PAGE_FLIP_EVENT, - pipe); - if (ret) { - fprintf(stderr, "failed to page flip: %s\n", strerror(errno)); - return; - } - gettimeofday(&pipe->start, NULL); - pipe->swap_count = 0; - pipe->fb_id[0] = dev->mode.fb_id; - pipe->fb_id[1] = other_fb_id; - pipe->current_fb_id = other_fb_id; + drmModePageFlip(fd, c[i].crtc, other_fb_id, + DRM_MODE_PAGE_FLIP_EVENT, &c[i]); + gettimeofday(&c[i].start, NULL); + c[i].swap_count = 0; + c[i].fb_id[0] = fb_id; + c[i].fb_id[1] = other_fb_id; + c[i].current_fb_id = fb_id; } memset(&evctx, 0, sizeof evctx); @@ -1175,8 +640,8 @@ FD_ZERO(&fds); FD_SET(0, &fds); - FD_SET(dev->fd, &fds); - ret = select(dev->fd + 1, &fds, NULL, NULL, &timeout); + FD_SET(fd, &fds); + ret = select(fd + 1, &fds, NULL, NULL, &timeout); if (ret <= 0) { fprintf(stderr, "select timed out or error (ret %d)\n", @@ -1187,179 +652,33 @@ } #endif - drmHandleEvent(dev->fd, &evctx); + drmHandleEvent(fd, &evctx); } - - kms_bo_destroy(&other_bo); } -#define min(a, b) ((a) < (b) ? (a) : (b)) +extern char *optarg; +extern int optind, opterr, optopt; +static char optstr[] = "ecpmfs:v"; -static int parse_connector(struct pipe_arg *pipe, const char *arg) +void usage(char *name) { - unsigned int len; - unsigned int i; - const char *p; - char *endp; - - pipe->vrefresh = 0; - pipe->crtc_id = (uint32_t)-1; - strcpy(pipe->format_str, "XR24"); - - /* Count the number of connectors and allocate them. */ - pipe->num_cons = 1; - for (p = arg; isdigit(*p) || *p == ','; ++p) { - if (*p == ',') - pipe->num_cons++; - } - - pipe->con_ids = malloc(pipe->num_cons * sizeof *pipe->con_ids); - if (pipe->con_ids == NULL) - return -1; - - /* Parse the connectors. */ - for (i = 0, p = arg; i < pipe->num_cons; ++i, p = endp + 1) { - pipe->con_ids[i] = strtoul(p, &endp, 10); - if (*endp != ',') - break; - } - - if (i != pipe->num_cons - 1) - return -1; - - /* Parse the remaining parameters. */ - if (*endp == '@') { - arg = endp + 1; - pipe->crtc_id = strtoul(arg, &endp, 10); - } - if (*endp != ':') - return -1; - - arg = endp + 1; - - /* Search for the vertical refresh or the format. */ - p = strpbrk(arg, "-@"); - if (p == NULL) - p = arg + strlen(arg); - len = min(sizeof pipe->mode_str - 1, (unsigned int)(p - arg)); - strncpy(pipe->mode_str, arg, len); - pipe->mode_str[len] = '\0'; - - if (*p == '-') { - pipe->vrefresh = strtoul(p + 1, &endp, 10); - p = endp; - } - - if (*p == '@') { - strncpy(pipe->format_str, p + 1, 4); - pipe->format_str[4] = '\0'; - } - - pipe->fourcc = format_fourcc(pipe->format_str); - if (pipe->fourcc == 0) { - fprintf(stderr, "unknown format %s\n", pipe->format_str); - return -1; - } - - return 0; -} - -static int parse_plane(struct plane_arg *plane, const char *p) -{ - char *end; - - memset(plane, 0, sizeof *plane); - - plane->crtc_id = strtoul(p, &end, 10); - if (*end != ':') - return -EINVAL; - - p = end + 1; - plane->w = strtoul(p, &end, 10); - if (*end != 'x') - return -EINVAL; - - p = end + 1; - plane->h = strtoul(p, &end, 10); - - if (*end == '+' || *end == '-') { - plane->x = strtol(end, &end, 10); - if (*end != '+' && *end != '-') - return -EINVAL; - plane->y = strtol(end, &end, 10); - - plane->has_position = true; - } - - if (*end == '*') { - p = end + 1; - plane->scale = strtod(p, &end); - if (plane->scale <= 0.0) - return -EINVAL; - } else { - plane->scale = 1.0; - } - - if (*end == '@') { - p = end + 1; - if (strlen(p) != 4) - return -EINVAL; - - strcpy(plane->format_str, p); - } else { - strcpy(plane->format_str, "XR24"); - } - - plane->fourcc = format_fourcc(plane->format_str); - if (plane->fourcc == 0) { - fprintf(stderr, "unknown format %s\n", plane->format_str); - return -EINVAL; - } - - return 0; -} - -static int parse_property(struct property_arg *p, const char *arg) -{ - if (sscanf(arg, "%d:%32[^:]:%" SCNu64, &p->obj_id, p->name, &p->value) != 3) - return -1; - - p->obj_type = 0; - p->name[DRM_PROP_NAME_LEN] = '\0'; - - return 0; -} - -static void usage(char *name) -{ - fprintf(stderr, "usage: %s [-cDdefMPpsvw]\n", name); - - fprintf(stderr, "\n Query options:\n\n"); - fprintf(stderr, "\t-c\tlist connectors\n"); + fprintf(stderr, "usage: %s [-ecpmf]\n", name); fprintf(stderr, "\t-e\tlist encoders\n"); + fprintf(stderr, "\t-c\tlist connectors\n"); + fprintf(stderr, "\t-p\tlist CRTCs (pipes)\n"); + fprintf(stderr, "\t-m\tlist modes\n"); fprintf(stderr, "\t-f\tlist framebuffers\n"); - fprintf(stderr, "\t-p\tlist CRTCs and planes (pipes)\n"); - - fprintf(stderr, "\n Test options:\n\n"); - fprintf(stderr, "\t-P :x[++][*][@]\tset a plane\n"); - fprintf(stderr, "\t-s [,][@]:[-][@]\tset a mode\n"); fprintf(stderr, "\t-v\ttest vsynced page flipping\n"); - fprintf(stderr, "\t-w ::\tset property\n"); - - fprintf(stderr, "\n Generic options:\n\n"); - fprintf(stderr, "\t-d\tdrop master after mode set\n"); - fprintf(stderr, "\t-M module\tuse the given driver\n"); - fprintf(stderr, "\t-D device\tuse the given device\n"); - + fprintf(stderr, "\t-s :\tset a mode\n"); + fprintf(stderr, "\t-s @:\tset a mode\n"); fprintf(stderr, "\n\tDefault is to dump all info.\n"); exit(0); } -static int page_flipping_supported(void) +#define dump_resource(res) if (res) dump_##res() + +static int page_flipping_supported(int fd) { - /*FIXME: generic ioctl needed? */ - return 1; -#if 0 int ret, value; struct drm_i915_getparam gp; @@ -1373,104 +692,51 @@ } return *gp.value; -#endif } -static char optstr[] = "cdD:efM:P:ps:vw:"; - int main(int argc, char **argv) { - struct device dev; - int c; - int encoders = 0, connectors = 0, crtcs = 0, planes = 0, framebuffers = 0; - int drop_master = 0; + int encoders = 0, connectors = 0, crtcs = 0, framebuffers = 0; int test_vsync = 0; - const char *modules[] = { "i915", "radeon", "nouveau", "vmwgfx", "omapdrm", "exynos", "tilcdc", "msm" }; - char *device = NULL; - char *module = NULL; - unsigned int i; - int count = 0, plane_count = 0; - unsigned int prop_count = 0; - struct pipe_arg *pipe_args = NULL; - struct plane_arg *plane_args = NULL; - struct property_arg *prop_args = NULL; - unsigned int args = 0; - int ret; - - memset(&dev, 0, sizeof dev); - + char *modules[] = { "i915", "radeon", "nouveau" }; + char *modeset = NULL; + int i, count = 0; + struct connector con_args[2]; + opterr = 0; while ((c = getopt(argc, argv, optstr)) != -1) { - args++; - switch (c) { - case 'c': - connectors = 1; - break; - case 'D': - device = optarg; - args--; - break; - case 'd': - drop_master = 1; - break; case 'e': encoders = 1; break; - case 'f': - framebuffers = 1; - break; - case 'M': - module = optarg; - /* Preserve the default behaviour of dumping all information. */ - args--; - break; - case 'P': - plane_args = realloc(plane_args, - (plane_count + 1) * sizeof *plane_args); - if (plane_args == NULL) { - fprintf(stderr, "memory allocation failed\n"); - return 1; - } - - if (parse_plane(&plane_args[plane_count], optarg) < 0) - usage(argv[0]); - - plane_count++; + case 'c': + connectors = 1; break; case 'p': crtcs = 1; - planes = 1; break; - case 's': - pipe_args = realloc(pipe_args, - (count + 1) * sizeof *pipe_args); - if (pipe_args == NULL) { - fprintf(stderr, "memory allocation failed\n"); - return 1; - } - - if (parse_connector(&pipe_args[count], optarg) < 0) - usage(argv[0]); - - count++; + case 'm': + modes = 1; + break; + case 'f': + framebuffers = 1; break; case 'v': test_vsync = 1; break; - case 'w': - prop_args = realloc(prop_args, - (prop_count + 1) * sizeof *prop_args); - if (prop_args == NULL) { - fprintf(stderr, "memory allocation failed\n"); - return 1; - } - - if (parse_property(&prop_args[prop_count], optarg) < 0) + case 's': + modeset = strdup(optarg); + con_args[count].crtc = -1; + if (sscanf(optarg, "%d:%64s", + &con_args[count].id, + con_args[count].mode_str) != 2 && + sscanf(optarg, "%d@%d:%64s", + &con_args[count].id, + &con_args[count].crtc, + con_args[count].mode_str) != 3) usage(argv[0]); - - prop_count++; + count++; break; default: usage(argv[0]); @@ -1478,87 +744,49 @@ } } - if (!args) - encoders = connectors = crtcs = planes = framebuffers = 1; - - if (module) { - dev.fd = drmOpen(module, device); - if (dev.fd < 0) { - fprintf(stderr, "failed to open device '%s'.\n", module); - return 1; - } - } else { - for (i = 0; i < ARRAY_SIZE(modules); i++) { - printf("trying to open device '%s'...", modules[i]); - dev.fd = drmOpen(modules[i], device); - if (dev.fd < 0) { - printf("failed.\n"); - } else { - printf("success.\n"); - break; - } - } + if (argc == 1) + encoders = connectors = crtcs = modes = framebuffers = 1; - if (dev.fd < 0) { - fprintf(stderr, "no device found.\n"); - return 1; + for (i = 0; i < ARRAY_SIZE(modules); i++) { + printf("trying to load module %s...", modules[i]); + fd = drmOpen(modules[i], NULL); + if (fd < 0) { + printf("failed.\n"); + } else { + printf("success.\n"); + break; } } - if (test_vsync && !page_flipping_supported()) { + if (test_vsync && !page_flipping_supported(fd)) { fprintf(stderr, "page flipping not supported by drm.\n"); return -1; } - if (test_vsync && !count) { - fprintf(stderr, "page flipping requires at least one -s option.\n"); + if (i == ARRAY_SIZE(modules)) { + fprintf(stderr, "failed to load any modules, aborting.\n"); return -1; } - dev.resources = get_resources(&dev); - if (!dev.resources) { - drmClose(dev.fd); + resources = drmModeGetResources(fd); + if (!resources) { + fprintf(stderr, "drmModeGetResources failed: %s\n", + strerror(errno)); + drmClose(fd); return 1; } -#define dump_resource(dev, res) if (res) dump_##res(dev) - - dump_resource(&dev, encoders); - dump_resource(&dev, connectors); - dump_resource(&dev, crtcs); - dump_resource(&dev, planes); - dump_resource(&dev, framebuffers); - - for (i = 0; i < prop_count; ++i) - set_property(&dev, &prop_args[i]); - - if (count || plane_count) { - ret = kms_create(dev.fd, &dev.kms); - if (ret) { - fprintf(stderr, "failed to create kms driver: %s\n", - strerror(-ret)); - return 1; - } - - if (count) - set_mode(&dev, pipe_args, count); - - if (plane_count) - set_planes(&dev, plane_args, plane_count); - - if (test_vsync) - test_page_flip(&dev, pipe_args, count); - - if (drop_master) - drmDropMaster(dev.fd); - - kms_bo_destroy(&dev.mode.bo); - kms_destroy(&dev.kms); + dump_resource(encoders); + dump_resource(connectors); + dump_resource(crtcs); + dump_resource(framebuffers); + if (count > 0) { + set_mode(con_args, count, test_vsync); getchar(); } - free_resources(dev.resources); + drmModeFreeResources(resources); return 0; } diff -Nru libdrm-2.4.52/tests/radeon/list.h libdrm-2.4.52+really2.4.21/tests/radeon/list.h --- libdrm-2.4.52/tests/radeon/list.h 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/radeon/list.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,137 +0,0 @@ -/* - * - * Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND. USA. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - * USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - */ - -/** - * \file - * List macros heavily inspired by the Linux kernel - * list handling. No list looping yet. - * - * Is not threadsafe, so common operations need to - * be protected using an external mutex. - */ -#ifndef _U_DOUBLE_LIST_H_ -#define _U_DOUBLE_LIST_H_ - -#include - -struct list_head -{ - struct list_head *prev; - struct list_head *next; -}; - -static void list_inithead(struct list_head *item) -{ - item->prev = item; - item->next = item; -} - -static void list_add(struct list_head *item, struct list_head *list) -{ - item->prev = list; - item->next = list->next; - list->next->prev = item; - list->next = item; -} - -static void list_addtail(struct list_head *item, struct list_head *list) -{ - item->next = list; - item->prev = list->prev; - list->prev->next = item; - list->prev = item; -} - -static void list_replace(struct list_head *from, struct list_head *to) -{ - to->prev = from->prev; - to->next = from->next; - from->next->prev = to; - from->prev->next = to; -} - -static void list_del(struct list_head *item) -{ - item->prev->next = item->next; - item->next->prev = item->prev; -} - -static void list_delinit(struct list_head *item) -{ - item->prev->next = item->next; - item->next->prev = item->prev; - item->next = item; - item->prev = item; -} - -#define LIST_INITHEAD(__item) list_inithead(__item) -#define LIST_ADD(__item, __list) list_add(__item, __list) -#define LIST_ADDTAIL(__item, __list) list_addtail(__item, __list) -#define LIST_REPLACE(__from, __to) list_replace(__from, __to) -#define LIST_DEL(__item) list_del(__item) -#define LIST_DELINIT(__item) list_delinit(__item) - -#define LIST_ENTRY(__type, __item, __field) \ - ((__type *)(((char *)(__item)) - offsetof(__type, __field))) - -#define LIST_IS_EMPTY(__list) \ - ((__list)->next == (__list)) - -#ifndef container_of -#define container_of(ptr, sample, member) \ - (void *)((char *)(ptr) \ - - ((char *)&(sample)->member - (char *)(sample))) -#endif - -#define LIST_FOR_EACH_ENTRY(pos, head, member) \ - for (pos = container_of((head)->next, pos, member); \ - &pos->member != (head); \ - pos = container_of(pos->member.next, pos, member)) - -#define LIST_FOR_EACH_ENTRY_SAFE(pos, storage, head, member) \ - for (pos = container_of((head)->next, pos, member), \ - storage = container_of(pos->member.next, pos, member); \ - &pos->member != (head); \ - pos = storage, storage = container_of(storage->member.next, storage, member)) - -#define LIST_FOR_EACH_ENTRY_SAFE_REV(pos, storage, head, member) \ - for (pos = container_of((head)->prev, pos, member), \ - storage = container_of(pos->member.prev, pos, member); \ - &pos->member != (head); \ - pos = storage, storage = container_of(storage->member.prev, storage, member)) - -#define LIST_FOR_EACH_ENTRY_FROM(pos, start, head, member) \ - for (pos = container_of((start), pos, member); \ - &pos->member != (head); \ - pos = container_of(pos->member.next, pos, member)) - -#define LIST_FOR_EACH_ENTRY_FROM_REV(pos, start, head, member) \ - for (pos = container_of((start), pos, member); \ - &pos->member != (head); \ - pos = container_of(pos->member.prev, pos, member)) - -#endif /*_U_DOUBLE_LIST_H_*/ diff -Nru libdrm-2.4.52/tests/radeon/Makefile.am libdrm-2.4.52+really2.4.21/tests/radeon/Makefile.am --- libdrm-2.4.52/tests/radeon/Makefile.am 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/radeon/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -AM_CFLAGS = \ - -I $(top_srcdir)/include/drm \ - -I $(top_srcdir) - -LDADD = $(top_builddir)/libdrm.la - -noinst_PROGRAMS = \ - radeon_ttm - -radeon_ttm_SOURCES = \ - rbo.c \ - rbo.h \ - list.h \ - radeon_ttm.c diff -Nru libdrm-2.4.52/tests/radeon/Makefile.in libdrm-2.4.52+really2.4.21/tests/radeon/Makefile.in --- libdrm-2.4.52/tests/radeon/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/radeon/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,602 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = radeon_ttm$(EXEEXT) -subdir = tests/radeon -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -PROGRAMS = $(noinst_PROGRAMS) -am_radeon_ttm_OBJECTS = rbo.$(OBJEXT) radeon_ttm.$(OBJEXT) -radeon_ttm_OBJECTS = $(am_radeon_ttm_OBJECTS) -radeon_ttm_LDADD = $(LDADD) -radeon_ttm_DEPENDENCIES = $(top_builddir)/libdrm.la -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(radeon_ttm_SOURCES) -DIST_SOURCES = $(radeon_ttm_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = \ - -I $(top_srcdir)/include/drm \ - -I $(top_srcdir) - -LDADD = $(top_builddir)/libdrm.la -radeon_ttm_SOURCES = \ - rbo.c \ - rbo.h \ - list.h \ - radeon_ttm.c - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/radeon/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign tests/radeon/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -radeon_ttm$(EXEEXT): $(radeon_ttm_OBJECTS) $(radeon_ttm_DEPENDENCIES) $(EXTRA_radeon_ttm_DEPENDENCIES) - @rm -f radeon_ttm$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(radeon_ttm_OBJECTS) $(radeon_ttm_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeon_ttm.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rbo.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/tests/radeon/radeon_ttm.c libdrm-2.4.52+really2.4.21/tests/radeon/radeon_ttm.c --- libdrm-2.4.52/tests/radeon/radeon_ttm.c 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/radeon/radeon_ttm.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ -/* - * Copyright © 2011 Red Hat - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Authors: - * Jerome Glisse - */ -#include -#include -#include "rbo.h" - -/* allocate as many single page bo to try to starve the kernel - * memory zone (below highmem) - */ -void ttm_starve_kernel_private_memory(int fd) -{ - struct list_head list; - struct rbo *bo, *tmp; - unsigned nbo = 0; - - printf("\n[%s]\n", __func__); - list_inithead(&list); - while (1) { - bo = rbo(fd, 0, 4096, 0, NULL); - if (bo == NULL) { - printf("failing after %d bo\n", nbo); - break; - } - nbo++; - list_add(&bo->list, &list); - } - LIST_FOR_EACH_ENTRY_SAFE(bo, tmp, &list, list) { - list_del(&bo->list); - rbo_decref(bo); - } -} - -int radeon_open_fd(void) -{ - return drmOpen("radeon", NULL); -} - -int main(void) -{ - int radeonfd; - - radeonfd = radeon_open_fd(); - if (radeonfd < 0) { - fprintf(stderr, "failed to open radeon fd\n"); - return -1; - } - - ttm_starve_kernel_private_memory(radeonfd); - - close(radeonfd); - return 0; -} diff -Nru libdrm-2.4.52/tests/radeon/rbo.c libdrm-2.4.52+really2.4.21/tests/radeon/rbo.c --- libdrm-2.4.52/tests/radeon/rbo.c 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/radeon/rbo.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,171 +0,0 @@ -/* - * Copyright © 2011 Red Hat - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Authors: - * Jerome Glisse - */ -#define _FILE_OFFSET_BITS 64 -#include -#include -#include -#include -#include -#include "xf86drm.h" -#include "radeon_drm.h" -#include "rbo.h" - -struct rbo *rbo(int fd, unsigned handle, unsigned size, - unsigned alignment, void *ptr) -{ - struct rbo *bo; - int r; - - bo = calloc(1, sizeof(*bo)); - if (bo == NULL) { - return NULL; - } - list_inithead(&bo->list); - bo->fd = fd; - bo->size = size; - bo->handle = handle; - bo->refcount = 1; - bo->alignment = alignment; - - if (handle) { - struct drm_gem_open open_arg; - - memset(&open_arg, 0, sizeof(open_arg)); - open_arg.name = handle; - r = drmIoctl(fd, DRM_IOCTL_GEM_OPEN, &open_arg); - if (r != 0) { - free(bo); - return NULL; - } - bo->handle = open_arg.handle; - } else { - struct drm_radeon_gem_create args; - - args.size = size; - args.alignment = alignment; - args.initial_domain = RADEON_GEM_DOMAIN_CPU; - args.flags = 0; - args.handle = 0; - r = drmCommandWriteRead(fd, DRM_RADEON_GEM_CREATE, - &args, sizeof(args)); - bo->handle = args.handle; - if (r) { - fprintf(stderr, "Failed to allocate :\n"); - fprintf(stderr, " size : %d bytes\n", size); - fprintf(stderr, " alignment : %d bytes\n", alignment); - free(bo); - return NULL; - } - } - if (ptr) { - if (rbo_map(bo)) { - fprintf(stderr, "%s failed to copy data into bo\n", __func__); - return rbo_decref(bo); - } - memcpy(bo->data, ptr, size); - rbo_unmap(bo); - } - return bo; -} - -int rbo_map(struct rbo *bo) -{ - struct drm_radeon_gem_mmap args; - void *ptr; - int r; - - if (bo->mapcount++ != 0) { - return 0; - } - /* Zero out args to make valgrind happy */ - memset(&args, 0, sizeof(args)); - args.handle = bo->handle; - args.offset = 0; - args.size = (uint64_t)bo->size; - r = drmCommandWriteRead(bo->fd, DRM_RADEON_GEM_MMAP, - &args, sizeof(args)); - if (r) { - fprintf(stderr, "error mapping %p 0x%08X (error = %d)\n", - bo, bo->handle, r); - return r; - } - ptr = mmap(0, args.size, PROT_READ|PROT_WRITE, MAP_SHARED, bo->fd, args.addr_ptr); - if (ptr == MAP_FAILED) { - fprintf(stderr, "%s failed to map bo\n", __func__); - return -errno; - } - bo->data = ptr; - return 0; -} - -void rbo_unmap(struct rbo *bo) -{ - if (--bo->mapcount > 0) { - return; - } - munmap(bo->data, bo->size); - bo->data = NULL; -} - -struct rbo *rbo_incref(struct rbo *bo) -{ - bo->refcount++; - return bo; -} - -struct rbo *rbo_decref(struct rbo *bo) -{ - struct drm_gem_close args; - - if (bo == NULL) - return NULL; - if (--bo->refcount > 0) { - return NULL; - } - - munmap(bo->data, bo->size); - memset(&args, 0, sizeof(args)); - args.handle = bo->handle; - drmIoctl(bo->fd, DRM_IOCTL_GEM_CLOSE, &args); - memset(bo, 0, sizeof(struct rbo)); - free(bo); - return NULL; -} - -int rbo_wait(struct rbo *bo) -{ - struct drm_radeon_gem_wait_idle args; - int ret; - - /* Zero out args to make valgrind happy */ - memset(&args, 0, sizeof(args)); - args.handle = bo->handle; - do { - ret = drmCommandWriteRead(bo->fd, DRM_RADEON_GEM_WAIT_IDLE, - &args, sizeof(args)); - } while (ret == -EBUSY); - return ret; -} diff -Nru libdrm-2.4.52/tests/radeon/rbo.h libdrm-2.4.52+really2.4.21/tests/radeon/rbo.h --- libdrm-2.4.52/tests/radeon/rbo.h 2012-02-10 12:10:14.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/radeon/rbo.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -/* - * Copyright © 2011 Red Hat - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Authors: - * Jerome Glisse - */ -#ifndef RBO_H -#define RBO_H - -#include "list.h" - -struct rbo { - struct list_head list; - int fd; - unsigned refcount; - unsigned mapcount; - unsigned handle; - unsigned size; - unsigned alignment; - void *data; -}; - -struct rbo *rbo(int fd, unsigned handle, unsigned size, - unsigned alignment, void *ptr); -int rbo_map(struct rbo *bo); -void rbo_unmap(struct rbo *bo); -struct rbo *rbo_incref(struct rbo *bo); -struct rbo *rbo_decref(struct rbo *bo); -int rbo_wait(struct rbo *bo); - -#endif diff -Nru libdrm-2.4.52/tests/setversion.c libdrm-2.4.52+really2.4.21/tests/setversion.c --- libdrm-2.4.52/tests/setversion.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/setversion.c 2010-06-07 01:11:45.000000000 +0000 @@ -26,7 +26,6 @@ */ #include -#include #include "drmtest.h" /** diff -Nru libdrm-2.4.52/tests/vbltest/Makefile.am libdrm-2.4.52+really2.4.21/tests/vbltest/Makefile.am --- libdrm-2.4.52/tests/vbltest/Makefile.am 2013-06-15 05:07:54.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/vbltest/Makefile.am 2010-06-07 01:11:45.000000000 +0000 @@ -1,13 +1,9 @@ AM_CFLAGS = \ -I$(top_srcdir)/include/drm \ -I$(top_srcdir) -if HAVE_INSTALL_TESTS -bin_PROGRAMS = \ - vbltest -else + noinst_PROGRAMS = \ vbltest -endif vbltest_SOURCES = \ vbltest.c diff -Nru libdrm-2.4.52/tests/vbltest/Makefile.in libdrm-2.4.52+really2.4.21/tests/vbltest/Makefile.in --- libdrm-2.4.52/tests/vbltest/Makefile.in 2014-01-20 19:04:47.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/vbltest/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,654 +0,0 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_INSTALL_TESTS_TRUE@bin_PROGRAMS = vbltest$(EXEEXT) -@HAVE_INSTALL_TESTS_FALSE@noinst_PROGRAMS = vbltest$(EXEEXT) -subdir = tests/vbltest -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" -PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) -am_vbltest_OBJECTS = vbltest.$(OBJEXT) -vbltest_OBJECTS = $(am_vbltest_OBJECTS) -vbltest_DEPENDENCIES = $(top_builddir)/libdrm.la -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(vbltest_SOURCES) -DIST_SOURCES = $(vbltest_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CAIRO_CFLAGS = @CAIRO_CFLAGS@ -CAIRO_LIBS = @CAIRO_LIBS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLOCK_LIB = @CLOCK_LIB@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ -LIBUDEV_LIBS = @LIBUDEV_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANPAGES_STYLESHEET = @MANPAGES_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ -PCIACCESS_LIBS = @PCIACCESS_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PTHREADSTUBS_CFLAGS = @PTHREADSTUBS_CFLAGS@ -PTHREADSTUBS_LIBS = @PTHREADSTUBS_LIBS@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XSLTPROC = @XSLTPROC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kernel_source = @kernel_source@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = \ - -I$(top_srcdir)/include/drm \ - -I$(top_srcdir) - -vbltest_SOURCES = \ - vbltest.c - -vbltest_LDADD = \ - $(top_builddir)/libdrm.la - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/vbltest/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign tests/vbltest/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -vbltest$(EXEEXT): $(vbltest_OBJECTS) $(vbltest_DEPENDENCIES) $(EXTRA_vbltest_DEPENDENCIES) - @rm -f vbltest$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(vbltest_OBJECTS) $(vbltest_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vbltest.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: - for dir in "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libtool \ - clean-noinstPROGRAMS mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-binPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic clean-libtool \ - clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-binPROGRAMS install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am uninstall-binPROGRAMS - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru libdrm-2.4.52/tests/vbltest/vbltest.c libdrm-2.4.52+really2.4.21/tests/vbltest/vbltest.c --- libdrm-2.4.52/tests/vbltest/vbltest.c 2013-09-27 23:17:25.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/tests/vbltest/vbltest.c 2010-06-07 01:11:45.000000000 +0000 @@ -102,8 +102,8 @@ int main(int argc, char **argv) { - int i, c, fd, ret; - char *modules[] = { "i915", "radeon", "nouveau", "vmwgfx", "exynos", "omapdrm", "tilcdc", "msm" }; + int i, c, fd; + char *modules[] = { "i915", "radeon", "nouveau" }; drmVBlank vbl; drmEventContext evctx; struct vbl_info handler_info; @@ -141,11 +141,7 @@ if (secondary) vbl.request.type |= DRM_VBLANK_SECONDARY; vbl.request.sequence = 0; - ret = drmWaitVBlank(fd, &vbl); - if (ret != 0) { - printf("drmWaitVBlank (relative) failed ret: %i\n", ret); - return -1; - } + drmWaitVBlank(fd, &vbl); printf("starting count: %d\n", vbl.request.sequence); @@ -158,11 +154,7 @@ vbl.request.type |= DRM_VBLANK_SECONDARY; vbl.request.sequence = 1; vbl.request.signal = (unsigned long)&handler_info; - ret = drmWaitVBlank(fd, &vbl); - if (ret != 0) { - printf("drmWaitVBlank (relative, event) failed ret: %i\n", ret); - return -1; - } + drmWaitVBlank(fd, &vbl); /* Set up our event handler */ memset(&evctx, 0, sizeof evctx); @@ -189,11 +181,7 @@ break; } - ret = drmHandleEvent(fd, &evctx); - if (ret != 0) { - printf("drmHandleEvent failed: %i\n", ret); - return -1; - } + drmHandleEvent(fd, &evctx); } return 0; diff -Nru libdrm-2.4.52/xf86drm.c libdrm-2.4.52+really2.4.21/xf86drm.c --- libdrm-2.4.52/xf86drm.c 2013-10-08 16:18:17.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/xf86drm.c 2010-06-07 01:11:46.000000000 +0000 @@ -155,6 +155,23 @@ free(pt); } +/* drmStrdup can't use strdup(3), since it doesn't call _DRM_MALLOC... */ +static char *drmStrdup(const char *s) +{ + char *retval; + + if (!s) + return NULL; + + retval = malloc(strlen(s)+1); + if (!retval) + return NULL; + + strcpy(retval, s); + + return retval; +} + /** * Call ioctl, restarting if it is interupted */ @@ -212,7 +229,7 @@ * PCI:b:d:f format and the newer pci:oooo:bb:dd.f format. In the format, o is * domain, b is bus, d is device, f is function. */ -static int drmMatchBusID(const char *id1, const char *id2, int pci_domain_ok) +static int drmMatchBusID(const char *id1, const char *id2) { /* First, check if the IDs are exactly the same */ if (strcasecmp(id1, id2) == 0) @@ -240,13 +257,6 @@ return 0; } - /* If domains aren't properly supported by the kernel interface, - * just ignore them, which sucks less than picking a totally random - * card with "open by name" - */ - if (!pci_domain_ok) - o1 = o2 = 0; - if ((o1 != o2) || (b1 != b2) || (d1 != d2) || (f1 != f2)) return 0; else @@ -370,7 +380,6 @@ if (fd >= 0) return fd; -#if !defined(UDEV) /* Check if the device node is not what we expect it to be, and recreate it * and try again if so. */ @@ -392,7 +401,6 @@ drmMsg("drmOpenDevice: Open failed\n"); remove(buf); -#endif return -errno; } @@ -474,7 +482,7 @@ */ static int drmOpenByBusid(const char *busid) { - int i, pci_domain_ok = 1; + int i; int fd; const char *buf; drmSetVersion sv; @@ -484,27 +492,14 @@ fd = drmOpenMinor(i, 1, DRM_NODE_RENDER); drmMsg("drmOpenByBusid: drmOpenMinor returns %d\n", fd); if (fd >= 0) { - /* We need to try for 1.4 first for proper PCI domain support - * and if that fails, we know the kernel is busted - */ sv.drm_di_major = 1; - sv.drm_di_minor = 4; + sv.drm_di_minor = 1; sv.drm_dd_major = -1; /* Don't care */ sv.drm_dd_minor = -1; /* Don't care */ - if (drmSetInterfaceVersion(fd, &sv)) { -#ifndef __alpha__ - pci_domain_ok = 0; -#endif - sv.drm_di_major = 1; - sv.drm_di_minor = 1; - sv.drm_dd_major = -1; /* Don't care */ - sv.drm_dd_minor = -1; /* Don't care */ - drmMsg("drmOpenByBusid: Interface 1.4 failed, trying 1.1\n",fd); - drmSetInterfaceVersion(fd, &sv); - } + drmSetInterfaceVersion(fd, &sv); buf = drmGetBusid(fd); drmMsg("drmOpenByBusid: drmGetBusid reports %s\n", buf); - if (buf && drmMatchBusID(buf, busid, pci_domain_ok)) { + if (buf && drmMatchBusID(buf, busid)) { drmFreeBusid(buf); return fd; } @@ -711,11 +706,11 @@ d->version_minor = s->version_minor; d->version_patchlevel = s->version_patchlevel; d->name_len = s->name_len; - d->name = strdup(s->name); + d->name = drmStrdup(s->name); d->date_len = s->date_len; - d->date = strdup(s->date); + d->date = drmStrdup(s->date); d->desc_len = s->desc_len; - d->desc = strdup(s->desc); + d->desc = drmStrdup(s->desc); } @@ -810,25 +805,6 @@ return (drmVersionPtr)version; } -int drmGetCap(int fd, uint64_t capability, uint64_t *value) -{ - struct drm_get_cap cap = { capability, 0 }; - int ret; - - ret = drmIoctl(fd, DRM_IOCTL_GET_CAP, &cap); - if (ret) - return ret; - - *value = cap.value; - return 0; -} - -int drmSetClientCap(int fd, uint64_t capability, uint64_t value) -{ - struct drm_set_client_cap cap = { capability, value }; - - return drmIoctl(fd, DRM_IOCTL_SET_CLIENT_CAP, &cap); -} /** * Free the bus ID information. @@ -983,7 +959,7 @@ if (drmIoctl(fd, DRM_IOCTL_ADD_MAP, &map)) return -errno; if (handle) - *handle = (drm_handle_t)(uintptr_t)map.handle; + *handle = (drm_handle_t)map.handle; return 0; } @@ -991,7 +967,7 @@ { drm_map_t map; - map.handle = (void *)(uintptr_t)handle; + map.handle = (void *)handle; if(drmIoctl(fd, DRM_IOCTL_RM_MAP, &map)) return -errno; @@ -1953,7 +1929,7 @@ ret = clock_gettime(CLOCK_MONOTONIC, &timeout); if (ret < 0) { - fprintf(stderr, "clock_gettime failed: %s\n", strerror(errno)); + fprintf(stderr, "clock_gettime failed: %s\n", strerror(ret)); goto out; } timeout.tv_sec++; @@ -2127,7 +2103,7 @@ drm_ctx_priv_map_t map; map.ctx_id = ctx_id; - map.handle = (void *)(uintptr_t)handle; + map.handle = (void *)handle; if (drmIoctl(fd, DRM_IOCTL_SET_SAREA_CTX, &map)) return -errno; @@ -2144,7 +2120,7 @@ if (drmIoctl(fd, DRM_IOCTL_GET_SAREA_CTX, &map)) return -errno; if (handle) - *handle = (drm_handle_t)(uintptr_t)map.handle; + *handle = (drm_handle_t)map.handle; return 0; } @@ -2547,36 +2523,5 @@ if (i == DRM_MAX_MINOR) return NULL; - return strdup(name); + return drmStrdup(name); } - -int drmPrimeHandleToFD(int fd, uint32_t handle, uint32_t flags, int *prime_fd) -{ - struct drm_prime_handle args; - int ret; - - args.handle = handle; - args.flags = flags; - ret = drmIoctl(fd, DRM_IOCTL_PRIME_HANDLE_TO_FD, &args); - if (ret) - return ret; - - *prime_fd = args.fd; - return 0; -} - -int drmPrimeFDToHandle(int fd, int prime_fd, uint32_t *handle) -{ - struct drm_prime_handle args; - int ret; - - args.fd = prime_fd; - args.flags = 0; - ret = drmIoctl(fd, DRM_IOCTL_PRIME_FD_TO_HANDLE, &args); - if (ret) - return ret; - - *handle = args.handle; - return 0; -} - diff -Nru libdrm-2.4.52/xf86drm.h libdrm-2.4.52+really2.4.21/xf86drm.h --- libdrm-2.4.52/xf86drm.h 2014-01-13 21:41:23.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/xf86drm.h 2010-06-07 01:11:46.000000000 +0000 @@ -39,10 +39,6 @@ #include #include -#if defined(__cplusplus) || defined(c_plusplus) -extern "C" { -#endif - #ifndef DRM_MAX_MINOR #define DRM_MAX_MINOR 16 #endif @@ -92,14 +88,8 @@ typedef unsigned int drmSize, *drmSizePtr; /**< For mapped regions */ typedef void *drmAddress, **drmAddressPtr; /**< For mapped regions */ -#if (__GNUC__ >= 3) -#define DRM_PRINTFLIKE(f, a) __attribute__ ((format(__printf__, f, a))) -#else -#define DRM_PRINTFLIKE(f, a) -#endif - typedef struct _drmServerInfo { - int (*debug_print)(const char *format, va_list ap) DRM_PRINTFLIKE(1,0); + int (*debug_print)(const char *format, va_list ap); int (*load_module)(const char *name); void (*get_perms)(gid_t *, mode_t *); } drmServerInfo, *drmServerInfoPtr; @@ -306,15 +296,12 @@ typedef enum { DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */ DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */ - /* bits 1-6 are reserved for high crtcs */ - DRM_VBLANK_HIGH_CRTC_MASK = 0x0000003e, DRM_VBLANK_EVENT = 0x4000000, /**< Send event instead of blocking */ DRM_VBLANK_FLIP = 0x8000000, /**< Scheduled buffer swap should flip */ DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */ DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */ DRM_VBLANK_SIGNAL = 0x40000000 /* Send signal instead of blocking */ } drmVBlankSeqType; -#define DRM_VBLANK_HIGH_CRTC_SHIFT 1 typedef struct _drmVBlankReq { drmVBlankSeqType type; @@ -555,7 +542,6 @@ extern int drmClose(int fd); extern drmVersionPtr drmGetVersion(int fd); extern drmVersionPtr drmGetLibVersion(int fd); -extern int drmGetCap(int fd, uint64_t capability, uint64_t *value); extern void drmFreeVersion(drmVersionPtr); extern int drmGetMagic(int fd, drm_magic_t * magic); extern char *drmGetBusid(int fd); @@ -615,8 +601,6 @@ unsigned int num, void *data); extern int drmCtlInstHandler(int fd, int irq); extern int drmCtlUninstHandler(int fd); -extern int drmSetClientCap(int fd, uint64_t capability, - uint64_t value); /* General user-level programmer's API: authenticated client and/or X */ extern int drmMap(int fd, @@ -735,11 +719,4 @@ extern char *drmGetDeviceNameFromFd(int fd); -extern int drmPrimeHandleToFD(int fd, uint32_t handle, uint32_t flags, int *prime_fd); -extern int drmPrimeFDToHandle(int fd, int prime_fd, uint32_t *handle); - -#if defined(__cplusplus) || defined(c_plusplus) -} -#endif - #endif diff -Nru libdrm-2.4.52/xf86drmMode.c libdrm-2.4.52+really2.4.21/xf86drmMode.c --- libdrm-2.4.52/xf86drmMode.c 2014-01-20 18:58:05.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/xf86drmMode.c 2010-06-07 01:11:45.000000000 +0000 @@ -41,10 +41,6 @@ #include #include -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - #include "xf86drmMode.h" #include "xf86drm.h" #include @@ -53,25 +49,9 @@ #include #include -#ifdef HAVE_VALGRIND -#include -#include -#define VG(x) x -#else -#define VG(x) -#endif - -#define VG_CLEAR(s) VG(memset(&s, 0, sizeof(s))) - #define U642VOID(x) ((void *)(unsigned long)(x)) #define VOID2U64(x) ((uint64_t)(unsigned long)(x)) -static inline int DRM_IOCTL(int fd, unsigned long cmd, void *arg) -{ - int ret = drmIoctl(fd, cmd, arg); - return ret < 0 ? -errno : ret; -} - /* * Util functions */ @@ -110,10 +90,6 @@ if (!ptr) return; - drmFree(ptr->fbs); - drmFree(ptr->crtcs); - drmFree(ptr->connectors); - drmFree(ptr->encoders); drmFree(ptr); } @@ -259,7 +235,6 @@ struct drm_mode_fb_cmd f; int ret; - VG_CLEAR(f); f.width = width; f.height = height; f.pitch = pitch; @@ -267,30 +242,7 @@ f.depth = depth; f.handle = bo_handle; - if ((ret = DRM_IOCTL(fd, DRM_IOCTL_MODE_ADDFB, &f))) - return ret; - - *buf_id = f.fb_id; - return 0; -} - -int drmModeAddFB2(int fd, uint32_t width, uint32_t height, - uint32_t pixel_format, uint32_t bo_handles[4], - uint32_t pitches[4], uint32_t offsets[4], - uint32_t *buf_id, uint32_t flags) -{ - struct drm_mode_fb_cmd2 f; - int ret; - - f.width = width; - f.height = height; - f.pixel_format = pixel_format; - f.flags = flags; - memcpy(f.handles, bo_handles, 4 * sizeof(bo_handles[0])); - memcpy(f.pitches, pitches, 4 * sizeof(pitches[0])); - memcpy(f.offsets, offsets, 4 * sizeof(offsets[0])); - - if ((ret = DRM_IOCTL(fd, DRM_IOCTL_MODE_ADDFB2, &f))) + if ((ret = drmIoctl(fd, DRM_IOCTL_MODE_ADDFB, &f))) return ret; *buf_id = f.fb_id; @@ -299,7 +251,7 @@ int drmModeRmFB(int fd, uint32_t bufferId) { - return DRM_IOCTL(fd, DRM_IOCTL_MODE_RMFB, &bufferId); + return drmIoctl(fd, DRM_IOCTL_MODE_RMFB, &bufferId); } @@ -337,7 +289,7 @@ dirty.clips_ptr = VOID2U64(clips); dirty.num_clips = num_clips; - return DRM_IOCTL(fd, DRM_IOCTL_MODE_DIRTYFB, &dirty); + return drmIoctl(fd, DRM_IOCTL_MODE_DIRTYFB, &dirty); } @@ -350,7 +302,6 @@ struct drm_mode_crtc crtc; drmModeCrtcPtr r; - VG_CLEAR(crtc); crtc.crtc_id = crtcId; if (drmIoctl(fd, DRM_IOCTL_MODE_GETCRTC, &crtc)) @@ -367,11 +318,8 @@ r->x = crtc.x; r->y = crtc.y; r->mode_valid = crtc.mode_valid; - if (r->mode_valid) { + if (r->mode_valid) memcpy(&r->mode, &crtc.mode, sizeof(struct drm_mode_modeinfo)); - r->width = crtc.mode.hdisplay; - r->height = crtc.mode.vdisplay; - } r->buffer_id = crtc.fb_id; r->gamma_size = crtc.gamma_size; return r; @@ -384,7 +332,6 @@ { struct drm_mode_crtc crtc; - VG_CLEAR(crtc); crtc.x = x; crtc.y = y; crtc.crtc_id = crtcId; @@ -397,7 +344,7 @@ } else crtc.mode_valid = 0; - return DRM_IOCTL(fd, DRM_IOCTL_MODE_SETCRTC, &crtc); + return drmIoctl(fd, DRM_IOCTL_MODE_SETCRTC, &crtc); } /* @@ -414,22 +361,7 @@ arg.height = height; arg.handle = bo_handle; - return DRM_IOCTL(fd, DRM_IOCTL_MODE_CURSOR, &arg); -} - -int drmModeSetCursor2(int fd, uint32_t crtcId, uint32_t bo_handle, uint32_t width, uint32_t height, int32_t hot_x, int32_t hot_y) -{ - struct drm_mode_cursor2 arg; - - arg.flags = DRM_MODE_CURSOR_BO; - arg.crtc_id = crtcId; - arg.width = width; - arg.height = height; - arg.handle = bo_handle; - arg.hot_x = hot_x; - arg.hot_y = hot_y; - - return DRM_IOCTL(fd, DRM_IOCTL_MODE_CURSOR2, &arg); + return drmIoctl(fd, DRM_IOCTL_MODE_CURSOR, &arg); } int drmModeMoveCursor(int fd, uint32_t crtcId, int x, int y) @@ -441,7 +373,7 @@ arg.x = x; arg.y = y; - return DRM_IOCTL(fd, DRM_IOCTL_MODE_CURSOR, &arg); + return drmIoctl(fd, DRM_IOCTL_MODE_CURSOR, &arg); } /* @@ -453,7 +385,6 @@ drmModeEncoderPtr r = NULL; enc.encoder_id = encoder_id; - enc.crtc_id = 0; enc.encoder_type = 0; enc.possible_crtcs = 0; enc.possible_clones = 0; @@ -579,7 +510,7 @@ memcpy(&res.mode, mode_info, sizeof(struct drm_mode_modeinfo)); res.connector_id = connector_id; - return DRM_IOCTL(fd, DRM_IOCTL_MODE_ATTACHMODE, &res); + return drmIoctl(fd, DRM_IOCTL_MODE_ATTACHMODE, &res); } int drmModeDetachMode(int fd, uint32_t connector_id, drmModeModeInfoPtr mode_info) @@ -589,7 +520,7 @@ memcpy(&res.mode, mode_info, sizeof(struct drm_mode_modeinfo)); res.connector_id = connector_id; - return DRM_IOCTL(fd, DRM_IOCTL_MODE_DETACHMODE, &res); + return drmIoctl(fd, DRM_IOCTL_MODE_DETACHMODE, &res); } @@ -598,7 +529,6 @@ struct drm_mode_get_property prop; drmModePropertyPtr r; - VG_CLEAR(prop); prop.prop_id = property_id; prop.count_enum_blobs = 0; prop.count_values = 0; @@ -612,7 +542,7 @@ if (prop.count_values) prop.values_ptr = VOID2U64(drmMalloc(prop.count_values * sizeof(uint64_t))); - if (prop.count_enum_blobs && (prop.flags & (DRM_MODE_PROP_ENUM | DRM_MODE_PROP_BITMASK))) + if (prop.count_enum_blobs && (prop.flags & DRM_MODE_PROP_ENUM)) prop.enum_blob_ptr = VOID2U64(drmMalloc(prop.count_enum_blobs * sizeof(struct drm_mode_property_enum))); if (prop.count_enum_blobs && (prop.flags & DRM_MODE_PROP_BLOB)) { @@ -634,7 +564,7 @@ r->flags = prop.flags; if (prop.count_values) r->values = drmAllocCpy(U642VOID(prop.values_ptr), prop.count_values, sizeof(uint64_t)); - if (prop.flags & (DRM_MODE_PROP_ENUM | DRM_MODE_PROP_BITMASK)) { + if (prop.flags & DRM_MODE_PROP_ENUM) { r->count_enums = prop.count_enum_blobs; r->enums = drmAllocCpy(U642VOID(prop.enum_blob_ptr), prop.count_enum_blobs, sizeof(struct drm_mode_property_enum)); } else if (prop.flags & DRM_MODE_PROP_BLOB) { @@ -683,7 +613,7 @@ } if (!(r = drmMalloc(sizeof(*r)))) - goto err_allocs; + return NULL; r->id = blob.blob_id; r->length = blob.length; @@ -707,12 +637,16 @@ uint64_t value) { struct drm_mode_connector_set_property osp; + int ret; osp.connector_id = connector_id; osp.prop_id = property_id; osp.value = value; - return DRM_IOCTL(fd, DRM_IOCTL_MODE_SETPROPERTY, &osp); + if ((ret = drmIoctl(fd, DRM_IOCTL_MODE_SETPROPERTY, &osp))) + return ret; + + return 0; } /* @@ -781,6 +715,7 @@ int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size, uint16_t *red, uint16_t *green, uint16_t *blue) { + int ret; struct drm_mode_crtc_lut l; l.crtc_id = crtc_id; @@ -789,12 +724,16 @@ l.green = VOID2U64(green); l.blue = VOID2U64(blue); - return DRM_IOCTL(fd, DRM_IOCTL_MODE_GETGAMMA, &l); + if ((ret = drmIoctl(fd, DRM_IOCTL_MODE_GETGAMMA, &l))) + return ret; + + return 0; } int drmModeCrtcSetGamma(int fd, uint32_t crtc_id, uint32_t size, uint16_t *red, uint16_t *green, uint16_t *blue) { + int ret; struct drm_mode_crtc_lut l; l.crtc_id = crtc_id; @@ -803,7 +742,10 @@ l.green = VOID2U64(green); l.blue = VOID2U64(blue); - return DRM_IOCTL(fd, DRM_IOCTL_MODE_SETGAMMA, &l); + if ((ret = drmIoctl(fd, DRM_IOCTL_MODE_SETGAMMA, &l))) + return ret; + + return 0; } int drmHandleEvent(int fd, drmEventContextPtr evctx) @@ -868,229 +810,5 @@ flip.flags = flags; flip.reserved = 0; - return DRM_IOCTL(fd, DRM_IOCTL_MODE_PAGE_FLIP, &flip); -} - -int drmModeSetPlane(int fd, uint32_t plane_id, uint32_t crtc_id, - uint32_t fb_id, uint32_t flags, - uint32_t crtc_x, uint32_t crtc_y, - uint32_t crtc_w, uint32_t crtc_h, - uint32_t src_x, uint32_t src_y, - uint32_t src_w, uint32_t src_h) - -{ - struct drm_mode_set_plane s; - - s.plane_id = plane_id; - s.crtc_id = crtc_id; - s.fb_id = fb_id; - s.flags = flags; - s.crtc_x = crtc_x; - s.crtc_y = crtc_y; - s.crtc_w = crtc_w; - s.crtc_h = crtc_h; - s.src_x = src_x; - s.src_y = src_y; - s.src_w = src_w; - s.src_h = src_h; - - return DRM_IOCTL(fd, DRM_IOCTL_MODE_SETPLANE, &s); -} - - -drmModePlanePtr drmModeGetPlane(int fd, uint32_t plane_id) -{ - struct drm_mode_get_plane ovr, counts; - drmModePlanePtr r = 0; - -retry: - memset(&ovr, 0, sizeof(struct drm_mode_get_plane)); - ovr.plane_id = plane_id; - if (drmIoctl(fd, DRM_IOCTL_MODE_GETPLANE, &ovr)) - return 0; - - counts = ovr; - - if (ovr.count_format_types) { - ovr.format_type_ptr = VOID2U64(drmMalloc(ovr.count_format_types * - sizeof(uint32_t))); - if (!ovr.format_type_ptr) - goto err_allocs; - } - - if (drmIoctl(fd, DRM_IOCTL_MODE_GETPLANE, &ovr)) - goto err_allocs; - - if (counts.count_format_types < ovr.count_format_types) { - drmFree(U642VOID(ovr.format_type_ptr)); - goto retry; - } - - if (!(r = drmMalloc(sizeof(*r)))) - goto err_allocs; - - r->count_formats = ovr.count_format_types; - r->plane_id = ovr.plane_id; - r->crtc_id = ovr.crtc_id; - r->fb_id = ovr.fb_id; - r->possible_crtcs = ovr.possible_crtcs; - r->gamma_size = ovr.gamma_size; - r->formats = drmAllocCpy(U642VOID(ovr.format_type_ptr), - ovr.count_format_types, sizeof(uint32_t)); - if (ovr.count_format_types && !r->formats) { - drmFree(r->formats); - drmFree(r); - r = 0; - } - -err_allocs: - drmFree(U642VOID(ovr.format_type_ptr)); - - return r; -} - -void drmModeFreePlane(drmModePlanePtr ptr) -{ - if (!ptr) - return; - - drmFree(ptr->formats); - drmFree(ptr); -} - -drmModePlaneResPtr drmModeGetPlaneResources(int fd) -{ - struct drm_mode_get_plane_res res, counts; - drmModePlaneResPtr r = 0; - -retry: - memset(&res, 0, sizeof(struct drm_mode_get_plane_res)); - if (drmIoctl(fd, DRM_IOCTL_MODE_GETPLANERESOURCES, &res)) - return 0; - - counts = res; - - if (res.count_planes) { - res.plane_id_ptr = VOID2U64(drmMalloc(res.count_planes * - sizeof(uint32_t))); - if (!res.plane_id_ptr) - goto err_allocs; - } - - if (drmIoctl(fd, DRM_IOCTL_MODE_GETPLANERESOURCES, &res)) - goto err_allocs; - - if (counts.count_planes < res.count_planes) { - drmFree(U642VOID(res.plane_id_ptr)); - goto retry; - } - - if (!(r = drmMalloc(sizeof(*r)))) - goto err_allocs; - - r->count_planes = res.count_planes; - r->planes = drmAllocCpy(U642VOID(res.plane_id_ptr), - res.count_planes, sizeof(uint32_t)); - if (res.count_planes && !r->planes) { - drmFree(r->planes); - drmFree(r); - r = 0; - } - -err_allocs: - drmFree(U642VOID(res.plane_id_ptr)); - - return r; -} - -void drmModeFreePlaneResources(drmModePlaneResPtr ptr) -{ - if (!ptr) - return; - - drmFree(ptr->planes); - drmFree(ptr); -} - -drmModeObjectPropertiesPtr drmModeObjectGetProperties(int fd, - uint32_t object_id, - uint32_t object_type) -{ - struct drm_mode_obj_get_properties properties; - drmModeObjectPropertiesPtr ret = NULL; - uint32_t count; - -retry: - memset(&properties, 0, sizeof(struct drm_mode_obj_get_properties)); - properties.obj_id = object_id; - properties.obj_type = object_type; - - if (drmIoctl(fd, DRM_IOCTL_MODE_OBJ_GETPROPERTIES, &properties)) - return 0; - - count = properties.count_props; - - if (count) { - properties.props_ptr = VOID2U64(drmMalloc(count * - sizeof(uint32_t))); - if (!properties.props_ptr) - goto err_allocs; - properties.prop_values_ptr = VOID2U64(drmMalloc(count * - sizeof(uint64_t))); - if (!properties.prop_values_ptr) - goto err_allocs; - } - - if (drmIoctl(fd, DRM_IOCTL_MODE_OBJ_GETPROPERTIES, &properties)) - goto err_allocs; - - if (count < properties.count_props) { - drmFree(U642VOID(properties.props_ptr)); - drmFree(U642VOID(properties.prop_values_ptr)); - goto retry; - } - count = properties.count_props; - - ret = drmMalloc(sizeof(*ret)); - if (!ret) - goto err_allocs; - - ret->count_props = count; - ret->props = drmAllocCpy(U642VOID(properties.props_ptr), - count, sizeof(uint32_t)); - ret->prop_values = drmAllocCpy(U642VOID(properties.prop_values_ptr), - count, sizeof(uint64_t)); - if (ret->count_props && (!ret->props || !ret->prop_values)) { - drmFree(ret->props); - drmFree(ret->prop_values); - drmFree(ret); - ret = NULL; - } - -err_allocs: - drmFree(U642VOID(properties.props_ptr)); - drmFree(U642VOID(properties.prop_values_ptr)); - return ret; -} - -void drmModeFreeObjectProperties(drmModeObjectPropertiesPtr ptr) -{ - if (!ptr) - return; - drmFree(ptr->props); - drmFree(ptr->prop_values); - drmFree(ptr); -} - -int drmModeObjectSetProperty(int fd, uint32_t object_id, uint32_t object_type, - uint32_t property_id, uint64_t value) -{ - struct drm_mode_obj_set_property prop; - - prop.value = value; - prop.prop_id = property_id; - prop.obj_id = object_id; - prop.obj_type = object_type; - - return DRM_IOCTL(fd, DRM_IOCTL_MODE_OBJ_SETPROPERTY, &prop); + return drmIoctl(fd, DRM_IOCTL_MODE_PAGE_FLIP, &flip); } diff -Nru libdrm-2.4.52/xf86drmMode.h libdrm-2.4.52+really2.4.21/xf86drmMode.h --- libdrm-2.4.52/xf86drmMode.h 2013-12-29 06:05:33.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/xf86drmMode.h 2010-06-07 01:11:45.000000000 +0000 @@ -33,13 +33,6 @@ * */ -#ifndef _XF86DRMMODE_H_ -#define _XF86DRMMODE_H_ - -#if defined(__cplusplus) || defined(c_plusplus) -extern "C" { -#endif - #include /* @@ -81,30 +74,20 @@ /* Video mode flags */ /* bit compatible with the xorg definitions. */ -#define DRM_MODE_FLAG_PHSYNC (1<<0) -#define DRM_MODE_FLAG_NHSYNC (1<<1) -#define DRM_MODE_FLAG_PVSYNC (1<<2) -#define DRM_MODE_FLAG_NVSYNC (1<<3) -#define DRM_MODE_FLAG_INTERLACE (1<<4) -#define DRM_MODE_FLAG_DBLSCAN (1<<5) -#define DRM_MODE_FLAG_CSYNC (1<<6) -#define DRM_MODE_FLAG_PCSYNC (1<<7) -#define DRM_MODE_FLAG_NCSYNC (1<<8) -#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */ -#define DRM_MODE_FLAG_BCAST (1<<10) -#define DRM_MODE_FLAG_PIXMUX (1<<11) -#define DRM_MODE_FLAG_DBLCLK (1<<12) -#define DRM_MODE_FLAG_CLKDIV2 (1<<13) -#define DRM_MODE_FLAG_3D_MASK (0x1f<<14) -#define DRM_MODE_FLAG_3D_NONE (0<<14) -#define DRM_MODE_FLAG_3D_FRAME_PACKING (1<<14) -#define DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE (2<<14) -#define DRM_MODE_FLAG_3D_LINE_ALTERNATIVE (3<<14) -#define DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL (4<<14) -#define DRM_MODE_FLAG_3D_L_DEPTH (5<<14) -#define DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH (6<<14) -#define DRM_MODE_FLAG_3D_TOP_AND_BOTTOM (7<<14) -#define DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF (8<<14) +#define DRM_MODE_FLAG_PHSYNC (1<<0) +#define DRM_MODE_FLAG_NHSYNC (1<<1) +#define DRM_MODE_FLAG_PVSYNC (1<<2) +#define DRM_MODE_FLAG_NVSYNC (1<<3) +#define DRM_MODE_FLAG_INTERLACE (1<<4) +#define DRM_MODE_FLAG_DBLSCAN (1<<5) +#define DRM_MODE_FLAG_CSYNC (1<<6) +#define DRM_MODE_FLAG_PCSYNC (1<<7) +#define DRM_MODE_FLAG_NCSYNC (1<<8) +#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */ +#define DRM_MODE_FLAG_BCAST (1<<10) +#define DRM_MODE_FLAG_PIXMUX (1<<11) +#define DRM_MODE_FLAG_DBLCLK (1<<12) +#define DRM_MODE_FLAG_CLKDIV2 (1<<13) /* DPMS flags */ /* bit compatible with the xorg definitions. */ @@ -128,8 +111,6 @@ #define DRM_MODE_ENCODER_TMDS 2 #define DRM_MODE_ENCODER_LVDS 3 #define DRM_MODE_ENCODER_TVDAC 4 -#define DRM_MODE_ENCODER_VIRTUAL 5 -#define DRM_MODE_ENCODER_DSI 6 #define DRM_MODE_SUBCONNECTOR_Automatic 0 #define DRM_MODE_SUBCONNECTOR_Unknown 0 @@ -138,7 +119,6 @@ #define DRM_MODE_SUBCONNECTOR_Composite 5 #define DRM_MODE_SUBCONNECTOR_SVIDEO 6 #define DRM_MODE_SUBCONNECTOR_Component 8 -#define DRM_MODE_SUBCONNECTOR_SCART 9 #define DRM_MODE_CONNECTOR_Unknown 0 #define DRM_MODE_CONNECTOR_VGA 1 @@ -155,8 +135,6 @@ #define DRM_MODE_CONNECTOR_HDMIB 12 #define DRM_MODE_CONNECTOR_TV 13 #define DRM_MODE_CONNECTOR_eDP 14 -#define DRM_MODE_CONNECTOR_VIRTUAL 15 -#define DRM_MODE_CONNECTOR_DSI 16 #define DRM_MODE_PROP_PENDING (1<<0) #define DRM_MODE_PROP_RANGE (1<<1) @@ -233,11 +211,11 @@ uint32_t flags; char name[DRM_PROP_NAME_LEN]; int count_values; - uint64_t *values; /* store the blob lengths */ + uint64_t *values; // store the blob lengths int count_enums; struct drm_mode_property_enum *enums; int count_blobs; - uint32_t *blob_ids; /* store the blob IDs */ + uint32_t *blob_ids; // store the blob IDs } drmModePropertyRes, *drmModePropertyPtr; typedef struct _drmModeCrtc { @@ -296,31 +274,7 @@ uint32_t *encoders; /**< List of encoder ids */ } drmModeConnector, *drmModeConnectorPtr; -typedef struct _drmModeObjectProperties { - uint32_t count_props; - uint32_t *props; - uint64_t *prop_values; -} drmModeObjectProperties, *drmModeObjectPropertiesPtr; - -typedef struct _drmModePlane { - uint32_t count_formats; - uint32_t *formats; - uint32_t plane_id; - - uint32_t crtc_id; - uint32_t fb_id; - - uint32_t crtc_x, crtc_y; - uint32_t x, y; - uint32_t possible_crtcs; - uint32_t gamma_size; -} drmModePlane, *drmModePlanePtr; - -typedef struct _drmModePlaneRes { - uint32_t count_planes; - uint32_t *planes; -} drmModePlaneRes, *drmModePlaneResPtr; extern void drmModeFreeModeInfo( drmModeModeInfoPtr ptr ); extern void drmModeFreeResources( drmModeResPtr ptr ); @@ -328,8 +282,6 @@ extern void drmModeFreeCrtc( drmModeCrtcPtr ptr ); extern void drmModeFreeConnector( drmModeConnectorPtr ptr ); extern void drmModeFreeEncoder( drmModeEncoderPtr ptr ); -extern void drmModeFreePlane( drmModePlanePtr ptr ); -extern void drmModeFreePlaneResources(drmModePlaneResPtr ptr); /** * Retrives all of the resources associated with a card. @@ -351,11 +303,6 @@ extern int drmModeAddFB(int fd, uint32_t width, uint32_t height, uint8_t depth, uint8_t bpp, uint32_t pitch, uint32_t bo_handle, uint32_t *buf_id); -/* ...with a specific pixel format */ -extern int drmModeAddFB2(int fd, uint32_t width, uint32_t height, - uint32_t pixel_format, uint32_t bo_handles[4], - uint32_t pitches[4], uint32_t offsets[4], - uint32_t *buf_id, uint32_t flags); /** * Destroies the given framebuffer. */ @@ -393,7 +340,6 @@ */ int drmModeSetCursor(int fd, uint32_t crtcId, uint32_t bo_handle, uint32_t width, uint32_t height); -int drmModeSetCursor2(int fd, uint32_t crtcId, uint32_t bo_handle, uint32_t width, uint32_t height, int32_t hot_x, int32_t hot_y); /** * Move the cursor on crtc */ @@ -440,26 +386,3 @@ uint16_t *red, uint16_t *green, uint16_t *blue); extern int drmModePageFlip(int fd, uint32_t crtc_id, uint32_t fb_id, uint32_t flags, void *user_data); - -extern drmModePlaneResPtr drmModeGetPlaneResources(int fd); -extern drmModePlanePtr drmModeGetPlane(int fd, uint32_t plane_id); -extern int drmModeSetPlane(int fd, uint32_t plane_id, uint32_t crtc_id, - uint32_t fb_id, uint32_t flags, - uint32_t crtc_x, uint32_t crtc_y, - uint32_t crtc_w, uint32_t crtc_h, - uint32_t src_x, uint32_t src_y, - uint32_t src_w, uint32_t src_h); - -extern drmModeObjectPropertiesPtr drmModeObjectGetProperties(int fd, - uint32_t object_id, - uint32_t object_type); -extern void drmModeFreeObjectProperties(drmModeObjectPropertiesPtr ptr); -extern int drmModeObjectSetProperty(int fd, uint32_t object_id, - uint32_t object_type, uint32_t property_id, - uint64_t value); - -#if defined(__cplusplus) || defined(c_plusplus) -} -#endif - -#endif diff -Nru libdrm-2.4.52/xf86mm.h libdrm-2.4.52+really2.4.21/xf86mm.h --- libdrm-2.4.52/xf86mm.h 1970-01-01 00:00:00.000000000 +0000 +++ libdrm-2.4.52+really2.4.21/xf86mm.h 2014-05-11 23:32:00.000000000 +0000 @@ -0,0 +1,198 @@ +/************************************************************************** + * + * Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND. USA. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * + **************************************************************************/ + +#ifndef _XF86MM_H_ +#define _XF86MM_H_ +#include +#include +#include "drm.h" + +/* + * Note on multithreaded applications using this interface. + * Libdrm is not threadsafe, so common buffer, TTM, and fence objects need to + * be protected using an external mutex. + * + * Note: Don't protect the following functions, as it may lead to deadlocks: + * drmBOUnmap(). + * The kernel is synchronizing and refcounting buffer maps. + * User space only needs to refcount object usage within the same application. + */ + + +/* + * List macros heavily inspired by the Linux kernel + * list handling. No list looping yet. + */ + +typedef struct _drmMMListHead +{ + struct _drmMMListHead *prev; + struct _drmMMListHead *next; +} drmMMListHead; + +#define DRMINITLISTHEAD(__item) \ + do{ \ + (__item)->prev = (__item); \ + (__item)->next = (__item); \ + } while (0) + +#define DRMLISTADD(__item, __list) \ + do { \ + (__item)->prev = (__list); \ + (__item)->next = (__list)->next; \ + (__list)->next->prev = (__item); \ + (__list)->next = (__item); \ + } while (0) + +#define DRMLISTADDTAIL(__item, __list) \ + do { \ + (__item)->next = (__list); \ + (__item)->prev = (__list)->prev; \ + (__list)->prev->next = (__item); \ + (__list)->prev = (__item); \ + } while(0) + +#define DRMLISTDEL(__item) \ + do { \ + (__item)->prev->next = (__item)->next; \ + (__item)->next->prev = (__item)->prev; \ + } while(0) + +#define DRMLISTDELINIT(__item) \ + do { \ + (__item)->prev->next = (__item)->next; \ + (__item)->next->prev = (__item)->prev; \ + (__item)->next = (__item); \ + (__item)->prev = (__item); \ + } while(0) + +#define DRMLISTENTRY(__type, __item, __field) \ + ((__type *)(((char *) (__item)) - offsetof(__type, __field))) + +#define DRMLISTEMPTY(__item) ((__item)->next == (__item)) + +#define DRMLISTFOREACHSAFE(__item, __temp, __list) \ + for ((__item) = (__list)->next, (__temp) = (__item)->next; \ + (__item) != (__list); \ + (__item) = (__temp), (__temp) = (__item)->next) + +#define DRMLISTFOREACHSAFEREVERSE(__item, __temp, __list) \ + for ((__item) = (__list)->prev, (__temp) = (__item)->prev; \ + (__item) != (__list); \ + (__item) = (__temp), (__temp) = (__item)->prev) + +typedef struct _drmFence +{ + unsigned handle; + int fence_class; + unsigned type; + unsigned flags; + unsigned signaled; + uint32_t sequence; + unsigned pad[4]; /* for future expansion */ +} drmFence; + +typedef struct _drmBO +{ + unsigned handle; + uint64_t mapHandle; + uint64_t flags; + uint64_t proposedFlags; + unsigned mapFlags; + unsigned long size; + unsigned long offset; + unsigned long start; + unsigned replyFlags; + unsigned fenceFlags; + unsigned pageAlignment; + unsigned tileInfo; + unsigned hwTileStride; + unsigned desiredTileStride; + void *virtual; + void *mapVirtual; + int mapCount; + unsigned pad[8]; /* for future expansion */ +} drmBO; + +/* + * Fence functions. + */ + +extern int drmFenceCreate(int fd, unsigned flags, int fence_class, + unsigned type, drmFence *fence); +extern int drmFenceReference(int fd, unsigned handle, drmFence *fence); +extern int drmFenceUnreference(int fd, const drmFence *fence); +extern int drmFenceFlush(int fd, drmFence *fence, unsigned flush_type); +extern int drmFenceSignaled(int fd, drmFence *fence, + unsigned fenceType, int *signaled); +extern int drmFenceWait(int fd, unsigned flags, drmFence *fence, + unsigned flush_type); +extern int drmFenceEmit(int fd, unsigned flags, drmFence *fence, + unsigned emit_type); +extern int drmFenceBuffers(int fd, unsigned flags, uint32_t fence_class, drmFence *fence); + + +/* + * Buffer object functions. + */ + +extern int drmBOCreate(int fd, unsigned long size, + unsigned pageAlignment, void *user_buffer, + uint64_t mask, unsigned hint, drmBO *buf); +extern int drmBOReference(int fd, unsigned handle, drmBO *buf); +extern int drmBOUnreference(int fd, drmBO *buf); +extern int drmBOMap(int fd, drmBO *buf, unsigned mapFlags, unsigned mapHint, + void **address); +extern int drmBOUnmap(int fd, drmBO *buf); +extern int drmBOFence(int fd, drmBO *buf, unsigned flags, unsigned fenceHandle); +extern int drmBOInfo(int fd, drmBO *buf); +extern int drmBOBusy(int fd, drmBO *buf, int *busy); + +extern int drmBOWaitIdle(int fd, drmBO *buf, unsigned hint); + +/* + * Initialization functions. + */ + +extern int drmMMInit(int fd, unsigned long pOffset, unsigned long pSize, + unsigned memType); +extern int drmMMTakedown(int fd, unsigned memType); +extern int drmMMLock(int fd, unsigned memType, int lockBM, int ignoreNoEvict); +extern int drmMMUnlock(int fd, unsigned memType, int unlockBM); +extern int drmMMInfo(int fd, unsigned memType, uint64_t *size); +extern int drmBOSetStatus(int fd, drmBO *buf, + uint64_t flags, uint64_t mask, + unsigned int hint, + unsigned int desired_tile_stride, + unsigned int tile_info); +extern int drmBOVersion(int fd, unsigned int *major, + unsigned int *minor, + unsigned int *patchlevel); + + +#endif