    # File lib/phusion_passenger/platform_info.rb, line 178
            def self.tmpexedir
                    basename = "test-exe.#{Process.pid}.#{Thread.current.object_id}"
                    attempts = []

                    dir = tmpdir
                    filename = "#{dir}/#{basename}"
                    begin
                            File.open(filename, 'w').close
                            File.chmod(0700, filename)
                            if File.executable?(filename)
                                    return dir
                            else
                                    attempts << { :dir => dir,
                                            :error => "This directory's filesystem is mounted with the 'noexec' option." }
                            end
                    rescue Errno::ENOENT
                            attempts << { :dir => dir, :error => "This directory doesn't exist." }
                    rescue Errno::EACCES
                            attempts << { :dir => dir, :error => "This program doesn't have permission to write to this directory." }
                    rescue SystemCallError => e
                            attempts << { :dir => dir, :error => e.message }
                    ensure
                            File.unlink(filename) rescue nil
                    end

                    dir = Dir.pwd
                    filename = "#{dir}/#{basename}"
                    begin
                            File.open(filename, 'w').close
                            File.chmod(0700, filename)
                            if File.executable?(filename)
                                    return dir
                            else
                                    attempts << { :dir => dir,
                                            :error => "This directory's filesystem is mounted with the 'noexec' option." }
                            end
                    rescue Errno::ENOENT
                            attempts << { :dir => dir, :error => "This directory doesn't exist." }
                    rescue Errno::EACCES
                            attempts << { :dir => dir, :error => "This program doesn't have permission to write to this directory." }
                    rescue SystemCallError => e
                            attempts << { :dir => dir, :error => e.message }
                    ensure
                            File.unlink(filename) rescue nil
                    end

                    message = "In order to run certain tests, this program " +
                            "must be able to write temporary\n" +
                            "executable files to some directory. However no such " +
                            "directory can be found. \n" +
                            "The following directories have been tried:\n\n"
                    attempts.each do |attempt|
                            message << " * #{attempt[:dir]}\n"
                            message << "   #{attempt[:error]}\n"
                    end
                    message << "\nYou can solve this problem by telling this program what directory to write\n" <<
                            "temporary executable files to.\n" <<
                            "\n" <<
                            "  Set the $TMPDIR environment variable to the desired directory's filename and\n" <<
                            "  re-run this program.\n" <<
                            "\n" <<
                            "Notes:\n" <<
                            "\n" <<
                            " * If you're using 'sudo'/'rvmsudo', remember that 'sudo'/'rvmsudo' unsets all\n" <<
                            "   environment variables, so you must set the environment variable *after*\n" <<
                            "   having gained root privileges.\n" <<
                            " * The directory you choose must writeable and must not be mounted with the\n" <<
                            "   'noexec' option."
                    raise RuntimeError, message
            end